Browse Source

Merge remote-tracking branch 'origin/master'

王董 1 year ago
parent
commit
290910c158
37 changed files with 1011 additions and 120 deletions
  1. 7 5
      sd-business/src/main/java/com/sd/business/controller/bom/BomClassifyController.java
  2. 2 1
      sd-business/src/main/java/com/sd/business/controller/bom/BomController.java
  3. 0 34
      sd-business/src/main/java/com/sd/business/controller/bom/BomOperatingLogController.java
  4. 37 0
      sd-business/src/main/java/com/sd/business/controller/check/CheckBomController.java
  5. 47 0
      sd-business/src/main/java/com/sd/business/controller/check/CheckController.java
  6. 5 0
      sd-business/src/main/java/com/sd/business/entity/bom/dto/BomClassifySelectDto.java
  7. 17 0
      sd-business/src/main/java/com/sd/business/entity/bom/dto/BomDto.java
  8. 40 0
      sd-business/src/main/java/com/sd/business/entity/bom/dto/BomSelectDto.java
  9. 6 0
      sd-business/src/main/java/com/sd/business/entity/bom/dto/BomSpecDto.java
  10. 5 0
      sd-business/src/main/java/com/sd/business/entity/bom/po/Bom.java
  11. 6 0
      sd-business/src/main/java/com/sd/business/entity/bom/po/BomClassify.java
  12. 10 0
      sd-business/src/main/java/com/sd/business/entity/bom/po/BomOperatingLog.java
  13. 5 0
      sd-business/src/main/java/com/sd/business/entity/bom/vo/BomVo.java
  14. 17 0
      sd-business/src/main/java/com/sd/business/entity/check/dto/CheckBomDto.java
  15. 42 0
      sd-business/src/main/java/com/sd/business/entity/check/dto/CheckBomSelectDto.java
  16. 29 0
      sd-business/src/main/java/com/sd/business/entity/check/dto/CheckDto.java
  17. 32 0
      sd-business/src/main/java/com/sd/business/entity/check/dto/CheckSelectDto.java
  18. 52 0
      sd-business/src/main/java/com/sd/business/entity/check/po/Check.java
  19. 57 0
      sd-business/src/main/java/com/sd/business/entity/check/po/CheckBom.java
  20. 49 0
      sd-business/src/main/java/com/sd/business/entity/check/vo/CheckBomVo.java
  21. 32 0
      sd-business/src/main/java/com/sd/business/entity/check/vo/CheckVo.java
  22. 0 9
      sd-business/src/main/java/com/sd/business/mapper/bom/BomClassifyMapper.java
  23. 26 0
      sd-business/src/main/java/com/sd/business/mapper/check/CheckBomMapper.java
  24. 26 0
      sd-business/src/main/java/com/sd/business/mapper/check/CheckMapper.java
  25. 5 3
      sd-business/src/main/java/com/sd/business/service/bom/BomClassifyService.java
  26. 0 21
      sd-business/src/main/java/com/sd/business/service/bom/BomOperatingLogService.java
  27. 26 7
      sd-business/src/main/java/com/sd/business/service/bom/impl/BomClassifyServiceImpl.java
  28. 0 24
      sd-business/src/main/java/com/sd/business/service/bom/impl/BomOperatingLogServiceImpl.java
  29. 200 2
      sd-business/src/main/java/com/sd/business/service/bom/impl/BomServiceImpl.java
  30. 25 0
      sd-business/src/main/java/com/sd/business/service/check/CheckBomService.java
  31. 31 0
      sd-business/src/main/java/com/sd/business/service/check/CheckService.java
  32. 44 0
      sd-business/src/main/java/com/sd/business/service/check/impl/CheckBomServiceImpl.java
  33. 77 0
      sd-business/src/main/java/com/sd/business/service/check/impl/CheckServiceImpl.java
  34. 0 14
      sd-business/src/main/resources/mapper/bom/BomClassifyMapper.xml
  35. 3 0
      sd-business/src/main/resources/mapper/bom/BomOperatingLogMapper.xml
  36. 30 0
      sd-business/src/main/resources/mapper/check/CheckBomMapper.xml
  37. 21 0
      sd-business/src/main/resources/mapper/check/CheckMapper.xml

+ 7 - 5
sd-business/src/main/java/com/sd/business/controller/bom/BomClassifyController.java

@@ -1,6 +1,6 @@
 package com.sd.business.controller.bom;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.sd.business.entity.bom.dto.BomClassifyDto;
 import com.sd.business.entity.bom.dto.BomClassifySelectDto;
@@ -12,6 +12,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -29,11 +31,11 @@ public class BomClassifyController {
     private BomClassifyService bomClassifyService;
 
     /**
-     * bom分类分页
+     * bom分类树形
      */
-    @PostMapping("/page")
-    public Page<BomClassifyVo> page(@RequestBody BomClassifySelectDto dto) {
-        return bomClassifyService.getPage(dto);
+    @PostMapping("/tree")
+    public List<JSONObject> tree(@RequestBody BomClassifySelectDto dto) {
+        return bomClassifyService.tree(dto);
     }
 
     /**

+ 2 - 1
sd-business/src/main/java/com/sd/business/controller/bom/BomController.java

@@ -7,6 +7,7 @@ import com.sd.business.entity.bom.dto.BomSelectDto;
 import com.sd.business.entity.bom.vo.BomVo;
 import com.sd.business.service.bom.BomService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -48,7 +49,7 @@ public class BomController {
      * bom新增
      */
     @PostMapping("/add")
-    public void add(@RequestBody BomDto bomDto) {
+    public void add(@Validated @RequestBody BomDto bomDto) {
         bomService.add(bomDto);
     }
 

+ 0 - 34
sd-business/src/main/java/com/sd/business/controller/bom/BomOperatingLogController.java

@@ -1,8 +1,6 @@
 package com.sd.business.controller.bom;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.core.domain.BaseSelectDto;
-import com.sd.business.entity.bom.dto.BomOperatingLogDto;
 import com.sd.business.entity.bom.dto.BomOperatingLogSelectDto;
 import com.sd.business.entity.bom.vo.BomOperatingLogVo;
 import com.sd.business.service.bom.BomOperatingLogService;
@@ -36,36 +34,4 @@ public class BomOperatingLogController {
         return bomOperatingLogService.getPage(dto);
     }
 
-    /**
-     * bom操作日志明细
-     */
-    @PostMapping("/detail")
-    public BomOperatingLogVo detail(@RequestBody BaseSelectDto dto) {
-        return bomOperatingLogService.detail(dto.getId());
-    }
-
-    /**
-     * bom操作日志新增
-     */
-    @PostMapping("/add")
-    public void add(@RequestBody BomOperatingLogDto bomOperatingLogDto) {
-        bomOperatingLogService.add(bomOperatingLogDto);
-    }
-
-    /**
-     * bom操作日志编辑
-     */
-    @PostMapping("/edit")
-    public void edit(@RequestBody BomOperatingLogDto bomOperatingLogDto) {
-        bomOperatingLogService.edit(bomOperatingLogDto);
-    }
-
-    /**
-     * bom操作日志删除
-     */
-    @PostMapping("/delete")
-    public void delete(@RequestBody BaseSelectDto dto) {
-        bomOperatingLogService.delete(dto.getId());
-    }
-
 }

+ 37 - 0
sd-business/src/main/java/com/sd/business/controller/check/CheckBomController.java

@@ -0,0 +1,37 @@
+package com.sd.business.controller.check;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sd.business.entity.check.dto.CheckBomSelectDto;
+import com.sd.business.entity.check.vo.CheckBomVo;
+import com.sd.business.service.check.CheckBomService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 盘点bom 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@RestController
+@RequestMapping("/checkBom")
+public class CheckBomController {
+
+    @Autowired
+    private CheckBomService checkBomService;
+
+    /**
+     * 盘点bom分页
+     */
+    @PostMapping("/page")
+    public Page<CheckBomVo> page(@RequestBody CheckBomSelectDto dto) {
+        return checkBomService.getPage(dto);
+    }
+
+}

+ 47 - 0
sd-business/src/main/java/com/sd/business/controller/check/CheckController.java

@@ -0,0 +1,47 @@
+package com.sd.business.controller.check;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sd.business.entity.check.dto.CheckDto;
+import com.sd.business.entity.check.dto.CheckSelectDto;
+import com.sd.business.entity.check.vo.CheckVo;
+import com.sd.business.service.check.CheckService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 盘点 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@RestController
+@RequestMapping("/check")
+public class CheckController {
+
+    @Autowired
+    private CheckService checkService;
+
+    /**
+     * 盘点分页
+     */
+    @PostMapping("/page")
+    public Page<CheckVo> page(@RequestBody CheckSelectDto dto) {
+        return checkService.getPage(dto);
+    }
+
+    /**
+     * 盘点新增
+     */
+    @PostMapping("/add")
+    public void add(@Validated @RequestBody CheckDto checkDto) {
+        checkService.add(checkDto);
+    }
+
+}

+ 5 - 0
sd-business/src/main/java/com/sd/business/entity/bom/dto/BomClassifySelectDto.java

@@ -14,4 +14,9 @@ import lombok.Setter;
 @Setter
 public class BomClassifySelectDto extends BaseSelectDto {
 
+    /**
+     * 分类名称
+     */
+    private String name;
+
 }

+ 17 - 0
sd-business/src/main/java/com/sd/business/entity/bom/dto/BomDto.java

@@ -1,9 +1,14 @@
 package com.sd.business.entity.bom.dto;
 
+import com.fjhx.file.entity.ObsFile;
 import com.sd.business.entity.bom.po.Bom;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
 /**
  * bom新增编辑入参实体
  *
@@ -14,4 +19,16 @@ import lombok.Setter;
 @Setter
 public class BomDto extends Bom {
 
+    /**
+     * bom规格
+     */
+    @Valid
+    @NotEmpty(message = "规格不能为空")
+    private List<BomSpecDto> bomSpecDtoList;
+
+    /**
+     * 主图产品
+     */
+    private ObsFile mainImgFile;
+
 }

+ 40 - 0
sd-business/src/main/java/com/sd/business/entity/bom/dto/BomSelectDto.java

@@ -14,4 +14,44 @@ import lombok.Setter;
 @Setter
 public class BomSelectDto extends BaseSelectDto {
 
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 品号
+     */
+    private String code;
+
+    /**
+     * 种类 字典:bom_species
+     */
+    private String species;
+
+    /**
+     * 色层 字典:bom_chromatophore
+     */
+    private String chromatophore;
+
+    /**
+     * 压纹工艺 字典:bom_embossingProcess
+     */
+    private String embossingProcess;
+
+    /**
+     * 正面纹路 字典:bom_frontGrain
+     */
+    private String frontGrain;
+
+    /**
+     * 背面纹路 字典:bom_reverseGrain
+     */
+    private String reverseGrain;
+
+    /**
+     * 颜色
+     */
+    private String colour;
+
 }

+ 6 - 0
sd-business/src/main/java/com/sd/business/entity/bom/dto/BomSpecDto.java

@@ -1,5 +1,6 @@
 package com.sd.business.entity.bom.dto;
 
+import com.fjhx.file.entity.ObsFile;
 import com.sd.business.entity.bom.po.BomSpec;
 import lombok.Getter;
 import lombok.Setter;
@@ -14,4 +15,9 @@ import lombok.Setter;
 @Setter
 public class BomSpecDto extends BomSpec {
 
+    /**
+     * 规格图片
+     */
+    private ObsFile imgFile;
+
 }

+ 5 - 0
sd-business/src/main/java/com/sd/business/entity/bom/po/Bom.java

@@ -5,6 +5,9 @@ import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
 /**
  * <p>
  * bom
@@ -21,6 +24,7 @@ public class Bom extends BasePo {
     /**
      * bom分类id
      */
+    @NotNull(message = "类目id不能为空")
     private Long bomClassifyId;
 
     /**
@@ -31,6 +35,7 @@ public class Bom extends BasePo {
     /**
      * 名称
      */
+    @NotBlank(message = "名称不能为空")
     private String name;
 
     /**

+ 6 - 0
sd-business/src/main/java/com/sd/business/entity/bom/po/BomClassify.java

@@ -5,6 +5,9 @@ import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
 import lombok.Setter;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
 /**
  * <p>
  * bom分类
@@ -21,16 +24,19 @@ public class BomClassify extends BasePo {
     /**
      * 上级分类id
      */
+    @NotNull(message = "上级分类id不能为空")
     private Long parentId;
 
     /**
      * 分类名称
      */
+    @NotBlank(message = "分类名称不能为空")
     private String name;
 
     /**
      * 分类编码
      */
+    @NotBlank(message = "分类编码不能为空")
     private String code;
 
     /**

+ 10 - 0
sd-business/src/main/java/com/sd/business/entity/bom/po/BomOperatingLog.java

@@ -28,4 +28,14 @@ public class BomOperatingLog extends BasePo {
      */
     private Integer type;
 
+    /**
+     * 操作人
+     */
+    private String operator;
+
+    /**
+     * 品号
+     */
+    private String code;
+
 }

+ 5 - 0
sd-business/src/main/java/com/sd/business/entity/bom/vo/BomVo.java

@@ -1,9 +1,12 @@
 package com.sd.business.entity.bom.vo;
 
 import com.sd.business.entity.bom.po.Bom;
+import com.sd.business.entity.bom.po.BomSpec;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * bom列表查询返回值实体
  *
@@ -14,4 +17,6 @@ import lombok.Setter;
 @Setter
 public class BomVo extends Bom {
 
+    private List<BomSpec> bomSpecList;
+
 }

+ 17 - 0
sd-business/src/main/java/com/sd/business/entity/check/dto/CheckBomDto.java

@@ -0,0 +1,17 @@
+package com.sd.business.entity.check.dto;
+
+import com.sd.business.entity.check.po.CheckBom;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 盘点bom新增编辑入参实体
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@Getter
+@Setter
+public class CheckBomDto extends CheckBom {
+
+}

+ 42 - 0
sd-business/src/main/java/com/sd/business/entity/check/dto/CheckBomSelectDto.java

@@ -0,0 +1,42 @@
+package com.sd.business.entity.check.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 盘点bom列表查询入参实体
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@Getter
+@Setter
+public class CheckBomSelectDto extends BaseSelectDto {
+
+    /**
+     * 品号
+     */
+    private String bomSpecCode;
+
+    /**
+     * 品名
+     */
+    private String bomSpecName;
+
+    /**
+     * 事业部id
+     */
+    private Long departmentId;
+
+    /**
+     * 仓库名称
+     */
+    private String warehouseName;
+
+    /**
+     * 状态 1正常 2盘盈 3盘亏
+     */
+    private Integer status;
+
+}

+ 29 - 0
sd-business/src/main/java/com/sd/business/entity/check/dto/CheckDto.java

@@ -0,0 +1,29 @@
+package com.sd.business.entity.check.dto;
+
+import com.sd.business.entity.check.po.Check;
+import com.sd.business.entity.check.po.CheckBom;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 盘点新增编辑入参实体
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@Getter
+@Setter
+public class CheckDto extends Check {
+
+    /**
+     * 盘点bom规格
+     */
+    @Valid
+    @NotEmpty(message = "盘点bom规格不能为空")
+    private List<CheckBom> checkBomList;
+
+}

+ 32 - 0
sd-business/src/main/java/com/sd/business/entity/check/dto/CheckSelectDto.java

@@ -0,0 +1,32 @@
+package com.sd.business.entity.check.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 盘点列表查询入参实体
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@Getter
+@Setter
+public class CheckSelectDto extends BaseSelectDto {
+
+    /**
+     * 事业部id
+     */
+    private Long departmentId;
+
+    /**
+     * 仓库名称
+     */
+    private String warehouseName;
+
+    /**
+     * 状态 0正常 1异常
+     */
+    private Integer status;
+
+}

+ 52 - 0
sd-business/src/main/java/com/sd/business/entity/check/po/Check.java

@@ -0,0 +1,52 @@
+package com.sd.business.entity.check.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * <p>
+ * 盘点
+ * </p>
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@Getter
+@Setter
+@TableName("check")
+public class Check extends BasePo {
+
+    /**
+     * 事业部id
+     */
+    @NotNull(message = "事业部id不能为空")
+    private Long departmentId;
+
+    /**
+     * 仓库id
+     */
+    @NotNull(message = "仓库id不能为空")
+    private Long warehouseId;
+
+    /**
+     * 盘点人
+     */
+    @NotBlank(message = "盘点人不能为空")
+    private String checkTaker;
+
+    /**
+     * 状态 0正常 1异常
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 57 - 0
sd-business/src/main/java/com/sd/business/entity/check/po/CheckBom.java

@@ -0,0 +1,57 @@
+package com.sd.business.entity.check.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 盘点bom
+ * </p>
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@Getter
+@Setter
+@TableName("check_bom")
+public class CheckBom extends BasePo {
+
+    /**
+     * 盘点id
+     */
+    private Long checkId;
+
+    /**
+     * bom规格id
+     */
+    @NotNull(message = "bom规格id不能为空")
+    private Long bomSpecId;
+
+    /**
+     * 剩余库存
+     */
+    @NotNull(message = "剩余库存不能为空")
+    private BigDecimal surplusStock;
+
+    /**
+     * 盘点数量
+     */
+    @NotNull(message = "盘点数量不能为空")
+    private BigDecimal checkQuantity;
+
+    /**
+     * 状态 1正常 2盘盈 3盘亏
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 49 - 0
sd-business/src/main/java/com/sd/business/entity/check/vo/CheckBomVo.java

@@ -0,0 +1,49 @@
+package com.sd.business.entity.check.vo;
+
+import com.sd.business.entity.check.po.CheckBom;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 盘点bom列表查询返回值实体
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@Getter
+@Setter
+public class CheckBomVo extends CheckBom {
+
+    /**
+     * 品号
+     */
+    private String bomSpecCode;
+
+    /**
+     * 品名
+     */
+    private String bomSpecName;
+
+    /**
+     * 结存单价
+     */
+    private BigDecimal balanceUnitPrice;
+
+    /**
+     * 仓库名称
+     */
+    private String warehouseName;
+
+    /**
+     * 事业部名称
+     */
+    private String departmentName;
+
+    /**
+     * 单位
+     */
+    private String bomUnit;
+
+}

+ 32 - 0
sd-business/src/main/java/com/sd/business/entity/check/vo/CheckVo.java

@@ -0,0 +1,32 @@
+package com.sd.business.entity.check.vo;
+
+import com.sd.business.entity.check.po.Check;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 盘点列表查询返回值实体
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@Getter
+@Setter
+public class CheckVo extends Check {
+
+    /**
+     * 仓库类型 字典:warehouse_type
+     */
+    private String warehouseType;
+
+    /**
+     * 仓库名称
+     */
+    private String warehouseName;
+
+    /**
+     * 事业部名称
+     */
+    private String departmentName;
+
+}

+ 0 - 9
sd-business/src/main/java/com/sd/business/mapper/bom/BomClassifyMapper.java

@@ -1,11 +1,7 @@
 package com.sd.business.mapper.bom;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.sd.business.entity.bom.po.BomClassify;
-import com.sd.business.entity.bom.vo.BomClassifyVo;
-import org.apache.ibatis.annotations.Param;
 
 
 /**
@@ -18,9 +14,4 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface BomClassifyMapper extends BaseMapper<BomClassify> {
 
-    /**
-     * bom分类分页
-     */
-    Page<BomClassifyVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<BomClassify> wrapper);
-
 }

+ 26 - 0
sd-business/src/main/java/com/sd/business/mapper/check/CheckBomMapper.java

@@ -0,0 +1,26 @@
+package com.sd.business.mapper.check;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.check.po.CheckBom;
+import com.sd.business.entity.check.vo.CheckBomVo;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 盘点bom Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-07-03
+ */
+public interface CheckBomMapper extends BaseMapper<CheckBom> {
+
+    /**
+     * 盘点bom分页
+     */
+    Page<CheckBomVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<CheckBom> wrapper);
+
+}

+ 26 - 0
sd-business/src/main/java/com/sd/business/mapper/check/CheckMapper.java

@@ -0,0 +1,26 @@
+package com.sd.business.mapper.check;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.check.po.Check;
+import com.sd.business.entity.check.vo.CheckVo;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 盘点 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-07-03
+ */
+public interface CheckMapper extends BaseMapper<Check> {
+
+    /**
+     * 盘点分页
+     */
+    Page<CheckVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Check> wrapper);
+
+}

+ 5 - 3
sd-business/src/main/java/com/sd/business/service/bom/BomClassifyService.java

@@ -1,12 +1,14 @@
 package com.sd.business.service.bom;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.core.service.BaseService;
 import com.sd.business.entity.bom.dto.BomClassifyDto;
 import com.sd.business.entity.bom.dto.BomClassifySelectDto;
 import com.sd.business.entity.bom.po.BomClassify;
 import com.sd.business.entity.bom.vo.BomClassifyVo;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -19,9 +21,9 @@ import com.sd.business.entity.bom.vo.BomClassifyVo;
 public interface BomClassifyService extends BaseService<BomClassify> {
 
     /**
-     * bom分类分页
+     * bom分类树形
      */
-    Page<BomClassifyVo> getPage(BomClassifySelectDto dto);
+    List<JSONObject> tree(BomClassifySelectDto dto);
 
     /**
      * bom分类明细

+ 0 - 21
sd-business/src/main/java/com/sd/business/service/bom/BomOperatingLogService.java

@@ -2,7 +2,6 @@ package com.sd.business.service.bom;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.service.BaseService;
-import com.sd.business.entity.bom.dto.BomOperatingLogDto;
 import com.sd.business.entity.bom.dto.BomOperatingLogSelectDto;
 import com.sd.business.entity.bom.po.BomOperatingLog;
 import com.sd.business.entity.bom.vo.BomOperatingLogVo;
@@ -23,24 +22,4 @@ public interface BomOperatingLogService extends BaseService<BomOperatingLog> {
      */
     Page<BomOperatingLogVo> getPage(BomOperatingLogSelectDto dto);
 
-    /**
-     * bom操作日志明细
-     */
-    BomOperatingLogVo detail(Long id);
-
-    /**
-     * bom操作日志新增
-     */
-    void add(BomOperatingLogDto bomOperatingLogDto);
-
-    /**
-     * bom操作日志编辑
-     */
-    void edit(BomOperatingLogDto bomOperatingLogDto);
-
-    /**
-     * bom操作日志删除
-     */
-    void delete(Long id);
-
 }

+ 26 - 7
sd-business/src/main/java/com/sd/business/service/bom/impl/BomClassifyServiceImpl.java

@@ -1,9 +1,12 @@
 package com.sd.business.service.bom.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.common.core.domain.BaseIdPo;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.TreeUtil;
 import com.sd.business.entity.bom.dto.BomClassifyDto;
 import com.sd.business.entity.bom.dto.BomClassifySelectDto;
 import com.sd.business.entity.bom.po.BomClassify;
@@ -12,6 +15,8 @@ import com.sd.business.mapper.bom.BomClassifyMapper;
 import com.sd.business.service.bom.BomClassifyService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -25,11 +30,10 @@ import org.springframework.stereotype.Service;
 public class BomClassifyServiceImpl extends ServiceImpl<BomClassifyMapper, BomClassify> implements BomClassifyService {
 
     @Override
-    public Page<BomClassifyVo> getPage(BomClassifySelectDto dto) {
-        IWrapper<BomClassify> wrapper = getWrapper();
-        wrapper.orderByDesc("bc", BomClassify::getId);
-        Page<BomClassifyVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
-        return page;
+    public List<JSONObject> tree(BomClassifySelectDto dto) {
+        List<BomClassify> list = list(q -> q
+                .like(ObjectUtil.isNotEmpty(dto.getName()), BomClassify::getName, dto.getName()));
+        return TreeUtil.buildTreeObj(list);
     }
 
     @Override
@@ -41,11 +45,26 @@ public class BomClassifyServiceImpl extends ServiceImpl<BomClassifyMapper, BomCl
 
     @Override
     public void add(BomClassifyDto bomClassifyDto) {
+        long count = count(q -> q
+                .eq(BomClassify::getCode, bomClassifyDto.getCode())
+                .last("limit 1")
+        );
+        if (count > 0) {
+            throw new ServiceException("分类编码已存在");
+        }
         this.save(bomClassifyDto);
     }
 
     @Override
     public void edit(BomClassifyDto bomClassifyDto) {
+        long count = count(q -> q
+                .eq(BomClassify::getCode, bomClassifyDto.getCode())
+                .ne(BaseIdPo::getId, bomClassifyDto.getId())
+                .last("limit 1")
+        );
+        if (count > 0) {
+            throw new ServiceException("分类编码已存在");
+        }
         this.updateById(bomClassifyDto);
     }
 

+ 0 - 24
sd-business/src/main/java/com/sd/business/service/bom/impl/BomOperatingLogServiceImpl.java

@@ -1,10 +1,8 @@
 package com.sd.business.service.bom.impl;
 
-import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.sd.business.entity.bom.dto.BomOperatingLogDto;
 import com.sd.business.entity.bom.dto.BomOperatingLogSelectDto;
 import com.sd.business.entity.bom.po.BomOperatingLog;
 import com.sd.business.entity.bom.vo.BomOperatingLogVo;
@@ -32,26 +30,4 @@ public class BomOperatingLogServiceImpl extends ServiceImpl<BomOperatingLogMappe
         return page;
     }
 
-    @Override
-    public BomOperatingLogVo detail(Long id) {
-        BomOperatingLog BomOperatingLog = this.getById(id);
-        BomOperatingLogVo result = BeanUtil.toBean(BomOperatingLog, BomOperatingLogVo.class);
-        return result;
-    }
-
-    @Override
-    public void add(BomOperatingLogDto bomOperatingLogDto) {
-        this.save(bomOperatingLogDto);
-    }
-
-    @Override
-    public void edit(BomOperatingLogDto bomOperatingLogDto) {
-        this.updateById(bomOperatingLogDto);
-    }
-
-    @Override
-    public void delete(Long id) {
-        this.removeById(id);
-    }
-
 }

+ 200 - 2
sd-business/src/main/java/com/sd/business/service/bom/impl/BomServiceImpl.java

@@ -1,16 +1,39 @@
 package com.sd.business.service.bom.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.file.entity.FileInfo;
+import com.fjhx.file.entity.ObsFile;
+import com.fjhx.file.service.FileInfoService;
+import com.fjhx.file.utils.ObsFileUtil;
+import com.ruoyi.common.core.domain.BaseIdPo;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.sd.business.entity.bom.dto.BomDto;
 import com.sd.business.entity.bom.dto.BomSelectDto;
+import com.sd.business.entity.bom.dto.BomSpecDto;
 import com.sd.business.entity.bom.po.Bom;
+import com.sd.business.entity.bom.po.BomOperatingLog;
+import com.sd.business.entity.bom.po.BomSpec;
 import com.sd.business.entity.bom.vo.BomVo;
 import com.sd.business.mapper.bom.BomMapper;
+import com.sd.business.service.bom.BomOperatingLogService;
 import com.sd.business.service.bom.BomService;
+import com.sd.business.service.bom.BomSpecService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 
 /**
@@ -24,11 +47,48 @@ import org.springframework.stereotype.Service;
 @Service
 public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomService {
 
+    @Autowired
+    private BomSpecService bomSpecService;
+
+    @Autowired
+    private FileInfoService fileInfoService;
+
+    @Autowired
+    private BomOperatingLogService bomOperatingLogService;
+
     @Override
     public Page<BomVo> getPage(BomSelectDto dto) {
         IWrapper<Bom> wrapper = getWrapper();
         wrapper.orderByDesc("b", Bom::getId);
+        wrapper.like("b", Bom::getName, dto.getName());
+        wrapper.like("b", Bom::getCode, dto.getCode());
+        wrapper.eq("b", Bom::getSpecies, dto.getSpecies());
+        wrapper.eq("b", Bom::getChromatophore, dto.getChromatophore());
+        wrapper.eq("b", Bom::getEmbossingProcess, dto.getEmbossingProcess());
+        wrapper.eq("b", Bom::getFrontGrain, dto.getFrontGrain());
+        wrapper.eq("b", Bom::getReverseGrain, dto.getReverseGrain());
+        if (StrUtil.isNotBlank(dto.getColour())) {
+            List<Long> bomIdList = bomSpecService.listObject(BomSpec::getBomId, i -> i.like(BomSpec::getColour, dto.getColour()));
+            if (bomIdList.size() == 0) {
+                return new Page<>();
+            }
+            wrapper.eq("b", Bom::getId, bomIdList);
+        }
+
         Page<BomVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<BomVo> records = page.getRecords();
+        if (records.size() == 0) {
+            return page;
+        }
+
+        List<Long> bomIdList = records.stream().map(BaseIdPo::getId).collect(Collectors.toList());
+        Map<Long, List<BomSpec>> bomSpecIdMap = bomSpecService
+                .mapKGroup(BomSpec::getBomId, q -> q.in(BomSpec::getBomId, bomIdList));
+
+        for (BomVo record : records) {
+            record.setBomSpecList(bomSpecIdMap.get(record.getId()));
+        }
+
         return page;
     }
 
@@ -36,22 +96,160 @@ public class BomServiceImpl extends ServiceImpl<BomMapper, Bom> implements BomSe
     public BomVo detail(Long id) {
         Bom Bom = this.getById(id);
         BomVo result = BeanUtil.toBean(Bom, BomVo.class);
+
+        List<BomSpec> list = bomSpecService.list(q -> q.eq(BomSpec::getBomId, id));
+        result.setBomSpecList(list);
+
         return result;
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(BomDto bomDto) {
-        this.save(bomDto);
+        List<FileInfo> fileInfoList = new ArrayList<>();
+
+        bomDto.setId(IdWorker.getId());
+
+        ObsFile mainImgFile = bomDto.getMainImgFile();
+        if (mainImgFile == null) {
+            bomDto.setMainImgUrl("");
+        } else {
+            FileInfo fileInfo = new FileInfo();
+            fileInfo.setId(mainImgFile.getId());
+            fileInfo.setBusinessId(bomDto.getId());
+            fileInfo.setBusinessType(ObsFileUtil.defaultFileType);
+            fileInfoList.add(fileInfo);
+
+            bomDto.setMainImgUrl(mainImgFile.getFileName());
+        }
+
+        List<BomSpecDto> bomSpecDtoList = bomDto.getBomSpecDtoList();
+        List<BomSpec> bomSpecList = bomSpecDtoList.stream()
+                .peek(item -> {
+                    item.setId(IdWorker.getId());
+                    item.setBomId(bomDto.getId());
+
+                    ObsFile imgFile = item.getImgFile();
+                    if (imgFile == null) {
+                        item.setMainImgUrl("");
+                    } else {
+                        FileInfo fileInfo = new FileInfo();
+                        fileInfo.setId(imgFile.getId());
+                        fileInfo.setBusinessId(item.getId());
+                        fileInfo.setBusinessType(ObsFileUtil.defaultFileType);
+                        fileInfoList.add(fileInfo);
+
+                        item.setMainImgUrl(imgFile.getFileName());
+                    }
+                })
+                .map(item -> BeanUtil.toBean(item, BomSpec.class))
+                .collect(Collectors.toList());
+
+        save(bomDto);
+        bomSpecService.saveBatch(bomSpecList);
+        if (fileInfoList.size() > 0) {
+            fileInfoService.updateBatchById(fileInfoList);
+        }
+
+        BomOperatingLog bomOperatingLog = new BomOperatingLog();
+        bomOperatingLog.setBomId(bomDto.getId());
+        bomOperatingLog.setOperator(SecurityUtils.getLoginUser().getUser().getNickName());
+        bomOperatingLog.setCode(bomDto.getCode());
+        bomOperatingLog.setType(1);
+        bomOperatingLogService.save(bomOperatingLog);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void edit(BomDto bomDto) {
+        List<FileInfo> fileInfoList = new ArrayList<>();
+
+        ObsFile mainImgFile = bomDto.getMainImgFile();
+        if (mainImgFile == null) {
+            bomDto.setMainImgUrl("");
+        } else {
+            FileInfo fileInfo = new FileInfo();
+            fileInfo.setId(mainImgFile.getId());
+            fileInfo.setBusinessId(bomDto.getId());
+            fileInfo.setBusinessType(ObsFileUtil.defaultFileType);
+            fileInfoList.add(fileInfo);
+
+            bomDto.setMainImgUrl(mainImgFile.getFileName());
+        }
+
+        List<BomSpecDto> bomSpecDtoList = bomDto.getBomSpecDtoList();
+        List<BomSpec> bomSpecList = bomSpecDtoList.stream()
+                .peek(item -> {
+                    item.setId(ObjectUtil.defaultIfNull(item.getId(), IdWorker.getId()));
+                    item.setBomId(bomDto.getId());
+
+                    ObsFile imgFile = item.getImgFile();
+                    if (imgFile == null) {
+                        item.setMainImgUrl("");
+                    } else {
+                        FileInfo fileInfo = new FileInfo();
+                        fileInfo.setId(imgFile.getId());
+                        fileInfo.setBusinessId(item.getId());
+                        fileInfo.setBusinessType(ObsFileUtil.defaultFileType);
+                        fileInfoList.add(fileInfo);
+
+                        item.setMainImgUrl(imgFile.getFileName());
+                    }
+                })
+                .map(item -> BeanUtil.toBean(item, BomSpec.class))
+                .collect(Collectors.toList());
+
+        // 修改bom
         this.updateById(bomDto);
+
+        // 修改bom明细
+        List<Long> bomSpecIdList = bomSpecList.stream().map(BomSpec::getId)
+                .filter(Objects::nonNull).distinct().collect(Collectors.toList());
+        bomSpecService.remove(q -> q
+                .eq(BomSpec::getBomId, bomDto.getId())
+                .ne(ObjectUtil.isNotEmpty(bomSpecIdList), BaseIdPo::getId, bomSpecIdList));
+        bomSpecService.saveOrUpdateBatch(bomSpecList);
+
+        // 修改文件
+        List<Long> businessIdList = bomSpecList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
+        businessIdList.add(bomDto.getId());
+        List<Long> fileInfoIdList = fileInfoList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
+        fileInfoService.remove(q -> q
+                .in(FileInfo::getBusinessId, businessIdList)
+                .ne(ObjectUtil.isNotEmpty(fileInfoIdList), BaseIdPo::getId, fileInfoIdList));
+        if (fileInfoList.size() > 0) {
+            fileInfoService.updateBatchById(fileInfoList);
+        }
+
+        BomOperatingLog bomOperatingLog = new BomOperatingLog();
+        bomOperatingLog.setBomId(bomDto.getId());
+        bomOperatingLog.setOperator(SecurityUtils.getLoginUser().getUser().getNickName());
+        bomOperatingLog.setCode(bomDto.getCode());
+        bomOperatingLog.setType(2);
+        bomOperatingLogService.save(bomOperatingLog);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void delete(Long id) {
-        this.removeById(id);
+        Bom bom = getById(id);
+        if (bom == null) {
+            throw new ServiceException("没有找到bom信息");
+        }
+
+        List<Long> businessIdList = bomSpecService.listObject(BaseIdPo::getId, q -> q.eq(BomSpec::getBomId, id));
+        businessIdList.add(id);
+        fileInfoService.remove(q -> q.in(FileInfo::getBusinessId, businessIdList));
+
+        removeById(id);
+        bomSpecService.remove(q -> q.eq(BomSpec::getBomId, id));
+
+        BomOperatingLog bomOperatingLog = new BomOperatingLog();
+        bomOperatingLog.setBomId(bom.getId());
+        bomOperatingLog.setOperator(SecurityUtils.getLoginUser().getUser().getNickName());
+        bomOperatingLog.setCode(bom.getCode());
+        bomOperatingLog.setType(3);
+        bomOperatingLogService.save(bomOperatingLog);
     }
 
 }

+ 25 - 0
sd-business/src/main/java/com/sd/business/service/check/CheckBomService.java

@@ -0,0 +1,25 @@
+package com.sd.business.service.check;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.service.BaseService;
+import com.sd.business.entity.check.dto.CheckBomSelectDto;
+import com.sd.business.entity.check.po.CheckBom;
+import com.sd.business.entity.check.vo.CheckBomVo;
+
+
+/**
+ * <p>
+ * 盘点bom 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-07-03
+ */
+public interface CheckBomService extends BaseService<CheckBom> {
+
+    /**
+     * 盘点bom分页
+     */
+    Page<CheckBomVo> getPage(CheckBomSelectDto dto);
+
+}

+ 31 - 0
sd-business/src/main/java/com/sd/business/service/check/CheckService.java

@@ -0,0 +1,31 @@
+package com.sd.business.service.check;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.service.BaseService;
+import com.sd.business.entity.check.dto.CheckDto;
+import com.sd.business.entity.check.dto.CheckSelectDto;
+import com.sd.business.entity.check.po.Check;
+import com.sd.business.entity.check.vo.CheckVo;
+
+
+/**
+ * <p>
+ * 盘点 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-07-03
+ */
+public interface CheckService extends BaseService<Check> {
+
+    /**
+     * 盘点分页
+     */
+    Page<CheckVo> getPage(CheckSelectDto dto);
+
+    /**
+     * 盘点新增
+     */
+    void add(CheckDto checkDto);
+
+}

+ 44 - 0
sd-business/src/main/java/com/sd/business/service/check/impl/CheckBomServiceImpl.java

@@ -0,0 +1,44 @@
+package com.sd.business.service.check.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.bom.po.BomSpec;
+import com.sd.business.entity.check.dto.CheckBomSelectDto;
+import com.sd.business.entity.check.po.Check;
+import com.sd.business.entity.check.po.CheckBom;
+import com.sd.business.entity.check.vo.CheckBomVo;
+import com.sd.business.entity.warehouse.po.Warehouse;
+import com.sd.business.mapper.check.CheckBomMapper;
+import com.sd.business.service.check.CheckBomService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 盘点bom 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@Service
+public class CheckBomServiceImpl extends ServiceImpl<CheckBomMapper, CheckBom> implements CheckBomService {
+
+    @Override
+    public Page<CheckBomVo> getPage(CheckBomSelectDto dto) {
+        IWrapper<CheckBom> wrapper = getWrapper();
+        wrapper.orderByDesc("cb", CheckBom::getId);
+        wrapper.like("bs", BomSpec::getCode, dto.getBomSpecCode());
+        wrapper.like("bs", BomSpec::getName, dto.getBomSpecName());
+        wrapper.eq("c", Check::getDepartmentId, dto.getDepartmentId());
+        wrapper.like("w", Warehouse::getName, dto.getWarehouseName());
+        wrapper.eq("cb", CheckBom::getStatus, dto.getStatus());
+        wrapper.ge("c", Check::getCreateTime, dto.getBeginTime());
+        wrapper.le("c", Check::getCreateTime, dto.getEndTime());
+
+        Page<CheckBomVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+}

+ 77 - 0
sd-business/src/main/java/com/sd/business/service/check/impl/CheckServiceImpl.java

@@ -0,0 +1,77 @@
+package com.sd.business.service.check.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.check.dto.CheckDto;
+import com.sd.business.entity.check.dto.CheckSelectDto;
+import com.sd.business.entity.check.po.Check;
+import com.sd.business.entity.check.po.CheckBom;
+import com.sd.business.entity.check.vo.CheckVo;
+import com.sd.business.entity.warehouse.po.Warehouse;
+import com.sd.business.mapper.check.CheckMapper;
+import com.sd.business.service.check.CheckBomService;
+import com.sd.business.service.check.CheckService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 盘点 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-07-03
+ */
+@Service
+public class CheckServiceImpl extends ServiceImpl<CheckMapper, Check> implements CheckService {
+
+    @Autowired
+    private CheckBomService checkBomService;
+
+    @Override
+    public Page<CheckVo> getPage(CheckSelectDto dto) {
+        IWrapper<Check> wrapper = getWrapper();
+        wrapper.orderByDesc("c", Check::getId);
+        wrapper.eq("c", Check::getDepartmentId, dto.getDepartmentId());
+        wrapper.like("w", Warehouse::getName, dto.getWarehouseName());
+        wrapper.eq("c", Check::getStatus, dto.getStatus());
+        wrapper.ge("c", Check::getCreateTime, dto.getBeginTime());
+        wrapper.le("c", Check::getCreateTime, dto.getEndTime());
+
+        Page<CheckVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(CheckDto checkDto) {
+        long checkId = IdWorker.getId();
+        checkDto.setId(checkId);
+        checkDto.setStatus(0);
+
+        List<CheckBom> checkBomList = checkDto.getCheckBomList();
+        for (CheckBom checkBom : checkBomList) {
+            checkBom.setCheckId(checkId);
+            int compareTo = checkBom.getCheckQuantity().compareTo(checkBom.getSurplusStock());
+            if (compareTo == 0) {
+                checkBom.setStatus(1);
+            } else if (compareTo > 0) {
+                checkBom.setStatus(2);
+                checkDto.setStatus(1);
+            } else {
+                checkBom.setStatus(3);
+                checkDto.setStatus(1);
+            }
+        }
+
+        this.save(checkDto);
+        checkBomService.saveBatch(checkBomList);
+    }
+
+}

+ 0 - 14
sd-business/src/main/resources/mapper/bom/BomClassifyMapper.xml

@@ -1,19 +1,5 @@
 <?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.sd.business.mapper.bom.BomClassifyMapper">
-    <select id="getPage" resultType="com.sd.business.entity.bom.vo.BomClassifyVo">
-        select bc.id,
-               bc.parent_id,
-               bc.name,
-               bc.code,
-               bc.sort,
-               bc.remark,
-               bc.create_user,
-               bc.create_time,
-               bc.update_user,
-               bc.update_time
-        from bom_classify bc
-            ${ew.customSqlSegment}
-    </select>
 
 </mapper>

+ 3 - 0
sd-business/src/main/resources/mapper/bom/BomOperatingLogMapper.xml

@@ -1,10 +1,13 @@
 <?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.sd.business.mapper.bom.BomOperatingLogMapper">
+
     <select id="getPage" resultType="com.sd.business.entity.bom.vo.BomOperatingLogVo">
         select bol.id,
                bol.bom_id,
                bol.type,
+               bol.operator,
+               bol.code,
                bol.create_user,
                bol.create_time,
                bol.update_user,

+ 30 - 0
sd-business/src/main/resources/mapper/check/CheckBomMapper.xml

@@ -0,0 +1,30 @@
+<?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.sd.business.mapper.check.CheckBomMapper">
+
+    <select id="getPage" resultType="com.sd.business.entity.check.vo.CheckBomVo">
+        select cb.id,
+               cb.check_id,
+               cb.bom_spec_id,
+               cb.surplus_stock,
+               cb.check_quantity,
+               cb.status,
+               cb.remark,
+               bs.code                         bomSpecCode,
+               bs.name                         bomSpecName,
+               ifnull(i.balance_unit_price, 0) balanceUnitPrice,
+               w.name                          warehouseName,
+               d.name                          departmentName,
+               b.unit                          bomUnit
+        from check_bom cb
+                 left join `check` c on cb.check_id = c.id
+                 left join warehouse w on c.warehouse_id = w.id
+                 left join department d on c.department_id = d.id
+                 left join bom_spec bs on cb.bom_spec_id = bs.id
+                 left join bom b on bs.bom_id = b.id
+                 left join inventory i on cb.bom_spec_id = i.bom_spec_id
+            and c.warehouse_id = i.warehouse_id and c.department_id = i.department_id
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 21 - 0
sd-business/src/main/resources/mapper/check/CheckMapper.xml

@@ -0,0 +1,21 @@
+<?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.sd.business.mapper.check.CheckMapper">
+    <select id="getPage" resultType="com.sd.business.entity.check.vo.CheckVo">
+        select c.id,
+               c.department_id,
+               c.warehouse_id,
+               c.check_taker,
+               c.status,
+               c.remark,
+               c.create_time,
+               w.type warehouseType,
+               w.name warehouseName,
+               d.name departmentName
+        from check c
+                 left join warehouse w on c.warehouse_id = w.id
+                 left join department d on c.department_id = d.id
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>