Parcourir la source

资产的录入修改和列表

il y a 6 ans
Parent
commit
40244657da

+ 43 - 9
pcbms/src/main/java/com/hssx/pcbms/controller/GoodsController.java

@@ -1,10 +1,13 @@
 package com.hssx.pcbms.controller;
 
 
+import com.hssx.pcbms.entity.Goods;
+import com.hssx.pcbms.entity.GoodsNo;
 import com.hssx.pcbms.entity.User;
 import com.hssx.pcbms.entity.vo.GoodsVO;
 import com.hssx.pcbms.service.GoodsService;
 import com.hssx.pcbms.util.HttpRespMsg;
+import com.hssx.pcbms.util.PageUtil;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -13,14 +16,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.File;
 
 /**
- * <p>
- *  前端控制器
- * </p>
- *
  * @author 吴涛涛
  * @since 2019-10-25
  */
@@ -33,16 +34,49 @@ public class GoodsController {
 
     /**
      * 商品录入
-     * 参数:phone 账号 password 密码 name 姓名 isPass:1 (注:创建管理员的账号时传,普通账号不传该字段)
-     * code 验证码
-     *
+     * 参数:
+     * name :名称,tagId:标签id,modelNumber:模具型号,company:公司
+     * ,address:地址,factory:生产厂家,file:产品图片文件,serviceLife:服务期限(天),
+     * nextIndate:下次维护日期,number:数量,deptStr:部门编号前缀,goodStr:产品编号前缀
+     * 注:产品编号=部门编号前缀+产品编号前缀+随机数
      * @return
      */
     @ApiOperation(value = "商品录入", notes = "商品录入方法")
     @RequestMapping("/add")
     @ResponseBody
-    public HttpRespMsg add(GoodsVO goodsVO) {
-        HttpRespMsg msg = goodsService.add(goodsVO);
+    public HttpRespMsg add(GoodsVO goodsVO, @RequestParam(required = false) MultipartFile file) {
+        HttpRespMsg msg = goodsService.add(goodsVO,file);
+        return msg;
+    }
+
+    /**
+     * 商品基本信息修改
+     * 参数:id:商品信息id
+     * name :名称,tagId:标签id,modelNumber:模具型号,company:公司
+     * ,address:地址,factory:生产厂家,file:产品图片文件,serviceLife:服务期限(天),
+     * nextIndate:下次维护日期
+     * @return
+     */
+    @ApiOperation(value = "商品基本信息修改", notes = "商品基本信息修改方法")
+    @RequestMapping("/update")
+    @ResponseBody
+    public HttpRespMsg updateInfo(Goods goods, @RequestParam(required = false) MultipartFile file) {
+        HttpRespMsg msg = goodsService.updateInfo(goods,file);
+        return msg;
+    }
+
+
+    /**
+     * 商品列表
+     * 参数:
+     * name :名称,tagId:标签id,keyName:关键字
+     * @return
+     */
+    @ApiOperation(value = "商品列表", notes = "商品列表方法")
+    @RequestMapping("/list")
+    @ResponseBody
+    public HttpRespMsg list(PageUtil page,String keyName,Integer tagId) {
+        HttpRespMsg msg = goodsService.getList(page,keyName,tagId);
         return msg;
     }
 

+ 1 - 31
pcbms/src/main/java/com/hssx/pcbms/entity/Goods.java

@@ -12,7 +12,7 @@ import java.io.Serializable;
  * </p>
  *
  * @author 吴涛涛
- * @since 2019-10-25
+ * @since 2019-10-28
  */
 public class Goods extends Model<Goods> {
 
@@ -66,12 +66,6 @@ public class Goods extends Model<Goods> {
     @TableField("pic")
     private String pic;
 
-    /**
-     * 产品编号
-     */
-    @TableField("goods_no")
-    private String goodsNo;
-
     /**
      * 服务期限(天)
      */
@@ -84,12 +78,6 @@ public class Goods extends Model<Goods> {
     @TableField("next_indate")
     private String nextIndate;
 
-    /**
-     * 资产状态0-空闲 1-在用 2-维护 3-报废
-     */
-    @TableField("stage")
-    private Integer stage;
-
 
     public Integer getId() {
         return id;
@@ -155,14 +143,6 @@ public class Goods extends Model<Goods> {
         this.pic = pic;
     }
 
-    public String getGoodsNo() {
-        return goodsNo;
-    }
-
-    public void setGoodsNo(String goodsNo) {
-        this.goodsNo = goodsNo;
-    }
-
     public Integer getServiceLife() {
         return serviceLife;
     }
@@ -179,14 +159,6 @@ public class Goods extends Model<Goods> {
         this.nextIndate = nextIndate;
     }
 
-    public Integer getStage() {
-        return stage;
-    }
-
-    public void setStage(Integer stage) {
-        this.stage = stage;
-    }
-
     @Override
     protected Serializable pkVal() {
         return this.id;
@@ -203,10 +175,8 @@ public class Goods extends Model<Goods> {
         ", address=" + address +
         ", factory=" + factory +
         ", pic=" + pic +
-        ", goodsNo=" + goodsNo +
         ", serviceLife=" + serviceLife +
         ", nextIndate=" + nextIndate +
-        ", stage=" + stage +
         "}";
     }
 }

+ 108 - 0
pcbms/src/main/java/com/hssx/pcbms/entity/GoodsNo.java

@@ -0,0 +1,108 @@
+package com.hssx.pcbms.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-10-28
+ */
+public class GoodsNo extends Model<GoodsNo> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 产品编号表主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 模具编号
+     */
+    @TableField("model_no")
+    private String modelNo;
+
+    /**
+     * 资产状态0-空闲 1-在用 2-维护 3-报废
+     */
+    @TableField("state")
+    private Integer state;
+
+    /**
+     * 创建日期
+     */
+    @TableField("indate")
+    private LocalDateTime indate;
+
+    /**
+     * 基本信息表关联外键
+     */
+    @TableField("goods_id")
+    private Integer goodsId;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getModelNo() {
+        return modelNo;
+    }
+
+    public void setModelNo(String modelNo) {
+        this.modelNo = modelNo;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public LocalDateTime getIndate() {
+        return indate;
+    }
+
+    public void setIndate(LocalDateTime indate) {
+        this.indate = indate;
+    }
+
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "GoodsNo{" +
+        "id=" + id +
+        ", modelNo=" + modelNo +
+        ", state=" + state +
+        ", indate=" + indate +
+        ", goodsId=" + goodsId +
+        "}";
+    }
+}

+ 7 - 3
pcbms/src/main/java/com/hssx/pcbms/entity/vo/GoodsVO.java

@@ -1,8 +1,11 @@
 package com.hssx.pcbms.entity.vo;
 
 import com.hssx.pcbms.entity.Goods;
+import com.hssx.pcbms.entity.GoodsNo;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * Author: 吴涛涛 cuiyi@itany.com
  * Date : 2019 - 10 - 25 10:58
@@ -11,7 +14,8 @@ import lombok.Data;
  */
 @Data
 public class GoodsVO extends Goods {
-private Integer number;
-private String deptStr;
-private String goodStr;
+    private Integer number = 0;//数量
+    private String deptStr;//部门编号
+    private String goodStr;//产品编号
+    private List<GoodsNo> goodsNos;
 }

+ 5 - 4
pcbms/src/main/java/com/hssx/pcbms/mapper/GoodsMapper.java

@@ -2,15 +2,16 @@ package com.hssx.pcbms.mapper;
 
 import com.hssx.pcbms.entity.Goods;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hssx.pcbms.entity.vo.GoodsVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
- * <p>
- *  Mapper 接口
- * </p>
- *
  * @author 吴涛涛
  * @since 2019-10-25
  */
 public interface GoodsMapper extends BaseMapper<Goods> {
 
+    List<GoodsVO> getListBycondition(@Param("keyName") String keyName, @Param("tagId") Integer tagId);
 }

+ 16 - 0
pcbms/src/main/java/com/hssx/pcbms/mapper/GoodsNoMapper.java

@@ -0,0 +1,16 @@
+package com.hssx.pcbms.mapper;
+
+import com.hssx.pcbms.entity.GoodsNo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-10-28
+ */
+public interface GoodsNoMapper extends BaseMapper<GoodsNo> {
+
+}

+ 16 - 0
pcbms/src/main/java/com/hssx/pcbms/service/GoodsNoService.java

@@ -0,0 +1,16 @@
+package com.hssx.pcbms.service;
+
+import com.hssx.pcbms.entity.GoodsNo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-10-28
+ */
+public interface GoodsNoService extends IService<GoodsNo> {
+
+}

+ 7 - 1
pcbms/src/main/java/com/hssx/pcbms/service/GoodsService.java

@@ -4,6 +4,8 @@ import com.hssx.pcbms.entity.Goods;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.hssx.pcbms.entity.vo.GoodsVO;
 import com.hssx.pcbms.util.HttpRespMsg;
+import com.hssx.pcbms.util.PageUtil;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * <p>
@@ -15,5 +17,9 @@ import com.hssx.pcbms.util.HttpRespMsg;
  */
 public interface GoodsService extends IService<Goods> {
 
-    HttpRespMsg add(GoodsVO goodsVO);
+    HttpRespMsg add(GoodsVO goodsVO,MultipartFile file);
+
+    HttpRespMsg updateInfo(Goods goods, MultipartFile file);
+
+    HttpRespMsg getList(PageUtil page,String keyName,Integer tagId);
 }

+ 20 - 0
pcbms/src/main/java/com/hssx/pcbms/service/impl/GoodsNoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.hssx.pcbms.service.impl;
+
+import com.hssx.pcbms.entity.GoodsNo;
+import com.hssx.pcbms.mapper.GoodsNoMapper;
+import com.hssx.pcbms.service.GoodsNoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-10-28
+ */
+@Service
+public class GoodsNoServiceImpl extends ServiceImpl<GoodsNoMapper, GoodsNo> implements GoodsNoService {
+
+}

+ 68 - 2
pcbms/src/main/java/com/hssx/pcbms/service/impl/GoodsServiceImpl.java

@@ -1,12 +1,26 @@
 package com.hssx.pcbms.service.impl;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.hssx.pcbms.entity.Goods;
+import com.hssx.pcbms.entity.GoodsNo;
 import com.hssx.pcbms.entity.vo.GoodsVO;
 import com.hssx.pcbms.mapper.GoodsMapper;
+import com.hssx.pcbms.mapper.GoodsNoMapper;
+import com.hssx.pcbms.service.GoodsNoService;
 import com.hssx.pcbms.service.GoodsService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.hssx.pcbms.util.HttpRespMsg;
+import com.hssx.pcbms.util.PageUtil;
+import com.hssx.pcbms.util.UploadFileToFileNameUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * <p>
@@ -18,9 +32,61 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements GoodsService {
+    @Resource
+    private GoodsMapper goodsMapper;
+    @Resource
+    private GoodsNoMapper goodsNoMapper;
+    @Resource
+    private GoodsNoService goodsNoService;
+    @Value("${upload.path}")
+    private String path;
 
     @Override
-    public HttpRespMsg add(GoodsVO goodsVO) {
-        return null;
+    public HttpRespMsg add(GoodsVO goodsVO,MultipartFile file) {
+        HttpRespMsg msg = new HttpRespMsg();
+        if(null != file){
+            goodsVO.setPic(UploadFileToFileNameUtil.uploadFile(file, path));
+        }
+        Goods goods = new Goods();
+        BeanUtils.copyProperties(goodsVO,goods);
+        List<GoodsNo> list = new ArrayList<>();
+        goodsMapper.insert(goods);
+        if(0 != goodsVO.getNumber()){
+            for(int i=0;i<goodsVO.getNumber();i++){
+                GoodsNo goodsNo = new GoodsNo();
+                goodsNo.setGoodsId(goods.getId());
+                goodsNo.setModelNo(goodsVO.getDeptStr()+goodsVO.getGoodStr()+String.format("%04d", i));
+                list.add(goodsNo);
+            }
+            goodsNoService.saveBatch(list);
+        }else{
+            msg.setError("资产数量必须大于零");
+        }
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg updateInfo(Goods goods, MultipartFile file) {
+        HttpRespMsg msg = new HttpRespMsg();
+        if(null != file){
+            goods.setPic(UploadFileToFileNameUtil.uploadFile(file, path));
+        }
+        goodsMapper.updateById(goods);
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg getList(PageUtil page, String keyName, Integer tagId) {
+        HttpRespMsg msg = new HttpRespMsg();
+        PageHelper.startPage(page.getPageNum(),page.getPageSize());
+        List<GoodsVO> list = goodsMapper.getListBycondition(keyName,tagId);
+        PageInfo<GoodsVO> info = new PageInfo<>(list);
+        msg.data = info;
+        return msg;
+    }
+
+    public static void main(String[] args) {
+        String format = String.format("%04d", 0);
+        System.out.println(format);
     }
 }

+ 1 - 1
pcbms/src/main/java/com/hssx/pcbms/util/CodeGenerator.java

@@ -204,7 +204,7 @@ public class CodeGenerator {
         //若想要生成的实体类继承某个Controller,则可打开下面注释。写上需要继承的Controller的位置即可
 //        strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");
         //此处user是表名,多个英文逗号分割
-        strategy.setInclude("goods","goods_tags","operater_record");
+        strategy.setInclude("goods","goods_no");
 //        strategy.setExclude();//数据库表全生成
 //        strategy.setInclude(scanner("user").split(","));//表名,多个英文逗号分割
         strategy.setControllerMappingHyphenStyle(true);

+ 39 - 3
pcbms/src/main/resources/mapper/GoodsMapper.xml

@@ -12,15 +12,51 @@
         <result column="address" property="address" />
         <result column="factory" property="factory" />
         <result column="pic" property="pic" />
-        <result column="goods_no" property="goodsNo" />
         <result column="service_life" property="serviceLife" />
         <result column="next_indate" property="nextIndate" />
-        <result column="stage" property="stage" />
+    </resultMap>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMapVO" type="com.hssx.pcbms.entity.vo.GoodsVO">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="tag_id" property="tagId" />
+        <result column="model_number" property="modelNumber" />
+        <result column="company" property="company" />
+        <result column="address" property="address" />
+        <result column="factory" property="factory" />
+        <result column="pic" property="pic" />
+        <result column="service_life" property="serviceLife" />
+        <result column="next_indate" property="nextIndate" />
+        <collection property="goodsNos" select="selectGoodsNoByGoodsId" column="{goodId = id}" ofType="com.hssx.pcbms.entity.GoodsNo">
+        </collection>
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, name, tag_id, model_number, company, address, factory, pic, goods_no, service_life, next_indate, stage
+        id, name, tag_id, model_number, company, address, factory, pic, service_life, next_indate
     </sql>
 
+    <select id="getListBycondition" resultMap="BaseResultMapVO">
+        select
+            id, name, tag_id, model_number, company, address, factory, pic, service_life, next_indate
+        from
+            goods
+        <where>
+            <if test="keyName != null and keyName != ''">
+               and name like concat('%',#{keyName},'%')
+            </if>
+            <if test="tagId != null">
+                and tag_id = #{tagId}
+            </if>
+        </where>
+    </select>
+    <select id="selectGoodsNoByGoodsId" resultType="com.hssx.pcbms.entity.GoodsNo">
+        select
+            id, model_no, state, indate, goods_id
+          from
+            goods_no
+          where
+              goods_id = #{goodId}
+    </select>
 </mapper>

+ 19 - 0
pcbms/src/main/resources/mapper/GoodsNoMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hssx.pcbms.mapper.GoodsNoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.hssx.pcbms.entity.GoodsNo">
+        <id column="id" property="id" />
+        <result column="model_no" property="modelNo" />
+        <result column="state" property="state" />
+        <result column="indate" property="indate" />
+        <result column="goods_id" property="goodsId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, model_no, state, indate, goods_id
+    </sql>
+
+</mapper>