diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstorage/vo/RawStorageMatSaveReqVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstorage/vo/RawStorageMatSaveReqVO.java index 5b86b98..4ccef5f 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstorage/vo/RawStorageMatSaveReqVO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstorage/vo/RawStorageMatSaveReqVO.java @@ -73,4 +73,6 @@ public class RawStorageMatSaveReqVO { @Schema(description = "存货账单号") private String inventBillNo; + private BigDecimal returnQty; + } diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstorage/vo/RawStoragePageReqVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstorage/vo/RawStoragePageReqVO.java index c7e5603..0198fb8 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstorage/vo/RawStoragePageReqVO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstorage/vo/RawStoragePageReqVO.java @@ -23,7 +23,7 @@ public class RawStoragePageReqVO extends PageParam { private String billNo; @Schema(description = "操作类型 1为入库,2为出库", example = "1") - private Boolean operatorType; + private String operatorType; @Schema(description = "业务类型 (10 采购入库,11 盘盈入库,12 其它入库 21 生产领料 22 盘亏出库 23采购退料)", example = "1") private Integer businessType; diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstoragemat/vo/RawStorageMatPageReqVO.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstoragemat/vo/RawStorageMatPageReqVO.java index 47ec751..ac8397b 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstoragemat/vo/RawStorageMatPageReqVO.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/controller/admin/rawstoragemat/vo/RawStorageMatPageReqVO.java @@ -84,4 +84,8 @@ public class RawStorageMatPageReqVO extends PageParam { private String billNo; + private String operatorType; + + private String status; + } diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawstorage/RawStorageMapper.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawstorage/RawStorageMapper.java index 9dc5251..97079ec 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawstorage/RawStorageMapper.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawstorage/RawStorageMapper.java @@ -36,8 +36,9 @@ public interface RawStorageMapper extends BaseMapperX { .orderByDesc(RawStorageDO::getId)); } - default String selectMaxPurReceiptNo() { + default String selectMaxPurReceiptNo(String operatorType) { RawStorageDO rawStorageDO = selectOne(new LambdaQueryWrapperX() + .eq(RawStorageDO::getOperatorType, operatorType) .orderByDesc(RawStorageDO::getBillNo) .last("LIMIT 1")); return rawStorageDO != null ? rawStorageDO.getBillNo() : null; diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawstoragemat/RawStorageMatMapper.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawstoragemat/RawStorageMatMapper.java index 7ffa3aa..7c7494e 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawstoragemat/RawStorageMatMapper.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/dal/mysql/rawstoragemat/RawStorageMatMapper.java @@ -26,6 +26,7 @@ public interface RawStorageMatMapper extends BaseMapperX { MPJLambdaWrapper wrapper = new MPJLambdaWrapper() // 选择子表字段 .selectAll(RawStorageMatDO.class) + .selectAs(RawStorageMatDO::getOperatorQty, RawStorageMatRespVO::getSourceQty) // 选择主表字段 .selectAs(RawStorageDO::getBillNo, RawStorageMatRespVO::getBillNo) .selectAs(RawStorageDO::getOperatorType, RawStorageMatRespVO::getOperatorType) @@ -44,6 +45,9 @@ public interface RawStorageMatMapper extends BaseMapperX { .eq(StringUtils.isNotBlank(reqVO.getMatCode()), RawStorageMatDO::getMatCode, reqVO.getMatCode()) .eq(StringUtils.isNotBlank(reqVO.getInventBillNo()), RawStorageMatDO::getInventBillNo, reqVO.getInventBillNo()) // 查询条件 - 主表 + .apply("operator_qty - return_qty > 0") + .eq(StringUtils.isNotBlank(reqVO.getStatus()), RawStorageDO::getStatus, reqVO.getStatus()) + .eq(StringUtils.isNotBlank(reqVO.getOperatorType()), RawStorageDO::getOperatorType, reqVO.getOperatorType()) .like(StringUtils.isNotBlank(reqVO.getBillNo()), RawStorageDO::getBillNo, reqVO.getBillNo()) .orderByDesc(RawStorageMatDO::getId); diff --git a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/rawstorage/RawStorageServiceImpl.java b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/rawstorage/RawStorageServiceImpl.java index 852ac89..e3a4ac7 100644 --- a/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/rawstorage/RawStorageServiceImpl.java +++ b/mes-module-chemmes/mes-module-chemmes-biz/src/main/java/com/ningxia/yunxi/chemmes/module/biz/service/rawstorage/RawStorageServiceImpl.java @@ -62,8 +62,7 @@ public class RawStorageServiceImpl implements RawStorageService { public Integer createRawStorage(RawStorageSaveReqVO createReqVO) { // 插入主表 RawStorageDO rawStorage = BeanUtils.toBean(createReqVO, RawStorageDO.class); - rawStorage.setBillNo(getBillNo()); - rawStorage.setOperatorType("1"); + rawStorage.setBillNo(getBillNo(createReqVO.getOperatorType())); // 操作人 Long userId = getLoginUserId(); AdminUserDO adminUserDO = adminUserService.getUser(userId); @@ -72,16 +71,9 @@ public class RawStorageServiceImpl implements RawStorageService { rawStorageMapper.insert(rawStorage); // 插入子表 - if (createReqVO.getItems() != null && !createReqVO.getItems().isEmpty()) { - for (RawStorageMatSaveReqVO matVO : createReqVO.getItems()) { - RawStorageMatDO mat = BeanUtils.toBean(matVO, RawStorageMatDO.class); - mat.setStockId(rawStorage.getId()); - mat.setId(null); - rawStorageMatMapper.insert(mat); - } - } + saveMat(rawStorage.getId(), createReqVO); - if (createReqVO.getStatus().equals("2")) { + if ("2".equals(createReqVO.getStatus())) { saveStorageLog(rawStorage); } @@ -96,14 +88,25 @@ public class RawStorageServiceImpl implements RawStorageService { for (RawStorageMatDO rawStorageMatDO : rawStorageMatDOS) { RawStorageInventoryDO rawStorageInventoryDO = rawStorageInventoryService.selectByMatCodeAndBatchNo(rawStorageMatDO); if (rawStorageInventoryDO != null) { - rawStorageInventoryDO.setYardQty(rawStorageInventoryDO.getYardQty().add(rawStorageMatDO.getOperatorQty())); - rawStorageInventoryDO.setUseQty(rawStorageInventoryDO.getUseQty().add(rawStorageMatDO.getOperatorQty())); + if ("1".equals(rawStorage.getOperatorType())) { + rawStorageInventoryDO.setYardQty(rawStorageInventoryDO.getYardQty().add(rawStorageMatDO.getOperatorQty())); + rawStorageInventoryDO.setUseQty(rawStorageInventoryDO.getUseQty().add(rawStorageMatDO.getOperatorQty())); + } else if ("2".equals(rawStorage.getOperatorType())) { + rawStorageInventoryDO.setYardQty(rawStorageInventoryDO.getYardQty().subtract(rawStorageMatDO.getOperatorQty())); + rawStorageInventoryDO.setUseQty(rawStorageInventoryDO.getUseQty().subtract(rawStorageMatDO.getOperatorQty())); + } rawStorageInventoryService.updateRawStorageInventory(rawStorageInventoryDO); } else { rawStorageInventoryDO = getRawStorageInventoryDO(rawStorageMatDO); } rawStorageMatDO.setInventBillNo(rawStorageInventoryDO.getInventBillNo()); rawStorageMatMapper.updateById(rawStorageMatDO); + //更新源表 + if ("2".equals(rawStorage.getOperatorType())) { + RawStorageMatDO sourceRawStorageMatDO = rawStorageMatMapper.selectById(rawStorageMatDO.getRelarionId()); + sourceRawStorageMatDO.setReturnQty(sourceRawStorageMatDO.getReturnQty() != null ? sourceRawStorageMatDO.getReturnQty().add(rawStorageMatDO.getOperatorQty()) : rawStorageMatDO.getOperatorQty()); + rawStorageMatMapper.updateById(sourceRawStorageMatDO); + } saveStorageLog(rawStorage, rawStorageMatDO, dpstNo, rawStorageInventoryDO); } } @@ -142,7 +145,7 @@ public class RawStorageServiceImpl implements RawStorageService { RawStorageLogDO rawStorageLogDO = new RawStorageLogDO(); // rawStorageLogDO.setStockId(); // rawStorageLogDO.setDescription(); - rawStorageLogDO.setStatus("1"); + rawStorageLogDO.setStatus("2"); rawStorageLogDO.setStoreHouseId(rawStorageMatDO.getStoreHouseId()); rawStorageLogDO.setStoreAreaId(rawStorageMatDO.getStoreAreaId()); rawStorageLogDO.setStoreHouseCd(rawStorageMatDO.getStoreHouseCd()); @@ -156,8 +159,9 @@ public class RawStorageServiceImpl implements RawStorageService { rawStorageLogDO.setUnit(rawStorageMatDO.getUnit()); rawStorageLogDO.setLotNo(rawStorageMatDO.getLotNo()); rawStorageLogDO.setOperatorQty(rawStorageMatDO.getOperatorQty()); - rawStorageLogDO.setOperatorType("1"); + rawStorageLogDO.setOperatorType(rawStorage.getOperatorType()); rawStorageLogDO.setBusinessType(rawStorage.getBusinessType()); + // rawStorageLogDO.setStorageAft(); // rawStorageLogDO.setStorageBef(); // rawStorageLogDO.setStockItemId(rawStorageMatDO.getId()); @@ -193,22 +197,25 @@ public class RawStorageServiceImpl implements RawStorageService { if (updateReqVO.getItems() != null) { // 删除旧子表数据 rawStorageMatMapper.deleteByStockId(updateReqVO.getId()); - - // 插入新子表数据 - if (!updateReqVO.getItems().isEmpty()) { - for (RawStorageMatSaveReqVO matVO : updateReqVO.getItems()) { - RawStorageMatDO mat = BeanUtils.toBean(matVO, RawStorageMatDO.class); - mat.setStockId(updateReqVO.getId()); - mat.setId(null); - rawStorageMatMapper.insert(mat); - } - } + saveMat(updateObj.getId(), updateReqVO); } if ("2".equals(updateReqVO.getStatus())) { saveStorageLog(updateObj); } } + private void saveMat(Integer id, RawStorageSaveReqVO updateReqVO) { + // 插入新子表数据 + if (!updateReqVO.getItems().isEmpty()) { + for (RawStorageMatSaveReqVO matVO : updateReqVO.getItems()) { + RawStorageMatDO mat = BeanUtils.toBean(matVO, RawStorageMatDO.class); + mat.setStockId(id); + mat.setId(null); + rawStorageMatMapper.insert(mat); + } + } + } + @Override public void deleteRawStorage(Integer id) { // 校验存在 @@ -385,7 +392,7 @@ public class RawStorageServiceImpl implements RawStorageService { private String saveRawStorage(PurReceiptDO purReceipt, String supplierNo) { RawStorageSaveReqVO saveReqVO = new RawStorageSaveReqVO(); - saveReqVO.setBillNo(getBillNo()); + saveReqVO.setBillNo(getBillNo("1")); saveReqVO.setOperatorType("1"); saveReqVO.setBusinessType("1"); saveReqVO.setRemark(""); @@ -407,8 +414,12 @@ public class RawStorageServiceImpl implements RawStorageService { // 生成订单号 // 生成入库单号 - private String getBillNo() { - String maxPurReceiptNo = rawStorageMapper.selectMaxPurReceiptNo(); - return CodeGenerateUtils.generateBillNo("RK", maxPurReceiptNo); + private String getBillNo(String operatorType) { + String prefix = "RK"; + if ("2".equals(operatorType)) { + prefix = "CKD"; + } + String maxPurReceiptNo = rawStorageMapper.selectMaxPurReceiptNo(operatorType); + return CodeGenerateUtils.generateBillNo(prefix, maxPurReceiptNo); } } diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/rawstorage/index.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/rawstorage/index.vue index f025643..778c52c 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/rawstorage/index.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/rawstorage/index.vue @@ -189,6 +189,7 @@ const queryParams = reactive({ billNo: undefined, billDate: getCurrentSimMonthRange(), status: undefined, + operatorType: "1", }) const queryFormRef = ref() // 搜索的表单 const exportLoading = ref(false) // 导出的加载中 diff --git a/mes-ui/mes-ui-admin-vue3/src/views/biz/returnstorage/ReturnStorageForm.vue b/mes-ui/mes-ui-admin-vue3/src/views/biz/returnstorage/ReturnStorageForm.vue index e49b8a5..2d261da 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/biz/returnstorage/ReturnStorageForm.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/biz/returnstorage/ReturnStorageForm.vue @@ -1,5 +1,5 @@