Przeglądaj źródła

盘点新增导入

fgd 1 rok temu
rodzic
commit
a2de9438d7

+ 21 - 4
sd-business/src/main/java/com/sd/business/controller/check/CheckController.java

@@ -1,17 +1,18 @@
 package com.sd.business.controller.check;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.sd.business.entity.check.dto.CheckDto;
 import com.sd.business.entity.check.dto.CheckSelectDto;
+import com.sd.business.entity.check.vo.CheckImportDataVo;
 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;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
 
 /**
  * <p>
@@ -44,4 +45,20 @@ public class CheckController {
         checkService.add(checkDto);
     }
 
+    /**
+     * 导入盘点数据
+     */
+    @PostMapping("/excelImport")
+    public CheckImportDataVo excelImport(MultipartFile file) {
+        return checkService.checkImportData(file);
+    }
+
+    /**
+     * 库存导出
+     */
+    @PostMapping("/inventoryExportExcel")
+    public void inventoryExportExcel(HttpServletResponse response, @RequestBody BaseSelectDto dto) {
+        checkService.inventoryExportExcel(response, dto.getId());
+    }
+
 }

+ 6 - 2
sd-business/src/main/java/com/sd/business/entity/check/dto/CheckBomSelectDto.java

@@ -30,13 +30,17 @@ public class CheckBomSelectDto extends BaseSelectDto {
     private Long departmentId;
 
     /**
-     * 仓库名称
+     * 仓库id
      */
-    private String warehouseName;
+    private Long warehouseId;
 
     /**
      * 状态 1正常 2盘盈 3盘亏
      */
     private Integer status;
 
+    /**
+     * 盘点单号
+     */
+    private String code;
 }

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

@@ -1,5 +1,6 @@
 package com.sd.business.entity.check.dto;
 
+import com.fjhx.file.entity.ObsFile;
 import com.sd.business.entity.check.po.Check;
 import com.sd.business.entity.check.po.CheckBom;
 import lombok.Getter;
@@ -26,4 +27,9 @@ public class CheckDto extends Check {
     @NotEmpty(message = "盘点bom规格不能为空")
     private List<CheckBom> checkBomList;
 
+    /**
+     * excel导入文件
+     */
+    private ObsFile excelFile;
+
 }

+ 74 - 0
sd-business/src/main/java/com/sd/business/entity/check/dto/CheckImportDataDto.java

@@ -0,0 +1,74 @@
+package com.sd.business.entity.check.dto;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 盘点导入数据 实体
+ *
+ * @author
+ * @since 2023-10-21
+ */
+@Getter
+@Setter
+@ExcelIgnoreUnannotated
+public class CheckImportDataDto {
+    /**
+     * 仓库名称
+     */
+    @ExcelProperty(value = "仓库", index = 0)
+    private String warehouseName;
+
+    /**
+     * 品名
+     */
+    @ExcelProperty(value = "品名", index = 1)
+    private String bomSpecName;
+
+    /**
+     * 品号
+     */
+    @ExcelProperty(value = "品号", index = 2)
+    private String bomSpecCode;
+
+    /**
+     * 结存单价
+     */
+    @ExcelProperty(value = "结存单价", index = 3)
+    private BigDecimal balanceUnitPrice;
+
+
+    /**
+     * 数量
+     */
+    @ExcelProperty(value = "可用库存", index = 4)
+    private BigDecimal quantity;
+
+    /**
+     * 锁定库存
+     */
+    @ExcelProperty(value = "锁定库存", index = 5)
+    private BigDecimal lockQuantity;
+
+    /**
+     * 结存总价
+     */
+    @ExcelProperty(value = "结存总价", index = 6)
+    private BigDecimal totalPrice;
+
+    /**
+     * 总库存
+     */
+    @ExcelProperty(value = "总库存", index = 7)
+    private BigDecimal totalQuantity;
+
+    /**
+     * 实际库存
+     */
+    @ExcelProperty(value = "实际库存", index = 8)
+    private BigDecimal realityQuantity;
+}

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

@@ -20,9 +20,9 @@ public class CheckSelectDto extends BaseSelectDto {
     private Long departmentId;
 
     /**
-     * 仓库名称
+     * 仓库id
      */
-    private String warehouseName;
+    private Long warehouseId;
 
     /**
      * 状态 0正常 1异常

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

@@ -22,6 +22,11 @@ import javax.validation.constraints.NotNull;
 public class Check extends BasePo {
 
     /**
+     * 盘点单号
+     */
+    private String code;
+
+    /**
      * 事业部id
      */
     @NotNull(message = "事业部id不能为空")

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

@@ -17,6 +17,11 @@ import java.math.BigDecimal;
 public class CheckBomVo extends CheckBom {
 
     /**
+     * 盘点单号
+     */
+    private String code;
+
+    /**
      * 品号
      */
     private String bomSpecCode;

+ 53 - 0
sd-business/src/main/java/com/sd/business/entity/check/vo/CheckImportDataVo.java

@@ -0,0 +1,53 @@
+package com.sd.business.entity.check.vo;
+
+import com.fjhx.file.entity.ObsFile;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 盘点导入列表返回值实体
+ *
+ * @author
+ * @since 2023-10-21
+ */
+@Getter
+@Setter
+public class CheckImportDataVo {
+
+    /**
+     * 事业部id
+     */
+    private Long departmentId;
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 盘点人
+     */
+    private String checkTaker;
+
+    /**
+     * 状态 0正常 1异常
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 盘点bom规格列表
+     */
+    private List<CheckBomVo> checkBomList;
+
+    /**
+     * excel文件
+     */
+    private ObsFile excelFile;
+}

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

@@ -5,7 +5,11 @@ 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.CheckImportDataVo;
 import com.sd.business.entity.check.vo.CheckVo;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
 
 
 /**
@@ -28,4 +32,18 @@ public interface CheckService extends BaseService<Check> {
      */
     void add(CheckDto checkDto);
 
+    /**
+     * 盘点导入数据
+     *
+     * @param file
+     */
+    CheckImportDataVo checkImportData(MultipartFile file);
+
+    /**
+     * 库存导出
+     *
+     * @param response
+     * @param warehouseId
+     */
+    void inventoryExportExcel(HttpServletResponse response, Long warehouseId);
 }

+ 2 - 1
sd-business/src/main/java/com/sd/business/service/check/impl/CheckBomServiceImpl.java

@@ -29,10 +29,11 @@ public class CheckBomServiceImpl extends ServiceImpl<CheckBomMapper, CheckBom> i
     public Page<CheckBomVo> getPage(CheckBomSelectDto dto) {
         IWrapper<CheckBom> wrapper = getWrapper();
         wrapper.orderByDesc("cb", CheckBom::getId);
+        wrapper.like("c", Check::getCode, dto.getCode());
         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("w", Warehouse::getId, dto.getWarehouseId());
         wrapper.eq("cb", CheckBom::getStatus, dto.getStatus());
         wrapper.ge("c", Check::getCreateTime, dto.getBeginTime());
         wrapper.le("c", Check::getCreateTime, dto.getEndTime());

+ 210 - 8
sd-business/src/main/java/com/sd/business/service/check/impl/CheckServiceImpl.java

@@ -1,23 +1,61 @@
 package com.sd.business.service.check.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 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.constant.StatusConstant;
+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.po.BomSpec;
 import com.sd.business.entity.check.dto.CheckDto;
+import com.sd.business.entity.check.dto.CheckImportDataDto;
 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.CheckBomVo;
+import com.sd.business.entity.check.vo.CheckImportDataVo;
 import com.sd.business.entity.check.vo.CheckVo;
+import com.sd.business.entity.department.constant.DepartmentConstant;
+import com.sd.business.entity.in.dto.InOutStorageDto;
+import com.sd.business.entity.in.emums.InDetailTypeEnum;
+import com.sd.business.entity.in.emums.InOutTypeEnum;
+import com.sd.business.entity.in.emums.OutDetailTypeEnum;
+import com.sd.business.entity.in.po.InOutStorageBom;
+import com.sd.business.entity.inventory.dto.InventorySelectDto;
+import com.sd.business.entity.inventory.po.Inventory;
+import com.sd.business.entity.inventory.vo.InventoryVo;
 import com.sd.business.entity.warehouse.po.Warehouse;
 import com.sd.business.mapper.check.CheckMapper;
+import com.sd.business.service.bom.BomSpecService;
 import com.sd.business.service.check.CheckBomService;
 import com.sd.business.service.check.CheckService;
+import com.sd.business.service.in.InOutStorageService;
+import com.sd.business.service.inventory.InventoryService;
+import com.sd.business.service.warehouse.WarehouseService;
+import com.sd.business.upload.ObsUploadService;
+import com.sd.business.util.CodeEnum;
+import com.sd.framework.util.Assert;
+import com.sd.framework.util.excel.util.ExcelUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
-import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
@@ -34,12 +72,30 @@ public class CheckServiceImpl extends ServiceImpl<CheckMapper, Check> implements
     @Autowired
     private CheckBomService checkBomService;
 
+    @Autowired
+    private InventoryService inventoryService;
+
+    @Autowired
+    private BomSpecService bomSpecService;
+
+    @Autowired
+    private WarehouseService warehouseService;
+
+    @Autowired
+    private InOutStorageService inOutStorageService;
+
+    @Autowired
+    private FileInfoService fileInfoService;
+
+    @Autowired
+    private ObsUploadService obsUploadService;
+
     @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("w", Warehouse::getId, dto.getWarehouseId());
         wrapper.eq("c", Check::getStatus, dto.getStatus());
         wrapper.ge("c", Check::getCreateTime, dto.getBeginTime());
         wrapper.le("c", Check::getCreateTime, dto.getEndTime());
@@ -48,30 +104,176 @@ public class CheckServiceImpl extends ServiceImpl<CheckMapper, Check> implements
         return page;
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @DSTransactional
     @Override
     public void add(CheckDto checkDto) {
         long checkId = IdWorker.getId();
         checkDto.setId(checkId);
+        checkDto.setCode(CodeEnum.CHECK_CODE.getCode());
         checkDto.setStatus(0);
 
         List<CheckBom> checkBomList = checkDto.getCheckBomList();
         for (CheckBom checkBom : checkBomList) {
             checkBom.setCheckId(checkId);
+        }
+
+        List<CheckBom> checkShortagesBomList = checkBomList.stream().filter(item -> Objects.equals(item.getStatus(), 3)).collect(Collectors.toList());
+        if (ObjectUtil.isNotEmpty(checkShortagesBomList)) {
+            List<InOutStorageBom> outStorageBomList = checkShortagesBomList.stream().map(item -> {
+                InOutStorageBom inOutStorageBom = new InOutStorageBom();
+                inOutStorageBom.setBomSpecId(item.getBomSpecId());
+                inOutStorageBom.setQuantity(item.getSurplusStock().subtract(item.getCheckQuantity()));
+                return inOutStorageBom;
+            }).collect(Collectors.toList());
+            // 出库盘亏数据
+            InOutStorageDto OutStorageDto = new InOutStorageDto();
+            OutStorageDto.setType(InOutTypeEnum.OUT.getKey());
+            OutStorageDto.setDetailType(OutDetailTypeEnum.INVENTORY_LOSS.getKey());
+            OutStorageDto.setWarehouseId(checkDto.getWarehouseId());
+            OutStorageDto.setDepartmentId(checkDto.getDepartmentId());
+            OutStorageDto.setApplicant(checkDto.getCheckTaker());
+            OutStorageDto.setLockStorage(StatusConstant.NO);
+            OutStorageDto.setInOutStorageBomList(outStorageBomList);
+            inOutStorageService.add(OutStorageDto);
+        }
+
+        // 筛选出盘盈和盘亏数据
+        List<CheckBom> checkProfitBomList = checkBomList.stream().filter(item -> Objects.equals(item.getStatus(), 2)).collect(Collectors.toList());
+        if (ObjectUtil.isNotEmpty(checkProfitBomList)) {
+            List<InOutStorageBom> inStorageBomList = checkProfitBomList.stream().map(item -> {
+                InOutStorageBom inOutStorageBom = new InOutStorageBom();
+                inOutStorageBom.setBomSpecId(item.getBomSpecId());
+                inOutStorageBom.setQuantity(item.getCheckQuantity().subtract(item.getSurplusStock()));
+                return inOutStorageBom;
+            }).collect(Collectors.toList());
+            // 入库盘盈数据
+            InOutStorageDto inStorageDto = new InOutStorageDto();
+            inStorageDto.setType(InOutTypeEnum.IN.getKey());
+            inStorageDto.setDetailType(InDetailTypeEnum.CHECK.getKey());
+            inStorageDto.setWarehouseId(checkDto.getWarehouseId());
+            inStorageDto.setDepartmentId(checkDto.getDepartmentId());
+            inStorageDto.setApplicant(checkDto.getCheckTaker());
+            inStorageDto.setInOutStorageBomList(inStorageBomList);
+            inOutStorageService.add(inStorageDto);
+        }
+
+        // 新增盘点数据
+        this.save(checkDto);
+        checkBomService.saveBatch(checkBomList);
+        // 保存附件
+        ObsFileUtil.saveFile(checkDto.getExcelFile(), checkDto.getId());
+    }
+
+    @DSTransactional
+    @Override
+    public CheckImportDataVo checkImportData(MultipartFile file) {
+        List<CheckImportDataDto> list = ExcelUtil.read(file, CheckImportDataDto.class);
+        validatedImportData(list);
+        // 保存盘点单
+        CheckImportDataVo vo = new CheckImportDataVo();
+        vo.setStatus(0);
+        vo.setCheckTaker(SecurityUtils.getLoginUser().getUser().getNickName());
+        vo.setDepartmentId(DepartmentConstant.SD_SPORTS);
+        // 查询仓库
+        List<Warehouse> warehouseList = warehouseService.list();
+        String warehouseName = list.get(0).getWarehouseName();
+        Warehouse warehouse = warehouseList.stream().filter(item -> item.getName().equals(warehouseName)).findAny().orElse(null);;
+        if (warehouse == null) {
+            throw new ServiceException("未知仓库:" + warehouseName);
+        }
+        vo.setWarehouseId(warehouse.getId());
+
+        List<String> bomSpecCodes = list.stream().map(CheckImportDataDto::getBomSpecCode).collect(Collectors.toList());
+        Map<String, BomSpec> bomSpecMap = bomSpecService.mapKEntity(BomSpec::getCode, q -> q.in(BomSpec::getCode, bomSpecCodes));
+        List<Long> bomSpecIds = bomSpecMap.values().stream().map(BaseIdPo::getId).collect(Collectors.toList());
+        Map<Long, Inventory> inventoryMap = inventoryService.mapKEntity(Inventory::getBomSpecId,
+                q -> q.eq(Inventory::getDepartmentId, DepartmentConstant.SD_SPORTS)
+                        .eq(Inventory::getWarehouseId, warehouse.getId())
+                        .in(Inventory::getBomSpecId, bomSpecIds));
+        List<CheckBomVo> checkBomList = new ArrayList<>();
+        for (CheckImportDataDto dto : list) {
+            BomSpec bomSpec = bomSpecMap.get(dto.getBomSpecCode());
+            if (bomSpec == null) {
+                throw new ServiceException("未知bom品号:" + dto.getBomSpecCode());
+            }
+            Inventory inventory = inventoryMap.get(bomSpec.getId());
+            BigDecimal lockQuantity = inventory.getLockQuantity() == null ? BigDecimal.ZERO : inventory.getLockQuantity();
+            if (dto.getRealityQuantity().compareTo(lockQuantity) < 0) {
+                throw new ServiceException("导入失败,bom品号:" + dto.getBomSpecCode()+ ",锁定库存大于实际库存,请确认库存是否正常!");
+            }
+
+            CheckBomVo checkBom = new CheckBomVo();
+            checkBom.setBomSpecId(bomSpec.getId());
+            checkBom.setBomSpecCode(bomSpec.getCode());
+            checkBom.setBomSpecName(bomSpec.getName());
+            checkBom.setWarehouseName(warehouse.getName());
+            checkBom.setDepartmentName("胜德体育");
+            checkBom.setBalanceUnitPrice(inventory.getBalanceUnitPrice());
+            checkBom.setSurplusStock(inventory.getQuantity().add(lockQuantity));
+            checkBom.setCheckQuantity(dto.getRealityQuantity());
+
+            // 判断盘点状态
             int compareTo = checkBom.getCheckQuantity().compareTo(checkBom.getSurplusStock());
             if (compareTo == 0) {
                 checkBom.setStatus(1);
             } else if (compareTo > 0) {
                 checkBom.setStatus(2);
-                checkDto.setStatus(1);
+                vo.setStatus(1);
             } else {
                 checkBom.setStatus(3);
-                checkDto.setStatus(1);
+                vo.setStatus(1);
             }
+            checkBomList.add(checkBom);
         }
+        vo.setCheckBomList(checkBomList);
 
-        this.save(checkDto);
-        checkBomService.saveBatch(checkBomList);
+        // 保存上传文件
+        ByteArrayInputStream bis = null;
+        try {
+            bis = new ByteArrayInputStream(file.getBytes());
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        String fileName = file.getOriginalFilename();
+        String fileUrl = obsUploadService.uploadFileByte(bis, fileName);
+        // 保存文件
+        FileInfo fileInfo = new FileInfo();
+        fileInfo.setFileUrl(fileUrl);
+        fileInfo.setFileName(fileName);
+        fileInfoService.save(fileInfo);
+        // 新增附件列表
+        ObsFile obsFile = new ObsFile();
+        obsFile.setId(fileInfo.getId());
+        vo.setExcelFile(obsFile);
+
+        return vo;
+    }
+
+    @Override
+    public void inventoryExportExcel(HttpServletResponse response, Long warehouseId) {
+        InventorySelectDto dto = new InventorySelectDto();
+        dto.setPageNum(1);
+        dto.setPageSize(999999999);
+        dto.setDepartmentId(DepartmentConstant.SD_SPORTS);
+        dto.setWarehouseId(warehouseId);
+        Page<InventoryVo> page = inventoryService.getPage(dto, "inventory");
+        List<InventoryVo> list = page.getRecords();
+        List<CheckImportDataDto> dataList = BeanUtil.copyToList(list, CheckImportDataDto.class);
+        ExcelUtil.export(response, DateUtil.format(new Date(), "yyyy-MM-dd盘点库存数据"), "库存数据", dataList, CheckImportDataDto.class);
+    }
+
+    private void validatedImportData(List<CheckImportDataDto> list) {
+        Assert.notEmpty(list, "盘点明细不能为空");
+        String warehouseName = null;
+        for (CheckImportDataDto checkImportDataDto : list) {
+            Assert.notNull(checkImportDataDto.getWarehouseName(), "盘点仓库名称不能为空");
+            if (warehouseName == null) {
+                warehouseName = checkImportDataDto.getWarehouseName();
+            }
+            Assert.eqTrue(warehouseName.equals(checkImportDataDto.getWarehouseName()), "盘点仓库名称不一致");
+            Assert.notNull(checkImportDataDto.getBomSpecCode(), "bom品号不能为空");
+            Assert.gtZero(checkImportDataDto.getRealityQuantity(), "实际库存数量不能为空或负数");
+        }
     }
 
 }

+ 3 - 1
sd-business/src/main/java/com/sd/business/util/CodeEnum.java

@@ -8,6 +8,7 @@ import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.exception.ServiceException;
 import com.sd.business.service.apply.ApplyBuyService;
+import com.sd.business.service.check.CheckService;
 import com.sd.business.service.in.InOutStorageService;
 import com.sd.business.service.inventory.InventoryFinishedOrderDetailService;
 import com.sd.business.service.lend.LendService;
@@ -50,7 +51,8 @@ public enum CodeEnum {
     // 成品仓出库
     FINISHED_OUT("PWS", "-yyMMdd-", "code", 6, InventoryFinishedOrderDetailService.class),
     // 采购入库编号
-    PURCHASE_STORAGE_CODE("CG", "yyMMdd", "code", 4, PurchasePendingStorageService.class);
+    PURCHASE_STORAGE_CODE("CG", "yyMMdd", "code", 4, PurchasePendingStorageService.class),
+    CHECK_CODE("PD", "-yyMMdd-", "code", 6, CheckService.class);
 
     // 编码前缀
     private final String prefix;

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

@@ -4,6 +4,7 @@
 
     <select id="getPage" resultType="com.sd.business.entity.check.vo.CheckBomVo">
         select cb.id,
+               c.code,
                cb.check_id,
                cb.bom_spec_id,
                cb.surplus_stock,

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

@@ -3,6 +3,7 @@
 <mapper namespace="com.sd.business.mapper.check.CheckMapper">
     <select id="getPage" resultType="com.sd.business.entity.check.vo.CheckVo">
         select c.id,
+               c.code,
                c.department_id,
                c.warehouse_id,
                c.check_taker,