24282 před 1 rokem
rodič
revize
338889f9ee
18 změnil soubory, kde provedl 674 přidání a 0 odebrání
  1. 37 0
      sd-business/src/main/java/com/sd/business/controller/check/CheckBomController.java
  2. 47 0
      sd-business/src/main/java/com/sd/business/controller/check/CheckController.java
  3. 17 0
      sd-business/src/main/java/com/sd/business/entity/check/dto/CheckBomDto.java
  4. 42 0
      sd-business/src/main/java/com/sd/business/entity/check/dto/CheckBomSelectDto.java
  5. 29 0
      sd-business/src/main/java/com/sd/business/entity/check/dto/CheckDto.java
  6. 32 0
      sd-business/src/main/java/com/sd/business/entity/check/dto/CheckSelectDto.java
  7. 52 0
      sd-business/src/main/java/com/sd/business/entity/check/po/Check.java
  8. 57 0
      sd-business/src/main/java/com/sd/business/entity/check/po/CheckBom.java
  9. 49 0
      sd-business/src/main/java/com/sd/business/entity/check/vo/CheckBomVo.java
  10. 32 0
      sd-business/src/main/java/com/sd/business/entity/check/vo/CheckVo.java
  11. 26 0
      sd-business/src/main/java/com/sd/business/mapper/check/CheckBomMapper.java
  12. 26 0
      sd-business/src/main/java/com/sd/business/mapper/check/CheckMapper.java
  13. 25 0
      sd-business/src/main/java/com/sd/business/service/check/CheckBomService.java
  14. 31 0
      sd-business/src/main/java/com/sd/business/service/check/CheckService.java
  15. 44 0
      sd-business/src/main/java/com/sd/business/service/check/impl/CheckBomServiceImpl.java
  16. 77 0
      sd-business/src/main/java/com/sd/business/service/check/impl/CheckServiceImpl.java
  17. 30 0
      sd-business/src/main/resources/mapper/check/CheckBomMapper.xml
  18. 21 0
      sd-business/src/main/resources/mapper/check/CheckMapper.xml

+ 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);
+    }
+
+}

+ 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;
+
+}

+ 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);
+
+}

+ 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);
+    }
+
+}

+ 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>