From 05f0b24488be6415f9a286ad3229733fb5c02d26 Mon Sep 17 00:00:00 2001 From: yejiaxing <591141169@qq.com> Date: Tue, 5 Dec 2023 15:07:34 +0800 Subject: [PATCH 01/10] =?UTF-8?q?BUG=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SupplierdeliverRequestMainController.java | 8 ++++++ .../dataobject/packageMassage/PackageDO.java | 2 +- .../mysql/packageMassage/PackageMapper.java | 2 +- .../SupplierdeliverRequestMainService.java | 9 +++++++ ...SupplierdeliverRequestMainServiceImpl.java | 25 +++++++++++++++++++ 5 files changed, 44 insertions(+), 2 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java index cd2afac8..1542ab38 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java @@ -209,4 +209,12 @@ public class SupplierdeliverRequestMainController { return success(count > 0); } + @PostMapping("/genLabel") + @Operation(summary = "生成标签") + @Parameter(name = "id", description = "编号", required = true) + public CommonResult genLabel(@RequestParam("id") String id) { + Integer count = supplierdeliverRequestMainService.genLabel(id); + return success(count > 0); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/packageMassage/PackageDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/packageMassage/PackageDO.java index 80ebbae8..f6ae080a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/packageMassage/PackageDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/packageMassage/PackageDO.java @@ -136,7 +136,7 @@ public class PackageDO{ /** * 采购计划单号 */ - private String rpNumber; + private String ppNumber; /** * 发货单号 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/packageMassage/PackageMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/packageMassage/PackageMapper.java index 6ad2ce51..d4ba53fe 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/packageMassage/PackageMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/packageMassage/PackageMapper.java @@ -66,7 +66,7 @@ public interface PackageMapper extends BaseMapperX { .eqIfPresent(PackageDO::getSupplierItemCode, reqVO.getSupplierItemCode()) .eqIfPresent(PackageDO::getPoNumber, reqVO.getPoNumber()) .eqIfPresent(PackageDO::getPoLine, reqVO.getPoLine()) - .eqIfPresent(PackageDO::getRpNumber, reqVO.getRpNumber()) + .eqIfPresent(PackageDO::getPpNumber, reqVO.getRpNumber()) .eqIfPresent(PackageDO::getAsnNumber, reqVO.getAsnNumber()) .eqIfPresent(PackageDO::getWoNumber, reqVO.getWoNumber()) .eqIfPresent(PackageDO::getWoLine, reqVO.getWoLine()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java index d3d2cf1b..09a2a67f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java @@ -126,6 +126,15 @@ public interface SupplierdeliverRequestMainService { * @return 更新数量 */ Integer rejSupplierdeliverRequestMain(Long id); + + /** + * 生成标签 + * + * @param id 采采购订单申请主ID + * @return 更新数量 + */ + Integer genLabel(String id); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java index 1fb578ad..93c33a87 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java @@ -24,6 +24,7 @@ import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; +import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO; @@ -466,4 +467,28 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq return supplierdeliverRequestMainMapper.updateById(mainDO); } + + /** + * 生成标签 + * + * @param id 采采购订单申请主ID + * @return 更新数量 + */ + @Override + @Transactional + public Integer genLabel(String id) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("number", id); + SupplierdeliverRequestMainDO mainDO = supplierdeliverRequestMainMapper.selectOne(queryWrapper); + PackageDO packageDO = new PackageDO(); + packageDO.setSupplierCode(mainDO.getSupplierCode()); + packageDO.setSupplierItemCode(null); + packageDO.setPpNumber(mainDO.getPpNumber()); + + packageDO.setAsnNumber(mainDO.getAsnNumber()); + + + return 0; + } + } From 518e767d0f19994c8e62859411fd4a2f5721ffbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Tue, 5 Dec 2023 16:22:25 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E9=80=80=E6=96=99?= =?UTF-8?q?=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/wms/enums/ErrorCodeConstants.java | 3 + .../IssueRequestMainController.java | 23 ++ .../packageMassage/PackageController.java | 7 + ...ProductionreturnRequestMainController.java | 116 +++++++- .../ProductionreturnRequestDetailBaseVO.java | 3 + ...roductionreturnRequestDetailPageReqVO.java | 3 + .../ProductionreturnRequestMainExcelVO.java | 117 ++++++--- ...roductionreturnRequestMainUpdateReqVO.java | 3 +- .../ProductionreturnRequestMainConvert.java | 10 + .../ProductionreturnJobMainMapper.java | 7 + .../ProductionreturnRequestDetailMapper.java | 7 + .../ProductionreturnRequestMainMapper.java | 5 + .../issueJob/IssueJobMainServiceImpl.java | 20 ++ .../issueRequest/IssueRequestMainService.java | 4 + .../IssueRequestMainServiceImpl.java | 25 ++ .../packageMassage/PackageService.java | 2 + .../packageMassage/PackageServiceImpl.java | 49 ++++ .../ProductionreceiptJobMainServiceImpl.java | 18 ++ .../ProductionreturnRequestDetailService.java | 2 + ...ductionreturnRequestDetailServiceImpl.java | 73 +++++- .../ProductionreturnRequestMainService.java | 14 + ...roductionreturnRequestMainServiceImpl.java | 248 +++++++++++++++++- .../RepleinshJobMainServiceImpl.java | 18 ++ .../com/win/module/wms/util/JobUtils.java | 2 + 24 files changed, 716 insertions(+), 63 deletions(-) diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index 0d1917ea..5fefd1a4 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -611,6 +611,9 @@ public interface ErrorCodeConstants { //生产退料申请子ErrorCode ErrorCode PRODUCTIONRETURN_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_097_001, "生产退料申请子不存在"); ErrorCode PRODUCTIONRETURN_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_097_002, "导入生产退料申请不能为空"); + ErrorCode PRODUCTIONRETURN_REQUEST_JOB_EXISTS = new ErrorCode(1_000_097_003, "生产退料申请存在任务单"); + ErrorCode PRODUCTIONRETURN_REQUEST_MAIN_ERROR = new ErrorCode(1_000_097_004, "生产退料申请状态错误"); + //生产退料申请主ErrorCode ErrorCode PRODUCTIONRETURN_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_098_000, "生产退料任务主不存在"); //生产退料任务子ErrorCode diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java index e1170466..0429ba47 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java @@ -7,6 +7,7 @@ import com.win.framework.excel.core.util.ConvertUtil; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert; +import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO; import com.win.module.wms.dal.dataobject.workshop.WorkshopDO; @@ -29,6 +30,7 @@ import io.swagger.v3.oas.annotations.Operation; import javax.validation.*; import javax.servlet.http.*; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.*; @@ -310,6 +312,8 @@ public class IssueRequestMainController { Map mapWorkstation = new HashMap<>(); mapWorkstation.put("value", workstationItem.getCode()); mapWorkstation.put("label", workstationItem.getName()); + mapWorkstation.put("rawLocationCode", workstationItem.getRawLocationCode()); + mapWorkstation.put("fgLocationCode", workstationItem.getFgLocationCode()); workstationCodeList.add(mapWorkstation); }); if (workstationCodeList != null && workstationCodeList.size() > 0) { @@ -318,6 +322,8 @@ public class IssueRequestMainController { Map mapworkstationNull = new HashMap<>(); mapworkstationNull.put("value", ""); mapworkstationNull.put("label", ""); + mapworkstationNull.put("rawLocationCode", ""); + mapworkstationNull.put("fgLocationCode", ""); List WorkstationListNUll = new ArrayList(); WorkstationListNUll.add(mapworkstationNull); mapProductionline.put("children", WorkstationListNUll); @@ -333,6 +339,8 @@ public class IssueRequestMainController { Map workstationMapNull = new HashMap<>(); workstationMapNull.put("value", ""); workstationMapNull.put("label", ""); + workstationMapNull.put("rawLocationCode", ""); + workstationMapNull.put("fgLocationCode", ""); workstationListNUll.add(workstationMapNull); productionlineMapNull.put("value", ""); @@ -365,4 +373,19 @@ public class IssueRequestMainController { result.setSubList(vos); return success(result); } + + /** + * PDA 获取库存推荐 + * @param itemCode + * @param qty + * @return + */ + @GetMapping("/getBalanceByBatchOffShelf") + @Operation(summary = "获取库存推荐") + @Parameter(name = "id", description = "编号", required = true) + public CommonResult> getBalanceByBatchOffShelf(@RequestParam("itemCode") String itemCode, + @RequestParam("qty") BigDecimal qty) { + List issueJobDetailDOList = issueRequestMainService.getBalanceByBatchOffShelf(itemCode, qty); + return success(issueJobDetailDOList); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/PackageController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/PackageController.java index 3c9c630e..56d2a751 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/PackageController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/PackageController.java @@ -48,6 +48,13 @@ public class PackageController { return success(packageService.createPackage(createReqVO)); } + @PostMapping("/createLabel") + @Operation(summary = "创建包装标签") + @PreAuthorize("@ss.hasPermission('wms:package:create')") + public CommonResult createPackageLabel(@Valid @RequestBody PackageCreateReqVO createReqVO) { + return success(packageService.createPackageLabel(createReqVO)); + } + @PutMapping("/update") @Operation(summary = "更新包装") @PreAuthorize("@ss.hasPermission('wms:package:update')") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestMainController.java index 7a517675..962fc344 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestMainController.java @@ -9,13 +9,18 @@ import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainExcelVO; import com.win.module.wms.controller.productionreturnRequest.vo.*; +import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.service.packageMassage.PackageService; import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestDetailService; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestMainService; @@ -103,6 +108,48 @@ public class ProductionreturnRequestMainController { return success(ProductionreturnRequestMainConvert.INSTANCE.convertPage(pageResult)); } + @GetMapping("/export-excel-senior") + @Operation(summary = "导出生产计划主 Excel") + @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:export')") + @OperateLog(type = EXPORT) + public void exportProductionreturnRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = productionreturnRequestMainService.getProductionreturnRequestMainList(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + resultList.forEach(item -> { + //后端创建个字段作为前端展示的虚拟字段 + item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname()); + item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname()); + }); + ExcelUtils.write(response, "生产退料申请.xlsx", "生产退料申请", ProductionreturnRequestMainExcelVO.class, resultList, mapDropDown); + } + + private List getExcelVo(List list, Map mapDropDown) { + String[] locationTypes = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); + mapDropDown.put(8, locationTypes); + mapDropDown.put(9, locationTypes); + String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); + mapDropDown.put(14, available); + mapDropDown.put(15, available); + mapDropDown.put(16, available); + mapDropDown.put(17, available); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(24, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(35, uom); + List resultList = new ArrayList<>(); + // 导出 + for(ProductionreturnRequestMainDO mainDO : list) { + List subList = productionreturnRequestDetailService.selectList(mainDO.getId()); + for(ProductionreturnRequestDetailDO detailDO : subList) { + ProductionreturnRequestMainExcelVO vo = ProductionreturnRequestMainConvert.INSTANCE.convert(mainDO, detailDO); + resultList.add(vo); + } + } + return resultList; + } + @GetMapping("/export-excel") @Operation(summary = "导出生产退料申请主 Excel") @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:export')") @@ -110,14 +157,15 @@ public class ProductionreturnRequestMainController { public void exportProductionreturnRequestMainExcel(@Valid ProductionreturnRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = productionreturnRequestMainService.getProductionreturnRequestMainList(exportReqVO); - // 导出 Excel - List datas = ProductionreturnRequestMainConvert.INSTANCE.convertList02(list); - for(ProductionreturnRequestMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + resultList.forEach(item -> { //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } - ExcelUtils.write(response, "生产退料申请主.xls", "数据", ProductionreturnRequestMainExcelVO.class, datas); + item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname()); + item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname()); + }); + ExcelUtils.write(response, "生产退料申请.xls", "生产退料申请", ProductionreturnRequestMainExcelVO.class, resultList); } @PostMapping("/senior") @@ -215,4 +263,58 @@ public class ProductionreturnRequestMainController { } return success(returnMap); } + + @PutMapping("/close") + @Operation(summary = "关闭") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:close')") + public CommonResult closeProductionreturnRequestMain(@RequestParam("id") Long id) { + Integer count = productionreturnRequestMainService.closeProductionreturnRequestMain(id); + return success(count > 0); + } + + @PutMapping("/reAdd") + @Operation(summary = "重新添加") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:reAdd')") + public CommonResult reAddProductionreturnRequestMain(@RequestParam("id") Long id) { + Integer count = productionreturnRequestMainService.reAddProductionreturnRequestMain(id); + return success(count > 0); + } + + @PutMapping("/submit") + @Operation(summary = "提交审批") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:submit')") + public CommonResult submitProductionreturnRequestMain(@RequestParam("id") Long id) { + Integer count = productionreturnRequestMainService.submitProductionreturnRequestMain(id); + return success(count > 0); + } + + @PutMapping("/refused") + @Operation(summary = "驳回") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:refused')") + public CommonResult refusedProductionreturnRequestMain(@RequestParam("id") Long id) { + Integer count = productionreturnRequestMainService.refusedProductionreturnRequestMain(id); + return success(count > 0); + } + + @PutMapping("/agree") + @Operation(summary = "审批通过") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:agree')") + public CommonResult agreeProductionreturnRequestMain(@RequestParam("id") Long id) { + Integer count = productionreturnRequestMainService.agreeProductionreturnRequestMain(id); + return success(count > 0); + } + + @PutMapping("/handle") + @Operation(summary = "处理") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:handle')") + public CommonResult handleProductionreturnRequestMain(@RequestParam("id") Long id) { + Integer count = productionreturnRequestMainService.handleProductionreturnRequestMain(id); + return success(count > 0); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestDetailBaseVO.java index 8b6539ab..33f0d2d7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestDetailBaseVO.java @@ -89,4 +89,7 @@ public class ProductionreturnRequestDetailBaseVO { @Schema(description = "到货主代码") private String toOwnerCode; + @Schema(description = "主表ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestDetailPageReqVO.java index 78b63860..1e7a1b04 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestDetailPageReqVO.java @@ -85,4 +85,7 @@ public class ProductionreturnRequestDetailPageReqVO extends PageParam { @Schema(description = "到货主代码") private String toOwnerCode; + @Schema(description = "主表ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainExcelVO.java index 0543308d..187dffcb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainExcelVO.java @@ -1,5 +1,8 @@ package com.win.module.wms.controller.productionreturnRequest.vo; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.job.JobStatusConverter; +import com.win.module.wms.enums.request.RequestStatusConverter; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -24,15 +27,6 @@ public class ProductionreturnRequestMainExcelVO { @ExcelProperty("车间代码") private String workshopCode; - @ExcelProperty("从仓库代码") - private String fromWarehouseCode; - - @ExcelProperty("从库位类型范围") - private String fromLocationTypes; - - @ExcelProperty("从库区代码范围") - private String fromAreaCodes; - @ExcelProperty("单据号") private String number; @@ -42,12 +36,6 @@ public class ProductionreturnRequestMainExcelVO { @ExcelProperty("备注") private String remark; - @ExcelProperty("创建时间") - private LocalDateTime createTime; - - @ExcelProperty("创建者用户名") - private String creator; - @ExcelProperty("申请时间") private LocalDateTime requestTime; @@ -57,36 +45,101 @@ public class ProductionreturnRequestMainExcelVO { @ExcelProperty("部门") private String departmentCode; - @ExcelProperty(value = "状态", converter = DictConvert.class) - @DictFormat("request_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @ExcelProperty(value = "状态", converter = RequestStatusConverter.class) private String status; - @ExcelProperty("最后更新时间") - private LocalDateTime updateTime; - - @ExcelProperty("最后更新者用户名") - private String updater; - - @ExcelProperty("到仓库代码") - private String toWarehouseCode; - + @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) + @DictFormat(DictTypeConstants.LOCATION_TYPE) + private String fromLocationTypes; @ExcelProperty(value = "到库位类型范围", converter = DictConvert.class) - @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @DictFormat(DictTypeConstants.LOCATION_TYPE) private String toLocationTypes; - + @ExcelProperty("从库区代码范围") + private String fromAreaCodes; @ExcelProperty("到库区代码范围") private String toAreaCodes; + @ExcelProperty("从仓库代码") + private String fromWarehouseCode; + @ExcelProperty("到仓库代码") + private String toWarehouseCode; - @ExcelProperty("自动提交") + @ExcelProperty(value = "自动提交", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) private String autoCommit; - @ExcelProperty("自动通过") + @ExcelProperty(value = "自动通过", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) private String autoAgree; - @ExcelProperty("自动执行") + @ExcelProperty(value = "自动执行", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) private String autoExecute; - @ExcelProperty("直接生成记录") + @ExcelProperty(value = "直接生成记录", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRUE_FALSE) private String directCreateRecord; + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("创建者用户名") + private String creator; + + @ExcelProperty("最后更新时间") + private LocalDateTime updateTime; + + @ExcelProperty("最后更新者用户名") + private String updater; + + // 子表数据 + @ExcelProperty("生产线代码") + private String productionLineCode; + + @ExcelProperty("工位代码") + private String workStationCode; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String inventoryStatus; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private String qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; + + @ExcelProperty("从货主代码") + private String fromOwnerCode; + + @ExcelProperty("到货主代码") + private String toOwnerCode; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainUpdateReqVO.java index c5957615..4ff8eaac 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainUpdateReqVO.java @@ -8,5 +8,6 @@ import lombok.*; @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class ProductionreturnRequestMainUpdateReqVO extends ProductionreturnRequestMainBaseVO { - + @Schema(description = "是否合格退料") + private Boolean isOK; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestMainConvert.java index ff6b47db..ef36e7a9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestMainConvert.java @@ -35,4 +35,14 @@ public interface ProductionreturnRequestMainConvert { @Mapping(source = "createReqVO.number", target = "number"), }) ProductionreturnRequestImportErrorVO convert(ProductionreturnRequestMainCreateReqVO createReqVO, ProductionreturnRequestDetailDO detailDO); + + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + }) + ProductionreturnRequestMainExcelVO convert(ProductionreturnRequestMainDO mainDO, ProductionreturnRequestDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnJob/ProductionreturnJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnJob/ProductionreturnJobMainMapper.java index 2c6e26ff..7f378479 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnJob/ProductionreturnJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnJob/ProductionreturnJobMainMapper.java @@ -7,8 +7,10 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.productionreturnJob.vo.ProductionreturnJobMainExportReqVO; import com.win.module.wms.controller.productionreturnJob.vo.ProductionreturnJobMainPageReqVO; +import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO; import com.win.module.wms.dal.dataobject.productionreceiptJob.ProductionreceiptJobMainDO; import com.win.module.wms.dal.dataobject.productionreturnJob.ProductionreturnJobMainDO; +import com.win.module.wms.enums.order.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; import java.util.Collection; @@ -122,4 +124,9 @@ public interface ProductionreturnJobMainMapper extends BaseMapperX() + .eq(ProductionreturnJobMainDO::getRequestNumber, requestNumber) + .ne(ProductionreturnJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestDetailMapper.java index d4fba8f9..542f141f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestDetailMapper.java @@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailExportReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailPageReqVO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -22,6 +23,7 @@ public interface ProductionreturnRequestDetailMapper extends BaseMapperX selectPage(ProductionreturnRequestDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ProductionreturnRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(ProductionreturnRequestDetailDO::getProductionLineCode, reqVO.getProductionLineCode()) .eqIfPresent(ProductionreturnRequestDetailDO::getWorkStationCode, reqVO.getWorkStationCode()) .eqIfPresent(ProductionreturnRequestDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) @@ -51,6 +53,11 @@ public interface ProductionreturnRequestDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(ProductionreturnRequestDetailDO::getMasterId, masterId)); + } + default List selectList(ProductionreturnRequestDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(ProductionreturnRequestDetailDO::getProductionLineCode, reqVO.getProductionLineCode()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestMainMapper.java index e76ef52a..c063b57e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestMainMapper.java @@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainExportReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainPageReqVO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; import org.apache.ibatis.annotations.Mapper; @@ -79,4 +80,8 @@ public interface ProductionreturnRequestMainMapper extends BaseMapperX selectSeniorList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java index c65b5f47..5d30b7df 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java @@ -308,6 +308,7 @@ public class IssueJobMainServiceImpl implements IssueJobMainService { issueRecordDetailDO.setFromAreaCode(locationDOFrom.getAreaCode()); issueRecordDetailDOList.add(issueRecordDetailDO); //添加库存事务list + // 入动作 TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); BeanUtils.copyProperties(issueRecordDetailDO, transactionCreateReqVO); TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); @@ -326,6 +327,25 @@ public class IssueJobMainServiceImpl implements IssueJobMainService { // 如果使用在途库 库存事务 库位赋值为 在途库 transactionCreateReqVO.setLocationCode(issueRecordMainDO.getUseOnTheWayLocation().equals("TRUE")?issueRecordDetailDO.getOnTheWayLocationCode():recordLstItem.get("toLocationCode").toString()); transactionCreateReqVOList.add(transactionCreateReqVO); + // 出动作 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(issueRecordDetailDO, transactionCreateReqVOOut); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setBusinessType(issueRecordMainDO.getBusinessType()); + transactionCreateReqVOOut.setOwnerCode(issueRecordDetailDO.getFromOwnerCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOOut.setPackingNumber(issueRecordDetailDO.getToPackingNumber()); + transactionCreateReqVOOut.setBatch(issueRecordDetailDO.getToBatch()); + transactionCreateReqVOOut.setContainerNumber(issueRecordDetailDO.getToContainerNumber()); + transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); + transactionCreateReqVOOut.setWarehouseCode(issueRecordMainDO.getToWarehouseCode()); + // 如果使用在途库 库存事务 库位赋值为 在途库 + transactionCreateReqVOOut.setLocationCode(issueRecordMainDO.getUseOnTheWayLocation().equals("TRUE")?issueRecordDetailDO.getOnTheWayLocationCode():recordLstItem.get("toLocationCode").toString()); + transactionCreateReqVOList.add(transactionCreateReqVOOut); }); } }); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java index 08733817..87bfbf5b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java @@ -1,10 +1,12 @@ package com.win.module.wms.service.issueRequest; +import java.math.BigDecimal; import java.util.*; import javax.validation.*; import com.win.framework.common.pojo.CustomConditions; import com.win.module.wms.controller.issueRequest.vo.*; +import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.dal.dataobject.production.ProductionMainDO; @@ -99,4 +101,6 @@ public interface IssueRequestMainService { Integer agreeIssueRequestMain(Long id); Integer handleIssueRequestMain(Long id); + + List getBalanceByBatchOffShelf(String itemCode, BigDecimal qty); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java index 04dab20a..2e5d910e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java @@ -613,6 +613,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { return issueRequestMainMapper.updateById(mainDO); } + /** * 创建任务 OR 创建记录 * @param mainDO @@ -746,4 +747,28 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { expectoutService.createExpectout(expectoutCreateReqVOList); trendsApi.createTrends(issueJobMainDO.getId(), "issueJob", "发料申请生成发料任务", TrendsTypeEnum.CREATE); } + + /** + * PDA 获取库存推荐 + * @param itemCode + * @param qty + * @return + */ + @Override + public List getBalanceByBatchOffShelf(String itemCode, BigDecimal qty) { + List issueJobDetailDOList = new ArrayList<>(); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueJob"); + // 根据批次策略/下架策略 返回 库存余额DO + List balanceDOListJob = jobUtils.getBalanceByBatchOffShelf(itemCode,"OK",null,qty,businesstypeDO.getOutLocationTypes()); + // 根据 查询出所需数据 解析成 任务子表数据 + balanceDOListJob.forEach(balanceDOItem -> { + IssueJobDetailDO issueJobDetailDO = new IssueJobDetailDO(); + issueJobDetailDO.setBatch(balanceDOItem.getBatch()); + issueJobDetailDO.setFromLocationCode(balanceDOItem.getLocationCode()); + issueJobDetailDO.setStdPackQty(itempackagingService.selectItemPackagingExist(itemCode).getStdPackQty()); + issueJobDetailDO.setStdPackUnit(itempackagingService.selectItemPackagingExist(itemCode).getStdPackUnit()); + issueJobDetailDOList.add(issueJobDetailDO); + }); + return issueJobDetailDOList; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java index 3d63d290..e068c735 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java @@ -87,4 +87,6 @@ public interface PackageService { * @return 分页列表 */ PageResult getPackageSenior(CustomConditions conditions); + + PackageDO createPackageLabel(PackageCreateReqVO createReqVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java index dc506a1d..5d877d42 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java @@ -1,20 +1,32 @@ package com.win.module.wms.service.packageMassage; +import cn.hutool.core.exceptions.UtilException; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.packageMassage.vo.PackageCreateReqVO; import com.win.module.wms.controller.packageMassage.vo.PackageExportReqVO; import com.win.module.wms.controller.packageMassage.vo.PackagePageReqVO; import com.win.module.wms.controller.packageMassage.vo.PackageUpdateReqVO; import com.win.module.wms.convert.packageMassage.PackageConvert; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; +import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import com.win.module.wms.dal.mysql.packageMassage.PackageMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.itempackaging.ItempackagingService; +import com.win.module.wms.service.supplieritem.SupplieritemService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -30,6 +42,14 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PACKAGE_NOT_EXISTS; @Validated public class PackageServiceImpl implements PackageService { + @Resource + private ItempackagingService itempackagingService; + @Resource + private ItembasicService itembasicService; + @Resource + private SupplieritemService supplieritemService; + @Resource + private SerialNumberApi serialNumberApi; @Resource private PackageMapper packageMapper; @@ -102,4 +122,33 @@ public class PackageServiceImpl implements PackageService { public PageResult getPackageSenior(CustomConditions conditions) { return packageMapper.selectSenior(conditions); } + + @Override + @Transactional + public PackageDO createPackageLabel(PackageCreateReqVO createReqVO) { + // 插入 + PackageDO packageDo = PackageConvert.INSTANCE.convert(createReqVO); + // 获取标包数量 + ItempackagingDO itemPackagingDO = itempackagingService.selectItemPackagingExist(packageDo.getItemCode()); + // 赋值 自动生成 包装号 + String number = serialNumberApi.generateCode(RuleCodeEnum.PACKING_NUMBER.getCode()); + packageDo.setNumber(number); + packageDo.setConvertRate(new BigDecimal(1)); + packageDo.setStdPackQty(itemPackagingDO.getStdPackQty()); + packageDo.setStdPackUnit(itemPackagingDO.getStdPackUnit()); + // 采购标签 + if (packageDo.getSupplierCode() != null && !packageDo.getSupplierCode().isEmpty()) { +// TODO: 赋值 仓库代码 月台代码 库位代码 采购订单号 采购订单行 采购计划单号 发货单号 + // 赋值 供应商物品代码 + SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(packageDo.getSupplierCode(),packageDo.getItemCode()); + packageDo.setSupplierItemCode(supplieritemDO.getSupplierItemCode()); + } + // 制造件标签 + if (packageDo.getProductionLineCode() != null && !packageDo.getProductionLineCode().isEmpty()) { +// TODO: 赋值 生产订单号 生产订单行 班组代码 班次代码 + } + packageMapper.insert(packageDo); + // 返回 + return packageDo; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java index 0e03d316..b711268d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreceiptJob/ProductionreceiptJobMainServiceImpl.java @@ -318,6 +318,7 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob productionreceiptRecordDetailDO.setUpdateTime(null); productionreceiptRecordDetailDOList.add(productionreceiptRecordDetailDO); //添加库存事务list + // 入动作 TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); BeanUtils.copyProperties(productionreceiptRecordDetailDO, transactionCreateReqVO); TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); @@ -334,6 +335,23 @@ public class ProductionreceiptJobMainServiceImpl implements ProductionreceiptJob transactionCreateReqVO.setAmount(BigDecimal.ZERO); transactionCreateReqVO.setLocationCode(productionreceiptRecordDetailDO.getToLocationCode()); transactionCreateReqVOList.add(transactionCreateReqVO); + // 出动作 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(productionreceiptRecordDetailDO, transactionCreateReqVOOut); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setBusinessType(productionreceiptRecordMainDO.getBusinessType()); + transactionCreateReqVOOut.setOwnerCode(productionreceiptRecordDetailDO.getFromOwnerCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOOut.setPackingNumber(productionreceiptRecordDetailDO.getToPackingNumber()); + transactionCreateReqVOOut.setBatch(productionreceiptRecordDetailDO.getToBatch()); + transactionCreateReqVOOut.setContainerNumber(productionreceiptRecordDetailDO.getToContainerNumber()); + transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); + transactionCreateReqVOOut.setLocationCode(productionreceiptRecordDetailDO.getToLocationCode()); + transactionCreateReqVOList.add(transactionCreateReqVOOut); } }); }); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java index 78ac1c92..403c10fa 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java @@ -78,4 +78,6 @@ public interface ProductionreturnRequestDetailService { * @return 分页列表 */ PageResult getProductionreturnRequestDetailSenior(CustomConditions conditions); + + List selectList(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java index 01b568e9..d6b4a5c6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java @@ -1,5 +1,7 @@ package com.win.module.wms.service.productionreturnRequest; +import cn.hutool.core.exceptions.UtilException; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.infra.api.trends.TrendsApi; @@ -8,21 +10,28 @@ import com.win.module.wms.controller.productionreturnRequest.vo.Productionreturn import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailExportReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailPageReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailUpdateReqVO; +import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO; +import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestDetailMapper; import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.service.businesstype.BusinesstypeService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.productionline.ProductionlineService; import com.win.module.wms.service.productionlineitem.ProductionlineitemService; import com.win.module.wms.service.workstation.WorkstationService; import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -43,6 +52,8 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTIONRETURN_REQUE @Validated public class ProductionreturnRequestDetailServiceImpl implements ProductionreturnRequestDetailService { + @Resource + private BusinesstypeService businesstypeService; @Resource private ProductionreturnRequestDetailMapper productionreturnRequestDetailMapper; @Resource @@ -60,25 +71,63 @@ public class ProductionreturnRequestDetailServiceImpl implements Productionretur @Resource private TrendsApi trendsApi; @Override + @Transactional public Long createProductionreturnRequestDetail(ProductionreturnRequestDetailCreateReqVO createReqVO) { // 插入 ProductionreturnRequestDetailDO productionreturnRequestDetail = ProductionreturnRequestDetailConvert.INSTANCE.convert(createReqVO); + validatorDetail(productionreturnRequestDetail); productionreturnRequestDetailMapper.insert(productionreturnRequestDetail); // 返回 return productionreturnRequestDetail.getId(); } @Override + @Transactional public void updateProductionreturnRequestDetail(ProductionreturnRequestDetailUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { // 校验存在 validateProductionreturnRequestDetailExists(updateReqVO.getId()); // 更新 - ProductionreturnRequestMainDO productionreturnRequestMainToNumber = productionreturnRequestMainService.getProductionreturnRequestMainToNumber(updateReqVO.getNumber()); ProductionreturnRequestDetailDO updateObj = ProductionreturnRequestDetailConvert.INSTANCE.convert(updateReqVO); - validatorDetailMethod(updateObj,productionreturnRequestMainToNumber); + validatorDetail(updateObj); productionreturnRequestDetailMapper.updateById(updateObj); } + //子表校验 + private ProductionreturnRequestDetailDO validatorDetail(ProductionreturnRequestDetailDO productionreturnRequestDetailDO) { + // 主表信息 + ProductionreturnRequestMainDO productionreturnRequestMainDO = productionreturnRequestMainService.getProductionreturnRequestMain(productionreturnRequestDetailDO.getMasterId()); + // 业务信息 + BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist(productionreturnRequestMainDO.getBusinessType()); + // 基础信息 + ItembasicDO itembasicDO = itembasicService.selectItembasic(productionreturnRequestDetailDO.getItemCode()); + // 基础信息赋值 + productionreturnRequestDetailDO.setItemName(itembasicDO.getName()); + productionreturnRequestDetailDO.setItemDesc1(itembasicDO.getDesc1()); + productionreturnRequestDetailDO.setItemDesc2(itembasicDO.getDesc2()); + productionreturnRequestDetailDO.setProjectCode(itembasicDO.getProject()); + // 单位校验 + ifUomSuccess(itembasicDO.getUom(), productionreturnRequestDetailDO.getUom()); + // 校验 子表数据 物品类型要一致性(创建标签时 前端好判断 否则前端无法实现) + String itemCodetype = ""; + // 查询其他子表数据物品对应类型 + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("masterId", productionreturnRequestDetailDO.getMasterId()); + List productionreturnRequestDetailDOOrther = productionreturnRequestDetailMapper.selectList(queryWrapper); + if (productionreturnRequestDetailDOOrther != null && productionreturnRequestDetailDOOrther.size() > 0) { + itemCodetype = itembasicService.selectItembasic(productionreturnRequestDetailDOOrther.get(0).getItemCode()).getType(); + } + if (!itemCodetype.equals("") && !itemCodetype.equals(itembasicDO.getType())) { + throw new UtilException("物品代码:" + productionreturnRequestDetailDO.getItemCode() + " 物品类型不一致!"); + } + // 校验 业务类型 + jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); + // 检验 生产线 + productionlineService.productionLineCodeExist(productionreturnRequestDetailDO.getProductionLineCode()); + // 检验 工位 + workstationService.selectWorkstationExist(productionreturnRequestDetailDO.getWorkStationCode(), productionreturnRequestMainDO.getWorkshopCode(), productionreturnRequestDetailDO.getProductionLineCode()); + return productionreturnRequestDetailDO; + } + @Override public void deleteProductionreturnRequestDetail(Long id) { // 校验存在 @@ -118,6 +167,11 @@ public class ProductionreturnRequestDetailServiceImpl implements Productionretur return productionreturnRequestDetailMapper.selectSenior(conditions); } + @Override + public List selectList(Long masterId) { + return productionreturnRequestDetailMapper.selectList(masterId); + } + //校验子表公共方法(适用于新增/修改) private void validatorDetailMethod(ProductionreturnRequestDetailDO detailDo, ProductionreturnRequestMainDO mainDo) { ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); @@ -129,13 +183,14 @@ public class ProductionreturnRequestDetailServiceImpl implements Productionretur ProductionlineDO productionlineDO = validatorProductionline(detailDo.getProductionLineCode()); detailDo.setFromLocationCode(productionlineDO.getRawLocationCode()); this.validatorProductionlineitem(detailDo.getProductionLineCode(), detailDo.getItemCode()); - WorkstationDO workstationDO = validatorWorkStation(mainDo.getWorkshopCode(), detailDo.getProductionLineCode(), detailDo.getWorkStationCode()); - if(workstationDO != null){ - detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); - } - ArrayList inventoryStatus = new ArrayList<>(); - inventoryStatus.set(0,detailDo.getInventoryStatus()); - validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus); + validatorWorkStation(mainDo.getWorkshopCode(), detailDo.getProductionLineCode(), detailDo.getWorkStationCode()); +// if(workstationDO != null){ +// detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); +// } + // TODO:管理精度校验, 暂时注释 +// ArrayList inventoryStatus = new ArrayList<>(); +// inventoryStatus.set(0,detailDo.getInventoryStatus()); +// validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus); } private ItembasicDO validatorItembasic(String itemCode){ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainService.java index 7ae58b31..ee037ce5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainService.java @@ -82,4 +82,18 @@ public interface ProductionreturnRequestMainService { PageResult getProductionreturnRequestMainSenior(CustomConditions conditions); List importProductionreturnRequestList(List createReqVOList, Integer mode, Boolean updatePart, Boolean isOK); + + Integer closeProductionreturnRequestMain(Long id); + + Integer reAddProductionreturnRequestMain(Long id); + + Integer submitProductionreturnRequestMain(Long id); + + Integer refusedProductionreturnRequestMain(Long id); + + Integer agreeProductionreturnRequestMain(Long id); + + Integer handleProductionreturnRequestMain(Long id); + + List getProductionreturnRequestMainList(CustomConditions conditions); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java index 857c4ca3..87c702f9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java @@ -1,6 +1,8 @@ package com.win.module.wms.service.productionreturnRequest; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.exceptions.UtilException; +import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.framework.common.util.validation.ValidationUtils; @@ -15,7 +17,11 @@ import com.win.module.wms.convert.productionreturnRequest.ProductionreturnReques import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; +import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO; import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; @@ -25,24 +31,29 @@ import com.win.module.wms.dal.dataobject.productionreturnRequest.Productionretur import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.workshop.WorkshopDO; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; +import com.win.module.wms.dal.mysql.productionreturnJob.ProductionreturnJobMainMapper; import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestDetailMapper; import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestMainMapper; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.businesstype.BusinesstypeService; import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.productionline.ProductionlineService; import com.win.module.wms.service.productionlineitem.ProductionlineitemService; import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.workshop.WorkshopService; import com.win.module.wms.service.workstation.WorkstationService; import com.win.module.wms.util.JobUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import javax.validation.Validator; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collection; @@ -60,6 +71,10 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class ProductionreturnRequestMainServiceImpl implements ProductionreturnRequestMainService { + @Resource + private ItempackagingService itempackagingService; + @Resource + private ProductionreturnJobMainMapper productionreturnJobMainMapper; @Resource private BusinesstypeService businesstypeService; @Resource @@ -86,6 +101,8 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR private SerialNumberApi serialNumberApi; @Resource private TrendsApi trendsApi; + + private String itemCodetype; @Override @Transactional public Long createProductionreturnRequestMain(ProductionreturnRequestMainCreateReqVO createReqVO) { @@ -102,7 +119,7 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR if(RequestStatusEnum.HANDLING.getCode().equals(productionreturnRequestMainDO.getStatus())) { } - trendsApi.createTrends(productionreturnRequestMainDO.getId(), "ProductionreturnRequest", "增加了合格退料申请", TrendsTypeEnum.CREATE); + trendsApi.createTrends(productionreturnRequestMainDO.getId(), "ProductionreturnRequest", "增加了生产退料申请", TrendsTypeEnum.CREATE); // 返回 return createReqVO.getId(); } @@ -112,8 +129,14 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR public void updateProductionreturnRequestMain(ProductionreturnRequestMainUpdateReqVO updateReqVO) { // 校验存在 validateProductionreturnRequestMainExists(updateReqVO.getId()); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ReturnToStoreRequest"); - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); + BusinesstypeDO businesstypeDO = null; + // 判断是否合格退料 + if (updateReqVO.getIsOK()) { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ReturnToStoreRequest"); + } else { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ReturnToHOldRequest"); + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MaterialReturnRequest"); ProductionreturnRequestMainDO productionreturnRequestMainDO = validatorMainMethod(updateReqVO, businesstypeDO, requestsettingDO); if(RequestStatusEnum.HANDLING.getCode().equals(productionreturnRequestMainDO.getStatus())) { @@ -133,10 +156,12 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR productionreturnRequestMainMapper.deleteById(id); } - private void validateProductionreturnRequestMainExists(Long id) { - if (productionreturnRequestMainMapper.selectById(id) == null) { + private ProductionreturnRequestMainDO validateProductionreturnRequestMainExists(Long id) { + ProductionreturnRequestMainDO productionreturnRequestMainDO = productionreturnRequestMainMapper.selectById(id); + if ( productionreturnRequestMainDO == null) { throw exception(PRODUCTIONRETURN_REQUEST_MAIN_NOT_EXISTS); } + return productionreturnRequestMainDO; } @Override @@ -219,18 +244,52 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR //子表校验 List subList = createReqVO.getSubList(); List subDOList = ProductionreturnRequestDetailConvert.INSTANCE.convertList03(subList); + // 子表 物品类型 + itemCodetype = ""; for (ProductionreturnRequestDetailDO detailDO : subDOList) { validatorDetailMethod(detailDO,mainDo); } String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCTION_RETURN_REQUEST.getCode()); mainDo.setNumber(number); - mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "审批中")); productionreturnRequestMainMapper.insert(mainDo); + // 拆解后 子表集合 + List subDOListPack = new ArrayList<>(); for (ProductionreturnRequestDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDo.getId()); detailDO.setNumber(mainDo.getNumber()); + // 获取标包信息 + ItempackagingDO itemPackagingDO = itempackagingService.selectItemPackagingExist(detailDO.getItemCode()); + // 获取标包数量 + BigDecimal itemPackagingDOQty = itemPackagingDO.getStdPackQty(); + // 库存余额输入数量 + BigDecimal detailDOQty = detailDO.getQty(); + // 判断 库存余额输入的数量 大于 标包数 进行拆分 + if (detailDO.getQty().compareTo(itemPackagingDO.getStdPackQty()) == 1 ) { + // 库存余额 除以 标包 保留0位 具体子表 例如:保留1位 1.60-1.6 1.61-1.7 1.66-1.7 -1.62--1.7 + // 拆分数据总条数 bdCount + BigDecimal bdCount = detailDOQty.divide(itemPackagingDOQty,0, BigDecimal.ROUND_UP); + int forInt = bdCount.intValue(); + // 最后一条数据 插入数量 residueQty = 库存余额数 - (拆分数据总条数-1)*标包数 + BigDecimal residueQty = detailDOQty.subtract(itemPackagingDOQty.multiply(bdCount.subtract(new BigDecimal(1)))); + for(int i = 0; i < forInt; i++) { + ProductionreturnRequestDetailDO detailDOPack = new ProductionreturnRequestDetailDO(); + BeanUtils.copyProperties(detailDO, detailDOPack); + // 最后一条数据 插入数量 + if (i == (forInt-1) ) { + detailDOPack.setQty(residueQty); + } else { + + detailDOPack.setQty(itemPackagingDO.getStdPackQty()); + } + subDOListPack.add(detailDOPack); + } + } else { + // 判断 库存余额输入的数量 小于等于 标包数 + subDOListPack.add(detailDO); + } } - productionreturnRequestDetailMapper.insertBatch(subDOList); + productionreturnRequestDetailMapper.insertBatch(subDOListPack); return mainDo; } @@ -254,16 +313,24 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR detailDo.setItemName(itembasicDO.getName()); detailDo.setProjectCode(itembasicDO.getProject()); this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); - validatorProductionline(detailDo.getProductionLineCode()); - ProductionlineitemDO productionlineitemDO = validatorProductionlineitem(detailDo.getProductionLineCode(), detailDo.getItemCode()); - detailDo.setFromLocationCode(productionlineitemDO.getRawLocationCode()); - WorkstationDO workstationDO = validatorWorkStation(mainDo.getWorkshopCode(), detailDo.getProductionLineCode(), detailDo.getWorkStationCode()); - if(workstationDO != null){ - detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); + // 校验 子表数据 物品类型要一致性(创建标签时 前端好判断 否则前端无法实现) + if (itemCodetype.equals("")) { + itemCodetype = itembasicDO.getType(); } + if (!itemCodetype.equals(itembasicDO.getType())) { + throw new UtilException("物品代码:" + detailDo.getItemCode() + " 物品类型不一致!"); + } + validatorProductionline(detailDo.getProductionLineCode()); +// ProductionlineitemDO productionlineitemDO = validatorProductionlineitem(detailDo.getProductionLineCode(), detailDo.getItemCode()); +// detailDo.setFromLocationCode(productionlineitemDO.getRawLocationCode()); + validatorWorkStation(mainDo.getWorkshopCode(), detailDo.getProductionLineCode(), detailDo.getWorkStationCode()); +// if(workstationDO != null){ +// detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); +// } List inventoryStatus = new ArrayList<>(); inventoryStatus.add(detailDo.getInventoryStatus()); - validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus); + // TODO:管理精度校验, 暂时注释 +// validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus); } /** @@ -393,4 +460,157 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR private void validatorManagementAccuracy(String itemCode,String packingNumber,String batch,String locationCode,List inventoryStatus){ jobUtils.selectlocationReturnManagementAccuracy(itemCode,packingNumber,batch,locationCode,inventoryStatus); } + + @Override + @Transactional + public Integer closeProductionreturnRequestMain(Long id) { + ProductionreturnRequestMainDO mainDO = validateProductionreturnRequestMainExists(id); + // 校验存在存在下级单据 + Long count = productionreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(PRODUCTIONRETURN_REQUEST_JOB_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.close(); + if(!flag) { + throw new ServiceException(PRODUCTIONRETURN_REQUEST_MAIN_ERROR); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //增加操作记录 + trendsApi.createTrends(id, "productionreturnRequest", "关闭了生产收料申请", TrendsTypeEnum.UPDATE); + return productionreturnRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer reAddProductionreturnRequestMain(Long id) { + ProductionreturnRequestMainDO mainDO = validateProductionreturnRequestMainExists(id); + // 校验存在存在下级单据 + Long count = productionreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(PRODUCTIONRETURN_REQUEST_JOB_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.reAdd(); + if(!flag) { + throw new ServiceException(PRODUCTIONRETURN_REQUEST_MAIN_ERROR); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "issueRequest", "打开了生产收料申请", TrendsTypeEnum.UPDATE); + return productionreturnRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer submitProductionreturnRequestMain(Long id) { + ProductionreturnRequestMainDO mainDO = validateProductionreturnRequestMainExists(id); + // 校验存在存在下级单据 + Long count = productionreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(PRODUCTIONRETURN_REQUEST_JOB_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(PRODUCTIONRETURN_REQUEST_MAIN_ERROR); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + // 审批通过 生成标签 + this.generateLabel(mainDO, productionreturnRequestDetailMapper.selectList(mainDO.getId())); + this.generateJob(mainDO, productionreturnRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, "issueRequest", "提交了生产收料申请", TrendsTypeEnum.UPDATE); + return productionreturnRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer refusedProductionreturnRequestMain(Long id) { + ProductionreturnRequestMainDO mainDO = validateProductionreturnRequestMainExists(id); + // 校验存在存在下级单据 + Long count = productionreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(PRODUCTIONRETURN_REQUEST_JOB_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.refused(); + if(!flag) { + throw new ServiceException(PRODUCTIONRETURN_REQUEST_MAIN_ERROR); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + trendsApi.createTrends(id, "issueRequest", "驳回了生产收料申请", TrendsTypeEnum.UPDATE); + return productionreturnRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer agreeProductionreturnRequestMain(Long id) { + ProductionreturnRequestMainDO mainDO = validateProductionreturnRequestMainExists(id); + // 校验存在存在下级单据 + Long count = productionreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(PRODUCTIONRETURN_REQUEST_JOB_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.agree(mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(PRODUCTIONRETURN_REQUEST_MAIN_ERROR); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + // 审批通过 生成标签 + this.generateLabel(mainDO, productionreturnRequestDetailMapper.selectList(mainDO.getId())); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, productionreturnRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, "issueRequest", "审批通过了生产收料申请", TrendsTypeEnum.UPDATE); + return productionreturnRequestMainMapper.updateById(mainDO); + } + + @Override + @Transactional + public Integer handleProductionreturnRequestMain(Long id) { + ProductionreturnRequestMainDO mainDO = validateProductionreturnRequestMainExists(id); + // 校验存在存在下级单据 + Long count = productionreturnJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(PRODUCTIONRETURN_REQUEST_JOB_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.handle(); + if(!flag) { + throw new ServiceException(ISSUE_REQUEST_MAIN_CANNOT_HANDLE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用执行方法 + this.generateJob(mainDO, productionreturnRequestDetailMapper.selectList(mainDO.getId())); + trendsApi.createTrends(id, "issueRequest", "执行了发料申请", TrendsTypeEnum.UPDATE); + return productionreturnRequestMainMapper.updateById(mainDO); + } + + /** + * 创建标签 + * @param mainDO + * @param detailDO + */ + private void generateLabel (ProductionreturnRequestMainDO mainDO, List detailDO) { +// 查询 mainDO.packingNumber 在包装表中,是否存在,如果存在不创建标签,如果不存在,创建 +// PackageDO packageDO = + } + + /** + * 创建任务 OR 创建记录 + * @param mainDO + * @param detailDO + */ + private void generateJob (ProductionreturnRequestMainDO mainDO, List detailDO) { + + } + + @Override + public List getProductionreturnRequestMainList(CustomConditions conditions) { + return productionreturnRequestMainMapper.selectSeniorList(conditions); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java index 80fa9123..0aa2f68b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshJob/RepleinshJobMainServiceImpl.java @@ -298,6 +298,7 @@ public class RepleinshJobMainServiceImpl implements RepleinshJobMainService { repleinshRecordDetailDO.setFromAreaCode(locationDOFrom.getAreaCode()); repleinshRecordDetailDOList.add(repleinshRecordDetailDO); //添加库存事务list + // 入动作 TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); BeanUtils.copyProperties(repleinshRecordDetailDO, transactionCreateReqVO); TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); @@ -314,6 +315,23 @@ public class RepleinshJobMainServiceImpl implements RepleinshJobMainService { transactionCreateReqVO.setAmount(BigDecimal.ZERO); transactionCreateReqVO.setLocationCode(recordLstItem.get("toLocationCode").toString()); transactionCreateReqVOList.add(transactionCreateReqVO); + // 出动作 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(repleinshRecordDetailDO, transactionCreateReqVOOut); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setBusinessType(repleinshRecordMainDO.getBusinessType()); + transactionCreateReqVOOut.setOwnerCode(repleinshRecordDetailDO.getFromOwnerCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOOut.setPackingNumber(repleinshRecordDetailDO.getToPackingNumber()); + transactionCreateReqVOOut.setBatch(repleinshRecordDetailDO.getToBatch()); + transactionCreateReqVOOut.setContainerNumber(repleinshRecordDetailDO.getToContainerNumber()); + transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); + transactionCreateReqVOOut.setLocationCode(recordLstItem.get("toLocationCode").toString()); + transactionCreateReqVOList.add(transactionCreateReqVOOut); }); } }); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java index 2d15f4a6..f6cedf06 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java @@ -890,6 +890,8 @@ public class JobUtils { if (locationList != null && locationList.size() > 0) { queryWrapperExpectout.in("location_code", locationList); } +// TODO: 默认单件管理 箱码不为null 如按批次或其他 需要扩展其他情况 + queryWrapperExpectout.isNotNull("packing_number"); if (balanceDO.getPackingNumber() != null && !balanceDO.getPackingNumber().equals("")) queryWrapperExpectout.eq("packing_number", balanceDO.getPackingNumber()); if (balanceDO.getBatch() != null && !balanceDO.getBatch().equals("")) queryWrapperExpectout.eq("batch", balanceDO.getBatch()); queryWrapperExpectout.groupBy("item_code","packing_number", "batch"); From b3809701675e570032e664993c2f29eb6faade5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Tue, 5 Dec 2023 16:45:19 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/win/module/system/enums/serialNumber/RuleCodeEnum.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java index a99e5fc0..f9e08f68 100644 --- a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java +++ b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java @@ -141,6 +141,8 @@ public enum RuleCodeEnum { TRANSFER_LOG("TransferLog"), // 库存转移日志 PACKING_NUMBER("PackingNumber"), // 包装号 CUSTOMER_DELIVER_NUMBER("CustomerDeliverNumber"), // 客户发货单号 + LABEL_NUMBER("LabelNumber"), // 标签流水号 + ; private final String code; From b5fb5259543b1c6b113dfbb7e2bd9051b6ff8fe9 Mon Sep 17 00:00:00 2001 From: yejiaxing <591141169@qq.com> Date: Tue, 5 Dec 2023 17:21:39 +0800 Subject: [PATCH 04/10] =?UTF-8?q?BUG=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SupplierdeliverRequestDetailBaseVO.java | 22 +++--- ...SupplierdeliverRequestDetailPageReqVO.java | 4 + .../SupplierdeliverRequestDetailMapper.java | 1 + .../purchase/PurchaseMainServiceImpl.java | 7 +- ...pplierdeliverRequestDetailServiceImpl.java | 76 ++++++++++++++++++- 5 files changed, 94 insertions(+), 16 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailBaseVO.java index 16161978..a05cac0f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailBaseVO.java @@ -34,34 +34,34 @@ public class SupplierdeliverRequestDetailBaseVO { private String altBatch; @Schema(description = "到货日期", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "到货日期不能为空") +// @NotNull(message = "到货日期不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime arriveDate; @Schema(description = "生产日期", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "生产日期不能为空") +// @NotNull(message = "生产日期不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime produceDate; @Schema(description = "过期日期", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "过期日期不能为空") +// @NotNull(message = "过期日期不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime expireDate; @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "订单号不能为空") +// @NotNull(message = "订单号不能为空") private String poNumber; @Schema(description = "订单行", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "订单行不能为空") +// @NotNull(message = "订单行不能为空") private String poLine; @Schema(description = "标包数量", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "标包数量不能为空") +// @NotNull(message = "标包数量不能为空") private BigDecimal stdPackQty; @Schema(description = "标包单位", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "标包单位不能为空") +// @NotNull(message = "标包单位不能为空") private String stdPackUnit; @Schema(description = "供应商计量数量") @@ -71,14 +71,14 @@ public class SupplierdeliverRequestDetailBaseVO { private String supplierPackUnit; @Schema(description = "转换率", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "转换率不能为空") +// @NotNull(message = "转换率不能为空") private BigDecimal convertRate; @Schema(description = "单据号") private String number; @Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "物品代码不能为空") +// @NotNull(message = "物品代码不能为空") private String itemCode; @Schema(description = "备注") @@ -121,5 +121,9 @@ public class SupplierdeliverRequestDetailBaseVO { @Schema(description = "到货主代码") private String toOwnerCode; + /** + * 主表ID + */ + private Long masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailPageReqVO.java index 45bb56ff..7249eb66 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailPageReqVO.java @@ -102,5 +102,9 @@ public class SupplierdeliverRequestDetailPageReqVO extends PageParam { @Schema(description = "到货主代码") private String toOwnerCode; + /** + * 主表ID + */ + private Long masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplierdeliverRequest/SupplierdeliverRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplierdeliverRequest/SupplierdeliverRequestDetailMapper.java index 330aa1bd..72b54e3d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplierdeliverRequest/SupplierdeliverRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplierdeliverRequest/SupplierdeliverRequestDetailMapper.java @@ -22,6 +22,7 @@ public interface SupplierdeliverRequestDetailMapper extends BaseMapperX selectPage(SupplierdeliverRequestDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(SupplierdeliverRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(SupplierdeliverRequestDetailDO::getBatch, reqVO.getBatch()) .eqIfPresent(SupplierdeliverRequestDetailDO::getAltBatch, reqVO.getAltBatch()) .betweenIfPresent(SupplierdeliverRequestDetailDO::getArriveDate, reqVO.getArriveDate()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java index b229f6ae..8be055c7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java @@ -629,10 +629,10 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { purchaseDetailDOQueryWrapper.eq("item_code", itemCode); purchaseDetailDOQueryWrapper.eq("available", "TRUE"); List purchaseDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper); - boolean res = false; + boolean res = true; for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { if ("TRUE".equals(purchaseDetailDO.getAvailable())) { - res = true; + res = false; } } if ("DISCRETE".equals(purchaseMainDO.getType()) && res) { @@ -641,12 +641,11 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { //如果是离散单 if ("DISCRETE".equals(purchaseMainDO.getType())) { + purchaseDetailDO.setReceivedQty(receivedQty); if (purchaseDetailDO.getReceivedQty().compareTo(purchaseDetailDO.getOrderQty()) == 0 || purchaseDetailDO.getReceivedQty().compareTo(purchaseDetailDO.getOrderQty().multiply(new BigDecimal(1).add(purchaseDetailDO.getOverReceivingPercent()))) >= 0) { purchaseDetailDO.setAvailable("FALSE"); - } else { - purchaseDetailDO.setReceivedQty(receivedQty); } } else { purchaseDetailDO.setReceivedQty(purchaseDetailDO.getReceivedQty().add(receivedQty)); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestDetailServiceImpl.java index e8088c77..22cc5510 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestDetailServiceImpl.java @@ -1,14 +1,27 @@ package com.win.module.wms.service.supplierdeliverRequest; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailCreateReqVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailExportReqVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailPageReqVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; +import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO; +import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestMainDO; +import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; +import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverRequestMainMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.itempackaging.ItempackagingService; +import com.win.module.wms.service.purchasePlan.PurchasePlanMainService; +import com.win.module.wms.service.supplieritem.SupplieritemService; import org.springframework.stereotype.Service; + import javax.annotation.Resource; + import org.springframework.validation.annotation.Validated; +import java.math.BigDecimal; import java.util.*; import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestDetailDO; @@ -31,14 +44,32 @@ public class SupplierdeliverRequestDetailServiceImpl implements SupplierdeliverR @Resource private SupplierdeliverRequestDetailMapper supplierdeliverRequestDetailMapper; + @Resource + private SupplierdeliverRequestMainMapper supplierdeliverRequestMainMapper; + @Resource + private ItembasicService itembasicService; + @Resource + private SupplieritemService supplieritemService; + @Resource + private ItempackagingService itempackagingService; + @Resource + private PurchasePlanMainService purchasePlanMainService; + @Override public Long createSupplierdeliverRequestDetail(SupplierdeliverRequestDetailCreateReqVO createReqVO) { // 插入 - SupplierdeliverRequestDetailDO supplierdeliverRequestDetail = SupplierdeliverRequestDetailConvert.INSTANCE.convert(createReqVO); - supplierdeliverRequestDetailMapper.insert(supplierdeliverRequestDetail); + SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO = SupplierdeliverRequestDetailConvert.INSTANCE.convert(createReqVO); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("number", createReqVO.getNumber()); + SupplierdeliverRequestMainDO mainDO = supplierdeliverRequestMainMapper.selectOne(queryWrapper); + validatorDetailMethod(supplierdeliverRequestDetailDO, mainDO); + supplierdeliverRequestDetailDO.setMasterId(mainDO.getId()); + supplierdeliverRequestDetailDO.setNumber(mainDO.getNumber()); + supplierdeliverRequestDetailDO.setConvertRate(new BigDecimal(0)); + supplierdeliverRequestDetailMapper.insert(supplierdeliverRequestDetailDO); // 返回 - return supplierdeliverRequestDetail.getId(); + return supplierdeliverRequestDetailDO.getId(); } @Override @@ -49,6 +80,7 @@ public class SupplierdeliverRequestDetailServiceImpl implements SupplierdeliverR SupplierdeliverRequestDetailDO updateObj = SupplierdeliverRequestDetailConvert.INSTANCE.convert(updateReqVO); supplierdeliverRequestDetailMapper.updateById(updateObj); } + @Override public PageResult getSupplierdeliverRequestDetailSenior(CustomConditions conditions) { return supplierdeliverRequestDetailMapper.selectSenior(conditions); @@ -88,4 +120,42 @@ public class SupplierdeliverRequestDetailServiceImpl implements SupplierdeliverR return supplierdeliverRequestDetailMapper.selectList(exportReqVO); } + //子表校验 校验供应商基础信息 + private void validatorItembasic(String itemCode) { + itembasicService.selectItembasic(itemCode); + } + + //子表校验 校验供应商物品 + private SupplieritemDO validatorSupplierItemExist(String supplierCode, String itemCode) { + return supplieritemService.selectSupplierItemExist(supplierCode, itemCode); + } + + //子表校验 校验物品标包信息 + private ItempackagingDO validatorItemPackagingExist(String itemCode) { + return itempackagingService.selectItemPackagingExist(itemCode); + } + + //子表校验 校验要货计划 + private PurchasePlanDetailDO validatorPurchasePlan(SupplierdeliverRequestMainDO supplierdeliverRequestMainDO, SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO) { + PurchasePlanDetailDO purchasePlanDetailDO = + purchasePlanMainService.selectPurchasePlan(supplierdeliverRequestMainDO.getPpNumber(), supplierdeliverRequestMainDO.getSupplierCode(), + supplierdeliverRequestDetailDO.getPoNumber(), supplierdeliverRequestDetailDO.getPoLine(), supplierdeliverRequestDetailDO.getItemCode()); + return purchasePlanDetailDO; + } + + //校验子表公共方法(适用于新增/修改) + private void validatorDetailMethod(SupplierdeliverRequestDetailDO detailDo, SupplierdeliverRequestMainDO mainDo) { + this.validatorItembasic(detailDo.getItemCode()); + this.validatorSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode()); + PurchasePlanDetailDO purchasePlanDetailDO = this.validatorPurchasePlan(mainDo, detailDo); + if ((purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())).compareTo(detailDo.getQty()) == -1) { + throw exception(QTY_ERROR, detailDo.getQty(), null, detailDo.getPoLine(), null, purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())); + } + ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode()); + if (itempackagingDO != null) { + detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit()); + detailDo.setStdPackQty(itempackagingDO.getStdPackQty()); + } + } + } From af6d6c2ded86a19f710bf1301320abec52f30a4f Mon Sep 17 00:00:00 2001 From: chenfang Date: Tue, 5 Dec 2023 17:23:01 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E9=80=80=E8=B4=A7?= =?UTF-8?q?=E7=94=B3=E8=AF=B7/=E4=BB=BB=E5=8A=A1/=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/CustomerreceiptRequestMainBaseVO.java | 5 + ...CustomerreceiptRequestMainExportReqVO.java | 5 + .../CustomerreceiptRequestMainPageReqVO.java | 5 + .../CustomerreturnJobMainController.java | 59 ++- .../CustomerreturnJobDetailUpdateReqVO.java | 6 +- .../vo/CustomerreturnJobMainExcelVO.java | 87 +++- .../vo/CustomerreturnJobMainPageReqVO.java | 5 + .../CustomerreturnRecordMainController.java | 10 +- .../vo/CustomerreturnRecordMainExcelVO.java | 23 +- .../CustomerreturnRequestMainController.java | 18 +- .../vo/CustomerreturnRequestImportVO.java | 10 +- .../vo/CustomerreturnRequestMainBaseVO.java | 5 + .../vo/CustomerreturnRequestMainExcelVO.java | 13 +- .../CustomerreturnRequestMainExportReqVO.java | 1 - .../CustomerreturnRequestMainPageReqVO.java | 5 + .../CustomersettleRecordMainController.java | 53 +- .../vo/CustomersettleRecordDetailBaseVO.java | 3 + .../vo/CustomersettleRecordDetailExcelVO.java | 3 + ...CustomersettleRecordDetailExportReqVO.java | 3 + .../CustomersettleRecordDetailPageReqVO.java | 3 + .../CustomersettleRecordMainCreateReqVO.java | 8 +- .../vo/CustomersettleRecordMainExcelVO.java | 95 +++- .../CustomersettleRequestMainController.java | 127 ++++- .../vo/CustomersettleRequestDetailBaseVO.java | 2 + ...ustomersettleRequestDetailExportReqVO.java | 3 + .../CustomersettleRequestDetailPageReqVO.java | 3 + .../vo/CustomersettleRequestMainExcelVO.java | 75 ++- .../vo/CustomersettleRequestMainImportVO.java | 21 +- .../CustomersettleRequestMainPageReqVO.java | 5 + .../deliverJob/DeliverJobMainController.java | 11 - .../vo/DeliverJobMainExportReqVO.java | 5 - .../vo/DeliverRequestMainBaseVO.java | 5 + .../vo/DeliverRequestMainPageReqVO.java | 5 + .../CustomerreturnJobMainConvert.java | 16 + .../CustomersettleRecordDetailConvert.java | 1 + .../CustomersettleRecordMainConvert.java | 19 +- .../CustomersettleRequestDetailConvert.java | 3 + .../CustomersettleRequestMainConvert.java | 26 +- .../CustomerreceiptRequestMainDO.java | 8 + .../CustomerreturnJobMainDO.java | 9 +- .../CustomerreturnRequestDetailDO.java | 1 - .../CustomerreturnRequestMainDO.java | 10 +- .../CustomersettleRecordMainDO.java | 1 + .../CustomersettleRequestDetailDO.java | 1 + .../CustomersettleRequestMainDO.java | 18 +- .../deliverRequest/DeliverRequestMainDO.java | 8 + .../CustomerreceiptRequestMainMapper.java | 4 + .../CustomerreturnJobMainMapper.java | 2 + .../CustomerreturnRequestDetailMapper.java | 2 +- .../CustomerreturnRequestMainMapper.java | 2 + .../CustomersettleRecordDetailMapper.java | 5 + .../CustomersettleRecordMainMapper.java | 4 +- .../CustomersettleRequestDetailMapper.java | 6 + .../CustomersettleRequestMainMapper.java | 5 + .../deliverJob/DeliverJobMainMapper.java | 2 - .../DeliverRequestMainMapper.java | 2 + ...CustomerreceiptRequestMainServiceImpl.java | 2 + .../CustomerreturnJobMainServiceImpl.java | 121 ++--- .../CustomerreturnRequestMainServiceImpl.java | 17 +- .../CustomersettleRecordDetailService.java | 1 + ...CustomersettleRecordDetailServiceImpl.java | 5 + .../CustomersettleRecordMainService.java | 2 + .../CustomersettleRecordMainServiceImpl.java | 5 + .../CustomersettleRequestDetailService.java | 1 + ...ustomersettleRequestDetailServiceImpl.java | 27 +- .../CustomersettleRequestMainService.java | 44 +- .../CustomersettleRequestMainServiceImpl.java | 484 ++++++++++++++---- .../deliverJob/DeliverJobMainServiceImpl.java | 1 + .../DeliverRequestMainServiceImpl.java | 4 + 69 files changed, 1260 insertions(+), 296 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainBaseVO.java index 99ca2cad..b9ea404b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainBaseVO.java @@ -110,4 +110,9 @@ public class CustomerreceiptRequestMainBaseVO { @Schema(description = "直接生成记录") private String directCreateRecord; + @Schema(description = "入库库存状态范围") + private String inInventoryStatus; + + @Schema(description = "出库库存状态范围") + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainExportReqVO.java index 08035734..7869b715 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainExportReqVO.java @@ -101,4 +101,9 @@ public class CustomerreceiptRequestMainExportReqVO { @Schema(description = "直接生成记录") private String directCreateRecord; + @Schema(description = "入库库存状态范围") + private String inInventoryStatus; + + @Schema(description = "出库库存状态范围") + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainPageReqVO.java index 5a058bba..c3d16de2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreceiptRequest/vo/CustomerreceiptRequestMainPageReqVO.java @@ -103,4 +103,9 @@ public class CustomerreceiptRequestMainPageReqVO extends PageParam { @Schema(description = "直接生成记录") private String directCreateRecord; + @Schema(description = "入库库存状态范围") + private String inInventoryStatus; + + @Schema(description = "出库库存状态范围") + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/CustomerreturnJobMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/CustomerreturnJobMainController.java index 88667451..b021ee1f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/CustomerreturnJobMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/CustomerreturnJobMainController.java @@ -1,11 +1,18 @@ package com.win.module.wms.controller.customerreturnJob; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.customerreturnJob.vo.*; +import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainExcelVO; +import com.win.module.wms.controller.deliverJob.vo.DeliverJobMainExportReqVO; import com.win.module.wms.convert.customerreturnJob.CustomerreturnJobDetailConvert; +import com.win.module.wms.convert.deliverJob.DeliverJobMainConvert; import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobDetailDO; +import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO; +import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobMainDO; +import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.customerreturnJob.CustomerreturnJobDetailService; import jodd.util.StringUtil; import org.springframework.web.bind.annotation.*; @@ -121,13 +128,53 @@ public class CustomerreturnJobMainController { HttpServletResponse response) throws IOException { List list = customerreturnJobMainService.getCustomerreturnJobMainList(exportReqVO); // 导出 Excel - List datas = CustomerreturnJobMainConvert.INSTANCE.convertList02(list); - for(CustomerreturnJobMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "客户退货任务主.xls", "数据", CustomerreturnJobMainExcelVO.class, resultList,mapDropDown); + } + + @GetMapping("/export-excel-senior") + @Operation(summary = "导出客户退货任务 Excel") + @PreAuthorize("@ss.hasPermission('wms:customerreturn-record-main:export')") + @OperateLog(type = EXPORT) + public void exportCustomerreturnJobMainSeniorExcel(@Valid CustomerreturnJobMainExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = customerreturnJobMainService.getCustomerreturnJobMainList(exportReqVO); + // 导出 Excel + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "发货任务.xls", "数据", CustomerreturnJobMainExcelVO.class, resultList,mapDropDown); + } + + private List getExcelVo(List list, Map mapDropDown) { + String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE); + mapDropDown.put(8, transferMode); + String[] jobStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.JOB_STATUS); + mapDropDown.put(14, jobStatus); + String[] jobStageStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.JOB_STAGE_STATUS); + mapDropDown.put(18, jobStageStatus); + String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); + mapDropDown.put(26, locationType); + mapDropDown.put(27, locationType); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(47, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(58, uom); + List resultList = new ArrayList<>(); + // 导出 + for(CustomerreturnJobMainDO mainDO : list) { + List subList = customerreturnJobDetailService.selectList(mainDO.getId()); + for(CustomerreturnJobDetailDO detailDO : subList) { + CustomerreturnJobMainExcelVO vo = CustomerreturnJobMainConvert.INSTANCE.convert(mainDO, detailDO); + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); + vo.setCreatorDetail(userApi.getUser(Long.valueOf(vo.getCreatorDetail())).getNickname()); + vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); + vo.setAcceptUserId(userApi.getUser(Long.valueOf(vo.getAcceptUserId())).getNickname()); + vo.setCompleteUserId(userApi.getUser(Long.valueOf(vo.getCompleteUserId())).getNickname()); + resultList.add(vo); + } } - ExcelUtils.write(response, "客户退货任务主.xls", "数据", CustomerreturnJobMainExcelVO.class, datas); + return resultList; } @GetMapping("/getCustomerreturnJobById") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobDetailUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobDetailUpdateReqVO.java index 8e17ad47..06fa91b7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobDetailUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobDetailUpdateReqVO.java @@ -3,10 +3,14 @@ package com.win.module.wms.controller.customerreturnJob.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; +import java.util.Map; + @Schema(description = "管理后台 - 客户退货任务子更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class CustomerreturnJobDetailUpdateReqVO extends CustomerreturnJobDetailBaseVO { - + @Schema(description = "子表记录数据") + private List> recordList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainExcelVO.java index cb1cfb44..4b61b097 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainExcelVO.java @@ -1,16 +1,12 @@ package com.win.module.wms.controller.customerreturnJob.vo; -import io.swagger.v3.oas.annotations.media.Schema; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; + +import java.math.BigDecimal; import java.time.LocalDateTime; + import com.alibaba.excel.annotation.ExcelProperty; import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.convert.DictConvert; @@ -24,6 +20,9 @@ import com.win.framework.excel.core.convert.DictConvert; @Data public class CustomerreturnJobMainExcelVO { + @ExcelProperty("单据号") + private String number; + @ExcelProperty("申请单号") private String requestNumber; @@ -49,8 +48,7 @@ public class CustomerreturnJobMainExcelVO { @DictFormat("transfer_mode") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String transferMode; - @ExcelProperty(value = "车牌号", converter = DictConvert.class) - @DictFormat("vehicle_plate_number") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + @ExcelProperty("车牌号") private String vehiclePlateNumber; @ExcelProperty("从仓库代码") @@ -60,9 +58,11 @@ public class CustomerreturnJobMainExcelVO { private String toWarehouseCode; @ExcelProperty("申请时间") + @ColumnWidth(value = 22) private LocalDateTime requestTime; @ExcelProperty("要求截止时间") + @ColumnWidth(value = 22) private LocalDateTime requestDueTime; @ExcelProperty(value = "状态", converter = DictConvert.class) @@ -70,9 +70,11 @@ public class CustomerreturnJobMainExcelVO { private String status; @ExcelProperty("过期时间") + @ColumnWidth(value = 22) private LocalDateTime expiredTime; @ExcelProperty("最后更新时间") + @ColumnWidth(value = 22) private LocalDateTime updateTime; @ExcelProperty("最后更新者Id") @@ -95,12 +97,14 @@ public class CustomerreturnJobMainExcelVO { private String acceptUserId; @ExcelProperty("承接时间") + @ColumnWidth(value = 22) private LocalDateTime acceptTime; @ExcelProperty("完成人用户ID") private String completeUserId; @ExcelProperty("完成时间") + @ColumnWidth(value = 22) private LocalDateTime completeTime; @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) @@ -111,9 +115,6 @@ public class CustomerreturnJobMainExcelVO { @DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String toLocationTypes; - @ExcelProperty("单据号") - private String number; - @ExcelProperty("业务类型") private String businessType; @@ -121,6 +122,7 @@ public class CustomerreturnJobMainExcelVO { private String remark; @ExcelProperty("创建时间") + @ColumnWidth(value = 22) private LocalDateTime createTime; @ExcelProperty("创建者id") @@ -164,5 +166,64 @@ public class CustomerreturnJobMainExcelVO { @ExcelProperty("允许修改箱码") private String allowModifyPackingNumber; + //子表数据 +// @ExcelProperty("销售订单号") +// private String soNumber; +// +// @ExcelProperty("销售订单行") +// private String soLine; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String inventoryStatus; + + @ExcelProperty("货主代码") + private String ownerCode; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("到库位代码") + private String toLocationCode; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String uom; + + @ExcelProperty("备注") + private String remarkDetail; + + @ExcelProperty("创建时间") + @ColumnWidth(value = 22) + private LocalDateTime createtimeDetail; + @ExcelProperty("创建者Id") + private String creatorDetail; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainPageReqVO.java index 0f7cdaa1..8b44cee7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnJob/vo/CustomerreturnJobMainPageReqVO.java @@ -157,4 +157,9 @@ public class CustomerreturnJobMainPageReqVO extends PageParam { @Schema(description = "允许修改箱码") private String allowModifyPackingNumber; + @Schema(description = "入库库存状态范围") + private String inInventoryStatuses; + + @Schema(description = "出库库存状态范围") + private String outInventoryStatuses; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordMainController.java index ad36ae38..926aa8b7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordMainController.java @@ -141,20 +141,20 @@ public class CustomerreturnRecordMainController { private List getExcelVo(List list, Map mapDropDown) { String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE); - mapDropDown.put(6, transferMode); + mapDropDown.put(7, transferMode); String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS); - mapDropDown.put(17, requestStatus); + mapDropDown.put(18, requestStatus); String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); mapDropDown.put(24, locationType); mapDropDown.put(25, locationType); String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); mapDropDown.put(28, available); String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); - mapDropDown.put(33, inventoryStatus); + mapDropDown.put(31, inventoryStatus); String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); - mapDropDown.put(55, uom); + mapDropDown.put(53, uom); String[] interfaceTypeDetail = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INTERFACE_TYPE); - mapDropDown.put(56, interfaceTypeDetail); + mapDropDown.put(54, interfaceTypeDetail); List resultList = new ArrayList<>(); // 导出 for(CustomerreturnRecordMainDO mainDO : list) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java index e8cf1587..b3bd11ab 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.customerreturnRecord.vo; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; @@ -24,6 +25,9 @@ import com.win.framework.excel.core.convert.DictConvert; @Data public class CustomerreturnRecordMainExcelVO { + @ExcelProperty("单据号") + private String number; + @ExcelProperty("任务单号") private String jobNumber; @@ -62,15 +66,19 @@ public class CustomerreturnRecordMainExcelVO { private String inTransactionType; @ExcelProperty("执行时间") + @ColumnWidth(value = 22) private LocalDateTime executeTime; @ExcelProperty("生效日期") + @ColumnWidth(value = 22) private LocalDateTime activeDate; @ExcelProperty("申请时间") + @ColumnWidth(value = 22) private LocalDateTime requestTime; @ExcelProperty("截止时间") + @ColumnWidth(value = 22) private LocalDateTime dueTime; @ExcelProperty("部门") @@ -80,9 +88,6 @@ public class CustomerreturnRecordMainExcelVO { @DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String interfaceType; - @ExcelProperty("单据号") - private String number; - @ExcelProperty("业务类型") private String businessType; @@ -90,6 +95,7 @@ public class CustomerreturnRecordMainExcelVO { private String remark; @ExcelProperty("创建时间") + @ColumnWidth(value = 22) private LocalDateTime createTime; @ExcelProperty("创建者Id") @@ -120,11 +126,11 @@ public class CustomerreturnRecordMainExcelVO { private String fromAreaCodes; //子表 - @ExcelProperty("销售订单号") - private String soNumber; - - @ExcelProperty("销售订单行") - private String soLine; +// @ExcelProperty("销售订单号") +// private String soNumber; +// +// @ExcelProperty("销售订单行") +// private String soLine; @ExcelProperty("从批次") private String fromBatch; @@ -176,6 +182,7 @@ public class CustomerreturnRecordMainExcelVO { private String remarkDetail; @ExcelProperty("创建时间") + @ColumnWidth(value = 22) private LocalDateTime createTimeDetail; @ExcelProperty("创建者Id") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java index ce2637ae..b6099174 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java @@ -135,7 +135,7 @@ public class CustomerreturnRequestMainController { @Operation(summary = "导出发货计划主 Excel") @PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:export')") @OperateLog(type = EXPORT) - public void exportPurchasereceiptRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + public void exportCustomerreturnRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { List list = customerreturnRequestMainService.getCustomerreturnRequestMainList(conditions); // 导出 Excel Map mapDropDown = new HashMap<>(); @@ -145,16 +145,16 @@ public class CustomerreturnRequestMainController { private List getExcelVo(List list, Map mapDropDown) { String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE); - mapDropDown.put(7, transferMode); + mapDropDown.put(6, transferMode); String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS); - mapDropDown.put(16, requestStatus); + mapDropDown.put(15, requestStatus); String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); - mapDropDown.put(20, locationType); - mapDropDown.put(23, locationType); + mapDropDown.put(19, locationType); + mapDropDown.put(22, locationType); String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); - mapDropDown.put(29, inventoryStatus); + mapDropDown.put(26, inventoryStatus); String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); - mapDropDown.put(41, uom); + mapDropDown.put(28, uom); List resultList = new ArrayList<>(); // 导出 for(CustomerreturnRequestMainDO mainDO : list) { @@ -178,9 +178,9 @@ public class CustomerreturnRequestMainController { String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE); mapDropDown.put(3, transferMode); String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); - mapDropDown.put(12, uom); + mapDropDown.put(10, uom); String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); - mapDropDown.put(13, inventoryStatus); + mapDropDown.put(11, inventoryStatus); // 输出 ExcelUtils.write(response, "客户退货申请信息导入模板.xls", "客户退货申请信息列表", CustomerreturnRequestImportVO.class, list,mapDropDown); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportVO.java index 9fe1ea8a..67dec391 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportVO.java @@ -36,11 +36,11 @@ public class CustomerreturnRequestImportVO { private String vehiclePlateNumber; //子表字段 - @ExcelProperty("销售订单号") - private String soNumber; - - @ExcelProperty("销售订单行") - private String soLine; +// @ExcelProperty("销售订单号") +// private String soNumber; +// +// @ExcelProperty("销售订单行") +// private String soLine; @ExcelProperty("物品代码") private String itemCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java index 9d27148c..8a5d08d5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java @@ -117,4 +117,9 @@ public class CustomerreturnRequestMainBaseVO { @NotBlank(message = "直接生成记录不能为空") private String directCreateRecord; + @Schema(description = "入库库存状态范围") + private String inInventoryStatus; + + @Schema(description = "出库库存状态范围") + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainExcelVO.java index c1154f9e..56be71ed 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainExcelVO.java @@ -27,9 +27,6 @@ public class CustomerreturnRequestMainExcelVO { @ExcelProperty("单据号") private String number; - @ExcelProperty("申请单号") - private String requestNumber; - @ExcelProperty("发货记录单号") private String deliverRecordNumber; @@ -123,11 +120,11 @@ public class CustomerreturnRequestMainExcelVO { private String directCreateRecord; //子表 - @ExcelProperty("销售订单号") - private String soNumber; - - @ExcelProperty("销售订单行") - private String soLine; +// @ExcelProperty("销售订单号") +// private String soNumber; +// +// @ExcelProperty("销售订单行") +// private String soLine; @ExcelProperty("包装号") private String packingNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainExportReqVO.java index a2b9d770..d2008268 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainExportReqVO.java @@ -106,5 +106,4 @@ public class CustomerreturnRequestMainExportReqVO { @Schema(description = "直接生成记录") private String directCreateRecord; - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainPageReqVO.java index da474be4..6656ea40 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainPageReqVO.java @@ -109,4 +109,9 @@ public class CustomerreturnRequestMainPageReqVO extends PageParam { @Schema(description = "直接生成记录") private String directCreateRecord; + @Schema(description = "入库库存状态范围") + private String inInventoryStatus; + + @Schema(description = "出库库存状态范围") + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/CustomersettleRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/CustomersettleRecordMainController.java index 57eb8db6..a101a51c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/CustomersettleRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/CustomersettleRecordMainController.java @@ -1,8 +1,12 @@ package com.win.module.wms.controller.customersettleRecord; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.dal.dataobject.customersettleRecord.CustomersettleRecordDetailDO; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.customersettleRecord.CustomersettleRecordDetailService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -39,6 +43,8 @@ public class CustomersettleRecordMainController { @Resource private CustomersettleRecordMainService customersettleRecordMainService; @Resource + private CustomersettleRecordDetailService customersettleRecordDetailService; + @Resource private AdminUserApi userApi; @PostMapping("/create") @@ -111,13 +117,46 @@ public class CustomersettleRecordMainController { HttpServletResponse response) throws IOException { List list = customersettleRecordMainService.getCustomersettleRecordMainList(exportReqVO); // 导出 Excel - List datas = CustomersettleRecordMainConvert.INSTANCE.convertList02(list); - for(CustomersettleRecordMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } - ExcelUtils.write(response, "客户结算记录主.xls", "数据", CustomersettleRecordMainExcelVO.class, datas); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "客户结算记录.xls", "数据", CustomersettleRecordMainExcelVO.class, resultList,mapDropDown); } + @PostMapping("/export-excel-senior") + @Operation(summary = "导出客户结算记录主 Excel") + @PreAuthorize("@ss.hasPermission('wms:customersettle-record-main:export')") + @OperateLog(type = EXPORT) + public void exportCustomersettleRecordMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = customersettleRecordMainService.getCustomersettleRecordMainList(conditions); + // 导出 Excel + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "客户结算记录.xls", "数据", CustomersettleRecordMainExcelVO.class, resultList,mapDropDown); + } + + private List getExcelVo(List list, Map mapDropDown) { + String[] interfaceType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INTERFACE_TYPE); + mapDropDown.put(12, interfaceType); + mapDropDown.put(39, interfaceType); + String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); + mapDropDown.put(19, locationType); + String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); + mapDropDown.put(21, trueFalse); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(27, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(38, uom); + List resultList = new ArrayList<>(); + // 导出 + for(CustomersettleRecordMainDO mainDO : list) { + List subList = customersettleRecordDetailService.selectList(mainDO.getId()); + for(CustomersettleRecordDetailDO detailDO : subList) { + CustomersettleRecordMainExcelVO vo = CustomersettleRecordMainConvert.INSTANCE.convert(mainDO, detailDO); + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); + vo.setCreatorDetail(userApi.getUser(Long.valueOf(vo.getCreatorDetail())).getNickname()); + resultList.add(vo); + } + } + return resultList; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailBaseVO.java index e974baf2..06bee378 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailBaseVO.java @@ -101,4 +101,7 @@ public class CustomersettleRecordDetailBaseVO { @Schema(description = "任务明细ID", example = "9271") private String jobDetailId; + @Schema(description = "主表id") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailExcelVO.java index 64b92165..d99ab2aa 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailExcelVO.java @@ -102,4 +102,7 @@ public class CustomersettleRecordDetailExcelVO { @ExcelProperty("任务明细ID") private String jobDetailId; + @Schema(description = "主表id") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailExportReqVO.java index 5ba4322d..639be2db 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailExportReqVO.java @@ -94,4 +94,7 @@ public class CustomersettleRecordDetailExportReqVO { @Schema(description = "任务明细ID", example = "9271") private String jobDetailId; + @Schema(description = "主表id") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailPageReqVO.java index acd2c07d..e71ee08d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordDetailPageReqVO.java @@ -96,4 +96,7 @@ public class CustomersettleRecordDetailPageReqVO extends PageParam { @Schema(description = "任务明细ID", example = "9271") private String jobDetailId; + @Schema(description = "主表id") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordMainCreateReqVO.java index d23135b5..44def490 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordMainCreateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.customersettleRecord.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestDetailCreateReqVO; import lombok.*; import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; + @Schema(description = "管理后台 - 客户结算记录主创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class CustomersettleRecordMainCreateReqVO extends CustomersettleRecordMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordMainExcelVO.java index 1a20da84..43630b00 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRecord/vo/CustomersettleRecordMainExcelVO.java @@ -1,7 +1,10 @@ package com.win.module.wms.controller.customersettleRecord.vo; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -22,6 +25,9 @@ import com.win.framework.excel.core.convert.DictConvert; @Data public class CustomersettleRecordMainExcelVO { + @ExcelProperty("单据号") + private String number; + @ExcelProperty("申请单号") private String requestNumber; @@ -41,15 +47,19 @@ public class CustomersettleRecordMainExcelVO { private String inTransactionYpe; @ExcelProperty("执行时间") + @ColumnWidth(value = 22) private LocalDateTime executeTime; @ExcelProperty("生效日期") + @ColumnWidth(value = 22) private LocalDateTime activeDate; @ExcelProperty("申请时间") + @ColumnWidth(value = 22) private LocalDateTime requestTime; @ExcelProperty("截止时间") + @ColumnWidth(value = 22) private LocalDateTime dueTime; @ExcelProperty("部门") @@ -62,13 +72,11 @@ public class CustomersettleRecordMainExcelVO { @ExcelProperty("代码") private String code; - @ExcelProperty("单据号") - private String number; - @ExcelProperty("业务类型") private String businessType; @ExcelProperty("创建时间") + @ColumnWidth(value = 22) private LocalDateTime createTime; @ExcelProperty("创建者Id") @@ -87,7 +95,86 @@ public class CustomersettleRecordMainExcelVO { @ExcelProperty("从库区代码范围") private String fromAreaCodes; - @ExcelProperty("是否可用") + @ExcelProperty(value = "是否可用", converter = DictConvert.class) + @DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String available; + @ExcelProperty("销售订单号") + private String soNumber; + + @ExcelProperty("销售订单行") + private String soLine; + + @ExcelProperty("货主代码") + private String ownerCode; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String inventoryStatus; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("从库位组代码") + private String fromLocationGroupCode; + + @ExcelProperty("从库区代码") + private String fromAreaCode; + + @ExcelProperty("单价") + private BigDecimal singlePrice; + + @ExcelProperty("金额") + private BigDecimal amount; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String uom; + + @ExcelProperty(value = "接口类型", converter = DictConvert.class) + @DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String interfaceTypeDetail; + + @ExcelProperty("代码") + private String codeDetail; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("备注") + private String remarkDetail; + + @ExcelProperty("创建时间") + @ColumnWidth(value = 22) + private LocalDateTime createTimeDetail; + + @ExcelProperty("创建者Id") + private String creatorDetail; + + @ExcelProperty("地点ID") + private String siteId; + + @ExcelProperty("任务明细ID") + private String jobDetailId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/CustomersettleRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/CustomersettleRequestMainController.java index ec3cb6ca..4195bcc9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/CustomersettleRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/CustomersettleRequestMainController.java @@ -1,10 +1,18 @@ package com.win.module.wms.controller.customersettleRequest; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.excel.core.util.ConvertUtil; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainExcelVO; import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainCreateReqVO; +import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestMainConvert; +import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO; +import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO; +import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestDetailDO; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.customersettleRequest.CustomersettleRequestDetailService; import io.swagger.v3.oas.annotations.Parameters; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -45,6 +53,8 @@ public class CustomersettleRequestMainController { @Resource private CustomersettleRequestMainService customersettleRequestMainService; @Resource + private CustomersettleRequestDetailService customersettleRequestDetailService; + @Resource private AdminUserApi userApi; @PostMapping("/create") @@ -117,34 +127,64 @@ public class CustomersettleRequestMainController { HttpServletResponse response) throws IOException { List list = customersettleRequestMainService.getCustomersettleRequestMainList(exportReqVO); // 导出 Excel - List datas = CustomersettleRequestMainConvert.INSTANCE.convertList02(list); - for(CustomersettleRequestMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "客户结算申请.xls", "数据", CustomersettleRequestMainExcelVO.class, resultList,mapDropDown); + } + + @PostMapping("/export-excel-senior") + @Operation(summary = "导出客户结算申请主 Excel") + @PreAuthorize("@ss.hasPermission('wms:customersettle-request-main:export')") + @OperateLog(type = EXPORT) + public void exportCustomersettleRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = customersettleRequestMainService.getCustomersettleRequestMainList(conditions); + // 导出 Excel + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "客户结算申请.xls", "数据", CustomersettleRequestMainExcelVO.class, resultList,mapDropDown); + } + + private List getExcelVo(List list, Map mapDropDown) { + String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); + mapDropDown.put(5, locationType); + String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS); + mapDropDown.put(14, requestStatus); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(35, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(46, uom); + List resultList = new ArrayList<>(); + // 导出 + for(CustomersettleRequestMainDO mainDO : list) { + List subList = customersettleRequestDetailService.selectList(mainDO.getId()); + for(CustomersettleRequestDetailDO detailDO : subList) { + CustomersettleRequestMainExcelVO vo = CustomersettleRequestMainConvert.INSTANCE.convert(mainDO, detailDO); + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); + vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); + vo.setUpdaterDetail(userApi.getUser(Long.valueOf(vo.getUpdaterDetail())).getNickname()); + vo.setCreatorDetail(userApi.getUser(Long.valueOf(vo.getCreatorDetail())).getNickname()); + resultList.add(vo); + } } - ExcelUtils.write(response, "客户结算申请主.xls", "数据", CustomersettleRequestMainExcelVO.class, datas); + return resultList; } @GetMapping("/get-import-template") - @Operation(summary = "获得导入制客户结算申请信息模板") + @Operation(summary = "获得导入客户结算申请信息模板") public void importTemplate(HttpServletResponse response) throws IOException { // 手动创建导出 demo - List list = Arrays.asList( - - ); - + List list = Arrays.asList(); // 输出 - ExcelUtils.write(response, "客户退货申请信息导入模板.xls", "客户退货申请信息列表", CustomersettleRequestMainImportVO.class, list); + ExcelUtils.write(response, "客户结算申请信息导入模板.xls", "客户结算申请信息列表", CustomersettleRequestMainImportVO.class, list); } @PostMapping("/import") - @Operation(summary = "导入发料申请基本信息") + @Operation(summary = "导入客户结算申请基本信息") @Parameters({ @Parameter(name = "file", description = "Excel 文件", required = true), @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") }) - @PreAuthorize("@ss.hasPermission('wms:inspect-request-main:import')") + @PreAuthorize("@ss.hasPermission('wms:customersettle-request-main:import')") public CommonResult> importExcel(HttpServletResponse response, @RequestParam("file") MultipartFile file, @RequestParam(value = "mode") Integer mode, @@ -152,14 +192,67 @@ public class CustomersettleRequestMainController { List list = ExcelUtils.read(file, CustomersettleRequestMainImportVO.class); ConvertUtil convertUtil = new ConvertUtil<>(CustomersettleRequestMainCreateReqVO.class); List createReqVOList = convertUtil.invoke(list).getDataList(); - List errorList = customersettleRequestMainService.customersettleRequestMainService(createReqVOList, mode, updatePart); + List errorList = customersettleRequestMainService.customersettleRequestMainImport(createReqVOList, mode, updatePart); Map returnMap = new HashMap<>(); returnMap.put("errorCount", errorList.size()); if(!errorList.isEmpty()) { - String url = ExcelUtils.writeLocalFile("发料申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList); + String url = ExcelUtils.writeLocalFile("客户结算申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList); returnMap.put("errorFile", url); } return success(returnMap); } - + + @PutMapping("/close") + @Operation(summary = "关闭客户结算申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:customersettle-request-main:close')") + public CommonResult closeCustomersettleRequestMain(@RequestParam("id") Long id) { + Integer count = customersettleRequestMainService.closeCustomersettleRequestMain(id); + return success(count > 0); + } + + @PutMapping("/reAdd") + @Operation(summary = "重新添加客户结算申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:customersettle-request-main:reAdd')") + public CommonResult reAddCustomersettleRequestMain(@RequestParam("id") Long id) { + Integer count = customersettleRequestMainService.reAddCustomersettleRequestMain(id); + return success(count > 0); + } + + @PutMapping("/submit") + @Operation(summary = "提交客户结算申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:customersettle-request-main:submit')") + public CommonResult submitCustomersettleRequestMain(@RequestParam("id") Long id) { + Integer count = customersettleRequestMainService.submitCustomersettleRequestMain(id); + return success(count > 0); + } + + @PutMapping("/agree") + @Operation(summary = "审批通过客户结算申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:customersettle-request-main:agree')") + public CommonResult agreeCustomersettleRequestMain(@RequestParam("id") Long id) { + Integer count = customersettleRequestMainService.agreeCustomersettleRequestMain(id); + return success(count > 0); + } + + @PutMapping("/handle") + @Operation(summary = "处理客户结算申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:customersettle-request-main:handle')") + public CommonResult handleCustomersettleRequestMain(@RequestParam("id") Long id) { + Integer count = customersettleRequestMainService.handleCustomersettleRequestMain(id); + return success(count > 0); + } + + @PutMapping("/refused") + @Operation(summary = "审批拒绝客户结算申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:customersettle-request-main:refused')") + public CommonResult abortCustomersettleRequestMain(@RequestParam("id") Long id) { + Integer count = customersettleRequestMainService.abortCustomersettleRequestMain(id); + return success(count > 0); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailBaseVO.java index 92c2f8d2..74a731f3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailBaseVO.java @@ -83,4 +83,6 @@ public class CustomersettleRequestDetailBaseVO { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "主表id") + private String masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailExportReqVO.java index f497a534..574e2460 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailExportReqVO.java @@ -77,4 +77,7 @@ public class CustomersettleRequestDetailExportReqVO { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "主表id") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailPageReqVO.java index 3ee9834e..3b5b5bdc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestDetailPageReqVO.java @@ -79,4 +79,7 @@ public class CustomersettleRequestDetailPageReqVO extends PageParam { @Schema(description = "最后更新者用户名") private String updater; + @Schema(description = "主表id") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainExcelVO.java index ae25e3d2..01c93cb3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainExcelVO.java @@ -1,7 +1,10 @@ package com.win.module.wms.controller.customersettleRequest.vo; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -21,6 +24,9 @@ import com.win.framework.excel.core.convert.DictConvert; @Data public class CustomersettleRequestMainExcelVO { + @ExcelProperty("单据号") + private String number; + @ExcelProperty("发货记录单号") private String deliverRecordNumber; @@ -40,9 +46,6 @@ public class CustomersettleRequestMainExcelVO { @ExcelProperty("从库区代码范围") private String fromAreaCodes; - @ExcelProperty("单据号") - private String number; - @ExcelProperty("业务类型") private String businessType; @@ -50,15 +53,18 @@ public class CustomersettleRequestMainExcelVO { private String remark; @ExcelProperty("创建时间") + @ColumnWidth(value = 22) private LocalDateTime createTime; @ExcelProperty("创建者用户名") private String creator; @ExcelProperty("申请时间") + @ColumnWidth(value = 22) private LocalDateTime requestTime; @ExcelProperty("截止时间") + @ColumnWidth(value = 22) private LocalDateTime dueTime; @ExcelProperty("部门") @@ -69,6 +75,7 @@ public class CustomersettleRequestMainExcelVO { private String status; @ExcelProperty("最后更新时间") + @ColumnWidth(value = 22) private LocalDateTime updateTime; @ExcelProperty("最后更新者用户名") @@ -86,4 +93,66 @@ public class CustomersettleRequestMainExcelVO { @ExcelProperty("直接生成记录") private String directCreateRecord; + //子表字段 + @ExcelProperty("销售订单号") + private String soNumber; + + @ExcelProperty("销售订单行") + private String soLine; + + @ExcelProperty("从货主代码") + private String fromOwnerCode; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String inventoryStatus; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("备注") + private String remarkDetail; + + @ExcelProperty("创建时间") + @ColumnWidth(value = 22) + private LocalDateTime createTimeDetail; + + @ExcelProperty("创建者用户名") + private String creatorDetail; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String uom; + + @ExcelProperty("最后更新时间") + @ColumnWidth(value = 22) + private LocalDateTime updateTimeDetail; + + @ExcelProperty("最后更新者用户名") + private String updaterDetail; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainImportVO.java index e1a3a726..0774f11c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainImportVO.java @@ -8,24 +8,31 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; +import java.time.LocalDateTime; + +import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Data @AllArgsConstructor @NoArgsConstructor @Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 public class CustomersettleRequestMainImportVO { + + @ExcelProperty("单据号") + private String number; //主表字段 @ExcelProperty("发货记录单号") private String deliverRecordNumber; //子表字段 - @ExcelProperty("销售订单号") - private String soNumber; - - @ExcelProperty("销售订单行") - private String soLine; +// @ExcelProperty("销售订单号") +// private String soNumber; +// +// @ExcelProperty("销售订单行") +// private String soLine; @ExcelProperty("物品代码") private String itemCode; @@ -36,4 +43,8 @@ public class CustomersettleRequestMainImportVO { @ExcelProperty("批次") private String batch; + @ExcelProperty("截止时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime dueTime; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainPageReqVO.java index 38c7c0a4..0e7bf7b9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customersettleRequest/vo/CustomersettleRequestMainPageReqVO.java @@ -82,4 +82,9 @@ public class CustomersettleRequestMainPageReqVO extends PageParam { @Schema(description = "直接生成记录") private String directCreateRecord; + @Schema(description = "入库库存状态范围") + private String inInventoryStatus; + + @Schema(description = "出库库存状态范围") + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/DeliverJobMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/DeliverJobMainController.java index 0af4f958..6a0e533e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/DeliverJobMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/DeliverJobMainController.java @@ -151,17 +151,6 @@ public class DeliverJobMainController { mapDropDown.put(26, locationType); mapDropDown.put(27, locationType); String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); - mapDropDown.put(35, trueFalse); - mapDropDown.put(36, trueFalse); - mapDropDown.put(37, trueFalse); - mapDropDown.put(38, trueFalse); - mapDropDown.put(39, trueFalse); - mapDropDown.put(40, trueFalse); - mapDropDown.put(41, trueFalse); - mapDropDown.put(42, trueFalse); - mapDropDown.put(43, trueFalse); - mapDropDown.put(44, trueFalse); - mapDropDown.put(45, trueFalse); String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); mapDropDown.put(50, inventoryStatus); String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobMainExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobMainExportReqVO.java index b4c94553..36825eeb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobMainExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverJob/vo/DeliverJobMainExportReqVO.java @@ -157,9 +157,4 @@ public class DeliverJobMainExportReqVO { @Schema(description = "允许修改箱码") private String allowModifyPackingNumber; - @Schema(description = "入库库存状态范围") - private String inInventoryStatuses; - - @Schema(description = "出库库存状态范围") - private String outInventoryStatuses; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainBaseVO.java index 9066ab42..f8f0d0e8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainBaseVO.java @@ -115,4 +115,9 @@ public class DeliverRequestMainBaseVO { @Schema(description = "直接生成记录") private String directCreateRecord; + @Schema(description = "入库库存状态范围") + private String inInventoryStatus; + + @Schema(description = "出库库存状态范围") + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainPageReqVO.java index 1baeb137..0c25f4c2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRequest/vo/DeliverRequestMainPageReqVO.java @@ -106,4 +106,9 @@ public class DeliverRequestMainPageReqVO extends PageParam { @Schema(description = "直接生成记录") private String directCreateRecord; + @Schema(description = "入库库存状态范围") + private String inInventoryStatus; + + @Schema(description = "出库库存状态范围") + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnJob/CustomerreturnJobMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnJob/CustomerreturnJobMainConvert.java index 973df9ef..7be51163 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnJob/CustomerreturnJobMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnJob/CustomerreturnJobMainConvert.java @@ -8,8 +8,11 @@ import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainC import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainExcelVO; import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainRespVO; import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobDetailDO; import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobMainDO; @@ -36,4 +39,17 @@ public interface CustomerreturnJobMainConvert { List convertList02(List list); CustomerreturnJobMainDO convert(CustomerreturnRequestMainDO mainDO); + + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + @Mapping(source = "detailDO.remark", target = "remarkDetail"), + @Mapping(source = "detailDO.createTime", target = "createtimeDetail"), + @Mapping(source = "detailDO.creator", target = "creatorDetail"), + }) + CustomerreturnJobMainExcelVO convert(CustomerreturnJobMainDO mainDO, CustomerreturnJobDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRecord/CustomersettleRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRecord/CustomersettleRecordDetailConvert.java index fb44bb20..09f5f074 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRecord/CustomersettleRecordDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRecord/CustomersettleRecordDetailConvert.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecor import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordDetailExcelVO; import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordDetailRespVO; import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.customersettleRecord.CustomersettleRecordMainDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.customersettleRecord.CustomersettleRecordDetailDO; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRecord/CustomersettleRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRecord/CustomersettleRecordMainConvert.java index 09c656d4..03fb9b27 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRecord/CustomersettleRecordMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRecord/CustomersettleRecordMainConvert.java @@ -8,7 +8,10 @@ import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecor import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordMainExcelVO; import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordMainRespVO; import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.customersettleRecord.CustomersettleRecordDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.customersettleRecord.CustomersettleRecordMainDO; @@ -33,5 +36,19 @@ public interface CustomersettleRecordMainConvert { PageResult convertPage(PageResult page); List convertList02(List list); - + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.code", target = "code"), + @Mapping(source = "mainDO.interfaceType", target = "interfaceType"), + @Mapping(source = "detailDO.remark", target = "remarkDetail"), + @Mapping(source = "detailDO.createTime", target = "createTimeDetail"), + @Mapping(source = "detailDO.creator", target = "creatorDetail"), + @Mapping(source = "detailDO.code", target = "codeDetail"), + @Mapping(source = "detailDO.interfaceType", target = "interfaceTypeDetail"), + @Mapping(source = "detailDO.siteId", target = "siteId"), + }) + CustomersettleRecordMainExcelVO convert(CustomersettleRecordMainDO mainDO, CustomersettleRecordDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRequest/CustomersettleRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRequest/CustomersettleRequestDetailConvert.java index bb0f1be1..337b54c7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRequest/CustomersettleRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRequest/CustomersettleRequestDetailConvert.java @@ -44,6 +44,9 @@ public interface CustomersettleRequestDetailConvert { CustomersettleRequestDetailExcelVO convert(CustomersettleRequestMainDO mainDO, CustomersettleRequestDetailDO detailDO); + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) CustomersettleRequestImportErrorVO convert(CustomersettleRequestMainCreateReqVO mainVo, CustomersettleRequestDetailCreateReqVO detailVo); CustomersettleRequestDetailCreateReqVO convert1(CustomersettleRequestDetailDO detailDO); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRequest/CustomersettleRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRequest/CustomersettleRequestMainConvert.java index 244cb444..5d962f7e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRequest/CustomersettleRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customersettleRequest/CustomersettleRequestMainConvert.java @@ -4,11 +4,11 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainCreateReqVO; -import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainExcelVO; -import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainRespVO; -import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestMainUpdateReqVO; +import com.win.module.wms.controller.customersettleRequest.vo.*; +import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestMainDO; @@ -34,4 +34,22 @@ public interface CustomersettleRequestMainConvert { List convertList02(List list); + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + }) + CustomersettleRequestImportErrorVO convert(CustomersettleRequestMainCreateReqVO mainDO, CustomersettleRequestDetailDO detailDO); + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + @Mapping(source = "detailDO.remark", target = "remarkDetail"), + @Mapping(source = "detailDO.createTime", target = "createTimeDetail"), + @Mapping(source = "detailDO.creator", target = "creatorDetail"), + @Mapping(source = "detailDO.updateTime", target = "updateTimeDetail"), + @Mapping(source = "detailDO.updater", target = "updaterDetail"), + }) + CustomersettleRequestMainExcelVO convert(CustomersettleRequestMainDO mainDO, CustomersettleRequestDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreceiptRequest/CustomerreceiptRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreceiptRequest/CustomerreceiptRequestMainDO.java index 43efedbd..96d9351a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreceiptRequest/CustomerreceiptRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreceiptRequest/CustomerreceiptRequestMainDO.java @@ -155,5 +155,13 @@ public class CustomerreceiptRequestMainDO extends BaseDO { * 直接生成记录 */ private String directCreateRecord; + /** + * 入库库存状态范围 + */ + private String inInventoryStatus; + /** + * 出库库存状态范围 + */ + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnJob/CustomerreturnJobMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnJob/CustomerreturnJobMainDO.java index 7b3ad5a4..89d268cf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnJob/CustomerreturnJobMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnJob/CustomerreturnJobMainDO.java @@ -243,5 +243,12 @@ public class CustomerreturnJobMainDO extends BaseDO { * 允许修改箱码 */ private String allowModifyPackingNumber; - + /** + * 入库库存状态范围 + */ + private String inInventoryStatus; + /** + * 出库库存状态范围 + */ + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java index 23368e66..02d7b40e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java @@ -30,7 +30,6 @@ public class CustomerreturnRequestDetailDO extends BaseDO { /** * 销售订单号 */ - @NotBlank private String soNumber; /** * 销售订单行 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java index 8fbdc55c..288d2585 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java @@ -1,5 +1,6 @@ package com.win.module.wms.dal.dataobject.customerreturnRequest; +import com.sun.xml.bind.v2.TODO; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -178,5 +179,12 @@ public class CustomerreturnRequestMainDO extends BaseDO { */ @NotBlank private String directCreateRecord; - + /** + * 入库库存状态范围 + */ + private String inInventoryStatus; + /** + * 出库库存状态范围 + */ + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRecord/CustomersettleRecordMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRecord/CustomersettleRecordMainDO.java index ed78eef9..5a1f57fa 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRecord/CustomersettleRecordMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRecord/CustomersettleRecordMainDO.java @@ -1,5 +1,6 @@ package com.win.module.wms.dal.dataobject.customersettleRecord; +import com.sun.xml.bind.v2.TODO; import lombok.*; import java.util.*; import java.time.LocalDateTime; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestDetailDO.java index b1631a69..96b833a8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestDetailDO.java @@ -1,5 +1,6 @@ package com.win.module.wms.dal.dataobject.customersettleRequest; +import com.sun.xml.bind.v2.TODO; import lombok.*; import java.util.*; import java.time.LocalDateTime; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestMainDO.java index 04b20f4d..d2fba13d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customersettleRequest/CustomersettleRequestMainDO.java @@ -1,5 +1,6 @@ package com.win.module.wms.dal.dataobject.customersettleRequest; +import com.sun.xml.bind.v2.TODO; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -41,12 +42,10 @@ public class CustomersettleRequestMainDO extends BaseDO { /** * 客户代码 */ - @NotBlank private String customerCode; /** * 从仓库代码 */ - @NotBlank private String fromWarehouseCode; /** * 从库位类型范围 @@ -96,14 +95,12 @@ public class CustomersettleRequestMainDO extends BaseDO { /** * 部门 */ - @NotBlank private String departmentCode; /** * 状态 * * 枚举 {@link TODO request_status 对应的类} */ - @NotBlank private String status; /** * 并发乐观锁 @@ -120,22 +117,25 @@ public class CustomersettleRequestMainDO extends BaseDO { /** * 自动提交 */ - @NotBlank private String autoCommit; /** * 自动通过 */ - @NotBlank private String autoAgree; /** * 自动执行 */ - @NotBlank private String autoExecute; /** * 直接生成记录 */ - @NotBlank private String directCreateRecord; - + /** + * 入库库存状态范围 + */ + private String inInventoryStatus; + /** + * 出库库存状态范围 + */ + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java index c646d879..ff639df9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestMainDO.java @@ -169,5 +169,13 @@ public class DeliverRequestMainDO extends BaseDO { * 直接生成记录 */ private String directCreateRecord; + /** + * 入库库存状态范围 + */ + private String inInventoryStatus; + /** + * 出库库存状态范围 + */ + private String outInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreceiptRequest/CustomerreceiptRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreceiptRequest/CustomerreceiptRequestMainMapper.java index bdde64d3..6d226be1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreceiptRequest/CustomerreceiptRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreceiptRequest/CustomerreceiptRequestMainMapper.java @@ -50,6 +50,8 @@ public interface CustomerreceiptRequestMainMapper extends BaseMapperX selectSenior(CustomConditions conditions) { @@ -85,6 +87,8 @@ public interface CustomerreceiptRequestMainMapper extends BaseMapperX selectSenior(CustomConditions conditions) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestDetailMapper.java index fade2384..e2477e06 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestDetailMapper.java @@ -23,7 +23,7 @@ public interface CustomerreturnRequestDetailMapper extends BaseMapperX selectPage(CustomerreturnRequestDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .eq(CustomerreturnRequestDetailDO::getMasterId, reqVO.getMasterId()) + .eqIfPresent(CustomerreturnRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(CustomerreturnRequestDetailDO::getSoNumber, reqVO.getSoNumber()) .eqIfPresent(CustomerreturnRequestDetailDO::getSoLine, reqVO.getSoLine()) .eqIfPresent(CustomerreturnRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java index 7193bab9..d18c18b6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java @@ -53,6 +53,8 @@ public interface CustomerreturnRequestMainMapper extends BaseMapperX selectSenior(CustomConditions conditions) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRecord/CustomersettleRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRecord/CustomersettleRecordDetailMapper.java index a11f6fca..6da5326f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRecord/CustomersettleRecordDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRecord/CustomersettleRecordDetailMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordDetailExportReqVO; import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordDetailPageReqVO; import com.win.module.wms.dal.dataobject.customersettleRecord.CustomersettleRecordDetailDO; +import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestDetailDO; import org.apache.ibatis.annotations.Mapper; /** @@ -84,4 +85,8 @@ public interface CustomersettleRecordDetailMapper extends BaseMapperX selectList(Long masterId){ + return selectList(new LambdaQueryWrapperX() + .eq(CustomersettleRecordDetailDO::getMasterId, masterId)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRecord/CustomersettleRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRecord/CustomersettleRecordMainMapper.java index 4593c024..0d6d131b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRecord/CustomersettleRecordMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRecord/CustomersettleRecordMainMapper.java @@ -75,5 +75,7 @@ public interface CustomersettleRecordMainMapper extends BaseMapperX selectSeniorList(CustomConditions conditions){ + return selectList(QueryWrapperUtils.structure(conditions)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRequest/CustomersettleRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRequest/CustomersettleRequestDetailMapper.java index a9e4a25e..864d59d1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRequest/CustomersettleRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRequest/CustomersettleRequestDetailMapper.java @@ -22,6 +22,7 @@ public interface CustomersettleRequestDetailMapper extends BaseMapperX selectPage(CustomersettleRequestDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(CustomersettleRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(CustomersettleRequestDetailDO::getSoNumber, reqVO.getSoNumber()) .eqIfPresent(CustomersettleRequestDetailDO::getSoLine, reqVO.getSoLine()) .eqIfPresent(CustomersettleRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode()) @@ -49,6 +50,7 @@ public interface CustomersettleRequestDetailMapper extends BaseMapperX selectList(CustomersettleRequestDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() + .eqIfPresent(CustomersettleRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(CustomersettleRequestDetailDO::getSoNumber, reqVO.getSoNumber()) .eqIfPresent(CustomersettleRequestDetailDO::getSoLine, reqVO.getSoLine()) .eqIfPresent(CustomersettleRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode()) @@ -72,4 +74,8 @@ public interface CustomersettleRequestDetailMapper extends BaseMapperX selectList(Long masterId){ + return selectList(new LambdaQueryWrapperX() + .eq(CustomersettleRequestDetailDO::getMasterId, masterId)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRequest/CustomersettleRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRequest/CustomersettleRequestMainMapper.java index ee58c854..e264678f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRequest/CustomersettleRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customersettleRequest/CustomersettleRequestMainMapper.java @@ -44,6 +44,8 @@ public interface CustomersettleRequestMainMapper extends BaseMapperX selectSenior(CustomConditions conditions) { @@ -79,4 +81,7 @@ public interface CustomersettleRequestMainMapper extends BaseMapperX selectSeniorList(CustomConditions conditions){ + return selectList(QueryWrapperUtils.structure(conditions)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverJob/DeliverJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverJob/DeliverJobMainMapper.java index 852d9c14..988cd2f0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverJob/DeliverJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverJob/DeliverJobMainMapper.java @@ -125,8 +125,6 @@ public interface DeliverJobMainMapper extends BaseMapperX { .eqIfPresent(DeliverJobMainDO::getAllowPartialComplete, reqVO.getAllowPartialComplete()) .eqIfPresent(DeliverJobMainDO::getAllowModifyBatch, reqVO.getAllowModifyBatch()) .eqIfPresent(DeliverJobMainDO::getAllowModifyPackingNumber, reqVO.getAllowModifyPackingNumber()) - .eqIfPresent(DeliverJobMainDO::getInInventoryStatuses, reqVO.getInInventoryStatuses()) - .eqIfPresent(DeliverJobMainDO::getOutInventoryStatuses, reqVO.getOutInventoryStatuses()) .orderByDesc(DeliverJobMainDO::getId)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestMainMapper.java index a4c3e014..0cd4e435 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestMainMapper.java @@ -52,6 +52,8 @@ public interface DeliverRequestMainMapper extends BaseMapperX selectSenior(CustomConditions conditions) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java index 83a52d07..9f47450b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java @@ -101,6 +101,8 @@ public class CustomerreceiptRequestMainServiceImpl implements CustomerreceiptReq customerreceiptRequestMain.setToLocationTypes(businesstypeDO.getInLocationTypes()); customerreceiptRequestMain.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); customerreceiptRequestMain.setToAreaCodes(businesstypeDO.getInAreaCodes()); + customerreceiptRequestMain.setInInventoryStatus(businesstypeDO.getInInventoryStatuses()); + customerreceiptRequestMain.setOutInventoryStatus(businesstypeDO.getOutInventoryStatuses()); customerreceiptRequestMain.setRequestTime(LocalDateTime.now()); //调用自动执行方法 if(RequestStatusEnum.HANDLING.getCode().equals(customerreceiptRequestMain.getStatus())) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainServiceImpl.java index 74ac3289..57aaf1f9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainServiceImpl.java @@ -14,8 +14,6 @@ import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainE import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainPageReqVO; import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainUpdateReqVO; import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobDetailUpdateReqVO; -import com.win.module.wms.controller.customerreturnJob.vo.CustomerreturnJobMainUpdateReqVO; -import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailUpdateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.location.LocationDO; @@ -25,7 +23,6 @@ import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobMain import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordDetailDO; import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordMainDO; import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO; -import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO; import com.win.module.wms.dal.dataobject.sale.SaleDetailDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.customerreturnRecord.CustomerreturnRecordDetailMapper; @@ -43,7 +40,6 @@ import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.validation.Valid; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -52,7 +48,6 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; -import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobMainDO; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.convert.customerreturnJob.CustomerreturnJobMainConvert; @@ -272,62 +267,68 @@ public class CustomerreturnJobMainServiceImpl implements CustomerreturnJobMainSe //库存事务 List transactionCreateReqVOList = new ArrayList<>(); for(CustomerreturnJobDetailDO customerreturnJobDetailDO : subList) { - CustomerreturnJobDetailUpdateReqVO customerreturnJobDetailUpdateReqVOTemp = null; - for (CustomerreturnJobDetailUpdateReqVO customerreturnJobDetailUpdateReqVO : customerreturnJobDetailUpdateReqVOList) { - if (customerreturnJobDetailDO.getId().equals(customerreturnJobDetailUpdateReqVO.getId())) { - customerreturnJobDetailUpdateReqVOTemp = customerreturnJobDetailUpdateReqVO; - break; +// CustomerreturnJobDetailUpdateReqVO customerreturnJobDetailUpdateReqVOTemp = null; +// for (CustomerreturnJobDetailUpdateReqVO customerreturnJobDetailUpdateReqVO : customerreturnJobDetailUpdateReqVOList) { +// if (customerreturnJobDetailDO.getId().equals(customerreturnJobDetailUpdateReqVO.getId())) { +// customerreturnJobDetailUpdateReqVOTemp = customerreturnJobDetailUpdateReqVO; +// break; +// } +// } + customerreturnJobDetailUpdateReqVOList.forEach(DetailUpdateItem -> { + if (DetailUpdateItem.getId().equals(customerreturnJobDetailDO.getId())) { + List> recordList = DetailUpdateItem.getRecordList(); + recordList.forEach(recordListItem -> { + CustomerreturnRecordDetailDO customerreturnRecordDetailDO = new CustomerreturnRecordDetailDO(); + BeanUtils.copyProperties(customerreturnJobDetailDO, customerreturnRecordDetailDO); + customerreturnRecordDetailDO.setMasterId(customerreturnRecordMainDO.getId().toString()); + customerreturnRecordDetailDO.setNumber(number); + customerreturnRecordDetailDO.setJobDetailId(String.valueOf(customerreturnJobDetailDO.getId())); + customerreturnRecordDetailDO.setFromBatch(customerreturnJobDetailDO.getBatch()); + customerreturnRecordDetailDO.setQty(new BigDecimal(recordListItem.get("handleQty").toString())); + customerreturnRecordDetailDO.setToBatch(recordListItem.get("toBatch")==null?"":recordListItem.get("toBatch")); + customerreturnRecordDetailDO.setToPackingNumber(recordListItem.get("toPackingNumber")==null?"":recordListItem.get("toPackingNumber")); + customerreturnRecordDetailDO.setToContainerNumber(recordListItem.get("toContainerNumber")==null?"":recordListItem.get("toContainerNumber")); + customerreturnRecordDetailDO.setInventoryStatus(recordListItem.get("toInventoryStatus").toString()); + customerreturnRecordDetailDO.setFromPackingNumber(customerreturnJobDetailDO.getPackingNumber()); + customerreturnRecordDetailDO.setFromContainerNumber(customerreturnJobDetailDO.getContainerNumber()); + customerreturnRecordDetailDO.setFromLocationCode(customerreturnJobDetailDO.getFromLocationCode()); + LocationDO locationDOFrom = locationService.selectLocation(customerreturnJobDetailDO.getFromLocationCode()); + if(locationDOFrom != null){ + customerreturnRecordDetailDO.setFromAreaCode(locationDOFrom.getAreaCode()); + customerreturnRecordDetailDO.setFromLocationGroupCode(locationDOFrom.getLocationGroupCode()); + } + customerreturnRecordDetailDO.setToLocationCode(recordListItem.get("toLocationCode").toString()); + LocationDO locationDO = locationService.selectLocation(recordListItem.get("toLocationCode").toString()); + if(locationDO != null){ + customerreturnRecordDetailDO.setToAreaCode(locationDO.getAreaCode()); + customerreturnRecordDetailDO.setToLocationGroupCode(locationDO.getLocationGroupCode()); + } + customerreturnRecordDetailDO.setId(null); + customerreturnRecordDetailDO.setCreator(null); + customerreturnRecordDetailDO.setCreateTime(null); + customerreturnRecordDetailDO.setUpdater(null); + customerreturnRecordDetailDO.setUpdateTime(null); + customerreturnRecordDetailDOList.add(customerreturnRecordDetailDO); + //添加库存事务list + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(customerreturnRecordDetailDO, transactionCreateReqVO); + //增加业务类型 + transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setBusinessType(customerreturnRecordMainDO.getBusinessType()); + transactionCreateReqVO.setLocationCode(customerreturnJobDetailDO.getFromLocationCode()); + transactionCreateReqVO.setOwnerCode(customerreturnRecordDetailDO.getFromOwnerCode()); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setBatch(customerreturnRecordDetailDO.getFromBatch()); + transactionCreateReqVO.setPackingNumber(customerreturnRecordDetailDO.getFromPackingNumber()); + transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVO.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVO); + }); } - } - CustomerreturnRecordDetailDO customerreturnRecordDetailDO = new CustomerreturnRecordDetailDO(); - BeanUtils.copyProperties(customerreturnJobDetailDO, customerreturnRecordDetailDO); - customerreturnRecordDetailDO.setMasterId(customerreturnRecordMainDO.getId().toString()); - customerreturnRecordDetailDO.setNumber(number); - customerreturnRecordDetailDO.setJobDetailId(String.valueOf(customerreturnJobDetailDO.getId())); - customerreturnRecordDetailDO.setFromBatch(customerreturnJobDetailDO.getBatch()); - customerreturnRecordDetailDO.setToBatch(customerreturnJobDetailUpdateReqVOTemp.getToBatch()); - customerreturnRecordDetailDO.setFromPackingNumber(customerreturnJobDetailDO.getPackingNumber()); - customerreturnRecordDetailDO.setToPackingNumber(customerreturnJobDetailUpdateReqVOTemp.getToPackingNumber()); - customerreturnRecordDetailDO.setFromContainerNumber(customerreturnJobDetailDO.getContainerNumber()); - customerreturnRecordDetailDO.setToContainerNumber(customerreturnJobDetailUpdateReqVOTemp.getToContainerNumber()); - customerreturnRecordDetailDO.setFromLocationCode(customerreturnJobDetailDO.getFromLocationCode()); - LocationDO FromLocationDO = locationService.selectLocation(customerreturnJobDetailDO.getFromLocationCode()); - if(FromLocationDO != null){ - customerreturnRecordDetailDO.setFromAreaCode(FromLocationDO.getAreaCode()); - customerreturnRecordDetailDO.setFromLocationGroupCode(FromLocationDO.getLocationGroupCode()); - } - customerreturnRecordDetailDO.setToLocationCode(customerreturnJobDetailUpdateReqVOTemp.getToLocationCode()); - LocationDO toLocationDO = locationService.selectLocation(customerreturnJobDetailDO.getToLocationCode()); - if(toLocationDO != null){ - customerreturnRecordDetailDO.setToAreaCode(FromLocationDO.getAreaCode()); - customerreturnRecordDetailDO.setToLocationGroupCode(FromLocationDO.getLocationGroupCode()); - } - customerreturnRecordDetailDO.setInventoryStatus(customerreturnJobDetailUpdateReqVOTemp.getToInventoryStatus()); - customerreturnRecordDetailDO.setQty(customerreturnJobDetailUpdateReqVOTemp.getHandleQty()); - customerreturnRecordDetailDO.setId(null); - customerreturnRecordDetailDO.setCreator(null); - customerreturnRecordDetailDO.setCreateTime(null); - customerreturnRecordDetailDO.setUpdater(null); - customerreturnRecordDetailDO.setUpdateTime(null); - customerreturnRecordDetailDOList.add(customerreturnRecordDetailDO); - //添加库存事务list - TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); - BeanUtils.copyProperties(customerreturnRecordDetailDO, transactionCreateReqVO); - //增加业务类型 - transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); - TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); - transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); - transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); - transactionCreateReqVO.setBusinessType(customerreturnRecordMainDO.getBusinessType()); - transactionCreateReqVO.setLocationCode(customerreturnJobDetailDO.getFromLocationCode()); - transactionCreateReqVO.setOwnerCode(customerreturnRecordDetailDO.getFromOwnerCode()); - transactionCreateReqVO.setRecordNumber(number); - transactionCreateReqVO.setBatch(customerreturnRecordDetailDO.getFromBatch()); - transactionCreateReqVO.setPackingNumber(customerreturnRecordDetailDO.getFromPackingNumber()); - transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); - transactionCreateReqVO.setId(null); - transactionCreateReqVOList.add(transactionCreateReqVO); - + }); } customerreturnRecordDetailMapper.insertBatch(customerreturnRecordDetailDOList); List typeList = new ArrayList<>(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java index bed2f654..051cdf46 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java @@ -323,6 +323,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque customerreturnJobMainDO.setUpdateTime(null); // 获取任务单据设置 JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("CustomerRejectJob"); + customerreturnJobMainDO.setRequestDueTime(mainDO.getDueTime()); customerreturnJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); customerreturnJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); customerreturnJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); @@ -336,6 +337,8 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque //增加业务类型 BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectJob"); customerreturnJobMainDO.setBusinessType(businesstypeDO.getCode()); + customerreturnJobMainDO.setInInventoryStatus(businesstypeDO.getInInventoryStatuses()); + customerreturnJobMainDO.setOutInventoryStatus(businesstypeDO.getOutInventoryStatuses()); customerreturnJobMainMapper.insert(customerreturnJobMainDO); List expectinCreateReqVOList = new ArrayList<>(); List customerreturnJobDetailDOList = new ArrayList<>(); @@ -565,6 +568,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque //校验发货记录并赋值 CustomerreturnRequestMainDO customerreturnRequestMainDO = this.validateDeliverRecord(mainDo); mainDo.setDeliverPlanNumber(customerreturnRequestMainDO.getDeliverPlanNumber()); + mainDo.setRequestTime(LocalDateTime.now()); //校验业务类型和申请设置并赋值 validateRequestsettingAndBusinesstype(mainDo); } @@ -631,6 +635,8 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); + mainDo.setInInventoryStatus(businesstypeDO.getInInventoryStatuses()); + mainDo.setOutInventoryStatus(businesstypeDO.getOutInventoryStatuses()); } } @@ -643,6 +649,7 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque private void validateDeliverRecordDetail(CustomerreturnRequestMainDO mainDo,CustomerreturnRequestDetailDO detailDO){ List deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(mainDo.getDeliverRecordNumber()); if(deliverRecordDetailDO != null && deliverRecordDetailDO.size() != 0){ + Boolean result = false; for (DeliverRecordDetailDO deliver : deliverRecordDetailDO) { if ( // deliver.getSoNumber().equals(detailDO.getSoNumber()) && @@ -653,13 +660,15 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque { detailDO.setQty(deliver.getQty()); detailDO.setUom(deliver.getUom()); - } else { - throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单" - + mainDo.getDeliverRecordNumber() + "中"); + result = true; + } + } + if(!result){ + throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单" + + mainDo.getDeliverRecordNumber() + "中"); // throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"销售订单号" + detailDO.getSoNumber() + "销售订单行" + detailDO.getSoLine() // + "物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单" // + createReqVO.getDeliverRecordNumber() + "中"); - } } } else { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordDetailService.java index 7d18ecce..6a878758 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordDetailService.java @@ -79,4 +79,5 @@ public interface CustomersettleRecordDetailService { */ List getCustomersettleRecordDetailList(CustomersettleRecordDetailExportReqVO exportReqVO); + List selectList(Long masterId); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordDetailServiceImpl.java index a28702f7..94b70141 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordDetailServiceImpl.java @@ -5,6 +5,7 @@ import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecor import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordDetailExportReqVO; import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordDetailPageReqVO; import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestDetailDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -87,4 +88,8 @@ public class CustomersettleRecordDetailServiceImpl implements CustomersettleReco return customersettleRecordDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return customersettleRecordDetailMapper.selectList(masterId); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordMainService.java index c9686f1f..6619fe58 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordMainService.java @@ -10,6 +10,7 @@ import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecor import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordMainUpdateReqVO; import com.win.module.wms.dal.dataobject.customersettleRecord.CustomersettleRecordMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestMainDO; /** * 客户结算记录主 Service 接口 @@ -79,4 +80,5 @@ public interface CustomersettleRecordMainService { */ List getCustomersettleRecordMainList(CustomersettleRecordMainExportReqVO exportReqVO); + List getCustomersettleRecordMainList(CustomConditions conditions); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordMainServiceImpl.java index 3120581e..172f1679 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRecord/CustomersettleRecordMainServiceImpl.java @@ -87,4 +87,9 @@ public class CustomersettleRecordMainServiceImpl implements CustomersettleRecord return customersettleRecordMainMapper.selectList(exportReqVO); } + @Override + public List getCustomersettleRecordMainList(CustomConditions conditions) { + return customersettleRecordMainMapper.selectSeniorList(conditions); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestDetailService.java index 6a63418a..2d20d7b1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestDetailService.java @@ -79,4 +79,5 @@ public interface CustomersettleRequestDetailService { */ List getCustomersettleRequestDetailList(CustomersettleRequestDetailExportReqVO exportReqVO); + List selectList(Long masterId); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestDetailServiceImpl.java index 71b33137..f2bdd662 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestDetailServiceImpl.java @@ -1,10 +1,17 @@ package com.win.module.wms.service.customersettleRequest; +import cn.hutool.core.exceptions.UtilException; import com.win.framework.common.pojo.CustomConditions; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestDetailCreateReqVO; import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestDetailExportReqVO; import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestDetailPageReqVO; import com.win.module.wms.controller.customersettleRequest.vo.CustomersettleRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestMainDO; +import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO; +import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO; +import com.win.module.wms.service.deliverRecord.DeliverRecordMainService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -31,12 +38,17 @@ public class CustomersettleRequestDetailServiceImpl implements CustomersettleReq @Resource private CustomersettleRequestDetailMapper customersettleRequestDetailMapper; + @Resource + private TrendsApi trendsApi; + @Resource + private DeliverRecordMainService deliverRecordMainService; @Override public Long createCustomersettleRequestDetail(CustomersettleRequestDetailCreateReqVO createReqVO) { // 插入 CustomersettleRequestDetailDO customersettleRequestDetail = CustomersettleRequestDetailConvert.INSTANCE.convert(createReqVO); customersettleRequestDetailMapper.insert(customersettleRequestDetail); + trendsApi.createTrends(customersettleRequestDetail.getId(), "customersettleRequestDetail", customersettleRequestDetail.toString(), TrendsTypeEnum.CREATE); // 返回 return customersettleRequestDetail.getId(); } @@ -47,21 +59,24 @@ public class CustomersettleRequestDetailServiceImpl implements CustomersettleReq validateCustomersettleRequestDetailExists(updateReqVO.getId()); // 更新 CustomersettleRequestDetailDO updateObj = CustomersettleRequestDetailConvert.INSTANCE.convert(updateReqVO); + trendsApi.createTrends(updateObj.getId(), "customersettleRequestDetail", updateObj.toString(), TrendsTypeEnum.UPDATE); customersettleRequestDetailMapper.updateById(updateObj); } @Override public void deleteCustomersettleRequestDetail(Long id) { // 校验存在 - validateCustomersettleRequestDetailExists(id); + CustomersettleRequestDetailDO customersettleRequestDetailDO = validateCustomersettleRequestDetailExists(id); + trendsApi.createTrends(id, "customersettleRequestDetail", customersettleRequestDetailDO.toString(), TrendsTypeEnum.DELETE); // 删除 customersettleRequestDetailMapper.deleteById(id); } - private void validateCustomersettleRequestDetailExists(Long id) { - if (customersettleRequestDetailMapper.selectById(id) == null) { + private CustomersettleRequestDetailDO validateCustomersettleRequestDetailExists(Long id) { + CustomersettleRequestDetailDO customersettleRequestDetailDO = customersettleRequestDetailMapper.selectById(id); + if (customersettleRequestDetailDO == null) { throw exception(CUSTOMERSETTLE_REQUEST_DETAIL_NOT_EXISTS); - } + }return customersettleRequestDetailDO; } @Override @@ -87,4 +102,8 @@ public class CustomersettleRequestDetailServiceImpl implements CustomersettleReq return customersettleRequestDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return customersettleRequestDetailMapper.selectList(masterId); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainService.java index c90d8c7d..ee032140 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainService.java @@ -78,7 +78,49 @@ public interface CustomersettleRequestMainService { */ List getCustomersettleRequestMainList(CustomersettleRequestMainExportReqVO exportReqVO); + /** + * 关闭 + * @param id + * @return + */ + public Integer closeCustomersettleRequestMain(Long id); + + /** + * 重新添加 + * @param id + * @return + */ + public Integer reAddCustomersettleRequestMain(Long id); + + /** + * 提交 + * @param id + * @return + */ + public Integer submitCustomersettleRequestMain(Long id); + + /** + * 审批通过 + * @param id + * @return + */ + public Integer agreeCustomersettleRequestMain(Long id); + + /** + * 执行 + * @param id + * @return + */ + public Integer handleCustomersettleRequestMain(Long id); + + /** + * + * @param id + * @return + */ + public Integer abortCustomersettleRequestMain(Long id); - public List customersettleRequestMainService(List datas, Integer mode, boolean updatePart); + public List customersettleRequestMainImport(List datas, Integer mode, boolean updatePart); + List getCustomersettleRequestMainList(CustomConditions conditions); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainServiceImpl.java index e3936c3b..45d4b976 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customersettleRequest/CustomersettleRequestMainServiceImpl.java @@ -2,23 +2,46 @@ package com.win.module.wms.service.customersettleRequest; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.exceptions.UtilException; +import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.util.validation.ValidationUtils; import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordDetailCreateReqVO; +import com.win.module.wms.controller.customersettleRecord.vo.CustomersettleRecordMainCreateReqVO; import com.win.module.wms.controller.customersettleRequest.vo.*; +import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailCreateReqVO; +import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainCreateReqVO; +import com.win.module.wms.convert.customersettleRecord.CustomersettleRecordDetailConvert; +import com.win.module.wms.convert.customersettleRecord.CustomersettleRecordMainConvert; import com.win.module.wms.convert.customersettleRequest.CustomersettleRequestDetailConvert; +import com.win.module.wms.convert.deliverRequest.DeliverRequestDetailConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO; +import com.win.module.wms.dal.dataobject.customersettleRecord.CustomersettleRecordMainDO; import com.win.module.wms.dal.dataobject.customersettleRequest.CustomersettleRequestDetailDO; import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO; import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO; +import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO; +import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.mysql.customersettleRecord.CustomersettleRecordDetailMapper; +import com.win.module.wms.dal.mysql.customersettleRecord.CustomersettleRecordMainMapper; import com.win.module.wms.dal.mysql.customersettleRequest.CustomersettleRequestDetailMapper; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; +import com.win.module.wms.service.customersettleRecord.CustomersettleRecordMainService; import com.win.module.wms.service.deliverRecord.DeliverRecordMainService; import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.util.JobUtils; +import org.checkerframework.checker.units.qual.C; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.validation.Validator; @@ -53,27 +76,37 @@ public class CustomersettleRequestMainServiceImpl implements CustomersettleReque @Resource private CustomersettleRequestDetailMapper customersettleRequestDetailMapper; + @Resource + private CustomersettleRecordMainMapper customersettleRecordMainMapper; + @Resource + private CustomersettleRecordDetailMapper customersettleRecordDetailMapper; @Resource - private DeliverRecordMainService deliverRecordMainService; + private CustomersettleRecordMainService customersettleRecordMainService; + @Resource + private DeliverRecordMainService deliverRecordMainService; @Resource private RequestsettingService requestsettingService; - @Resource private JobUtils jobUtils; @Resource private Validator validator; - + @Resource + private TrendsApi trendsApi; @Resource private SerialNumberApi serialNumberApi; @Override public Long createCustomersettleRequestMain(CustomersettleRequestMainCreateReqVO createReqVO) { // 插入 - CustomersettleRequestMainDO customersettleRequestMain = CustomersettleRequestMainConvert.INSTANCE.convert(createReqVO); - customersettleRequestMainMapper.insert(customersettleRequestMain); + CustomersettleRequestMainDO customersettleRequestMainDO = validatorToCreate(createReqVO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(customersettleRequestMainDO.getStatus())) { + generateRecord(customersettleRequestMainDO,customersettleRequestDetailMapper.selectList(customersettleRequestMainDO.getId())); + } + trendsApi.createTrends(customersettleRequestMainDO.getId(), "CustomersettleRequest", "增加了客户结算申请", TrendsTypeEnum.CREATE); // 返回 - return customersettleRequestMain.getId(); + return customersettleRequestMainDO.getId(); } @Override @@ -82,6 +115,10 @@ public class CustomersettleRequestMainServiceImpl implements CustomersettleReque validateCustomersettleRequestMainExists(updateReqVO.getId()); // 更新 CustomersettleRequestMainDO updateObj = CustomersettleRequestMainConvert.INSTANCE.convert(updateReqVO); + if(RequestStatusEnum.HANDLING.getCode().equals(updateObj.getStatus())) { + generateRecord(updateObj,customersettleRequestDetailMapper.selectList(updateObj.getId())); + } + trendsApi.createTrends(updateObj.getId(), "CustomersettleRequest", "修改了客户结算申请", TrendsTypeEnum.UPDATE); customersettleRequestMainMapper.updateById(updateObj); } @@ -93,10 +130,12 @@ public class CustomersettleRequestMainServiceImpl implements CustomersettleReque customersettleRequestMainMapper.deleteById(id); } - private void validateCustomersettleRequestMainExists(Long id) { - if (customersettleRequestMainMapper.selectById(id) == null) { + private CustomersettleRequestMainDO validateCustomersettleRequestMainExists(Long id) { + CustomersettleRequestMainDO customersettleRequestMainDO = customersettleRequestMainMapper.selectById(id); + if (customersettleRequestMainDO == null) { throw exception(CUSTOMERSETTLE_REQUEST_MAIN_NOT_EXISTS); } + return customersettleRequestMainDO; } @Override @@ -121,115 +160,366 @@ public class CustomersettleRequestMainServiceImpl implements CustomersettleReque public List getCustomersettleRequestMainList(CustomersettleRequestMainExportReqVO exportReqVO) { return customersettleRequestMainMapper.selectList(exportReqVO); } + //关闭 + @Override + public Integer closeCustomersettleRequestMain(Long id) { + // 校验存在存在下级单据 + CustomersettleRequestMainDO mainDO = validateCustomersettleRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.close(); + if(!flag) { + throw new ServiceException(CUSTOMERSETTLE_REQUEST_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "customersettleRequest", "关闭了客户结算申请", TrendsTypeEnum.UPDATE); + return customersettleRequestMainMapper.updateById(mainDO); + } + + //打开 + @Override + @Transactional + public Integer reAddCustomersettleRequestMain(Long id) { + // 校验存在存在下级单据 + CustomersettleRequestMainDO mainDO = validateCustomersettleRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.reAdd(); + if(!flag) { + throw new ServiceException(CUSTOMERSETTLE_REQUEST_CANNOT_RE_ADD); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "customersettleRequest", "打开了客户结算申请", TrendsTypeEnum.UPDATE); + return customersettleRequestMainMapper.updateById(mainDO); + } + + //提交 + @Transactional + @Override + public Integer submitCustomersettleRequestMain(Long id) { + CustomersettleRequestMainDO mainDO = validateCustomersettleRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(CUSTOMERSETTLE_REQUEST_CANNOT_SUBMIT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateRecord(mainDO, customersettleRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, "deliverRequest", "提交了客户结算申请", TrendsTypeEnum.UPDATE); + return customersettleRequestMainMapper.updateById(mainDO); + } + //审批同意 + @Transactional @Override + public Integer agreeCustomersettleRequestMain(Long id) { + // 校验存在 + CustomersettleRequestMainDO mainDO = validateCustomersettleRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.agree(mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(CUSTOMERSETTLE_REQUEST_CANNOT_AGREE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateRecord(mainDO, customersettleRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, "deliverRequest", "审批同意了客户结算申请", TrendsTypeEnum.UPDATE); + return customersettleRequestMainMapper.updateById(mainDO); + } + + //执行 + @Transactional + @Override + public Integer handleCustomersettleRequestMain(Long id) { + // 校验存在 + CustomersettleRequestMainDO mainDO = validateCustomersettleRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.handle(); + if(!flag) { + throw new ServiceException(CUSTOMERSETTLE_REQUEST_CANNOT_HANDLE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用执行方法 + this.generateRecord(mainDO, customersettleRequestDetailMapper.selectList(mainDO.getId())); + trendsApi.createTrends(id, "deliverRequest", "执行了客户结算申请", TrendsTypeEnum.UPDATE); + return customersettleRequestMainMapper.updateById(mainDO); + } + + //审批拒绝 @Transactional - public List customersettleRequestMainService(List datas, Integer mode, boolean updatePart){ + @Override + public Integer abortCustomersettleRequestMain(Long id) { + // 校验存在 + CustomersettleRequestMainDO mainDO = validateCustomersettleRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.refused(); + if(!flag) { + throw new ServiceException(CUSTOMERSETTLE_REQUEST_CANNOT_ABORT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + trendsApi.createTrends(id, "customersettleRequest", "审批拒绝了客户结算申请", TrendsTypeEnum.UPDATE); + return customersettleRequestMainMapper.updateById(mainDO); + } + + /** + * 生成客户收货记录,不要改动事务传播方式,否则会有事务问题 + * + * @param mainDO 客户收货主 + * @param detailDOList 客户收货子 + */ + private void generateRecord(CustomersettleRequestMainDO mainDO, List detailDOList) { + if ("TRUE".equals(mainDO.getDirectCreateRecord())) { + CustomersettleRecordMainCreateReqVO customersettleRecordMainCreateReqVO = new CustomersettleRecordMainCreateReqVO(); + BeanUtils.copyProperties(mainDO, customersettleRecordMainCreateReqVO); + customersettleRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); + String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_SETTLE_REQUEST.getCode()); + customersettleRecordMainCreateReqVO.setNumber(number); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomersettleRecord"); + customersettleRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); + CustomersettleRecordMainDO convert = CustomersettleRecordMainConvert.INSTANCE.convert(customersettleRecordMainCreateReqVO); + customersettleRecordMainMapper.insert(convert); + for (CustomersettleRequestDetailDO customersettleRequestDetailDO : detailDOList) { + CustomersettleRecordDetailCreateReqVO customersettleRecordDetailCreateReqVO = new CustomersettleRecordDetailCreateReqVO(); + BeanUtils.copyProperties(customersettleRequestDetailDO, customersettleRecordDetailCreateReqVO); + customersettleRecordDetailCreateReqVO.setNumber(number); + customersettleRecordDetailCreateReqVO.setMasterId(convert.getId().toString()); + customersettleRecordDetailMapper.insert(CustomersettleRecordDetailConvert.INSTANCE.convert(customersettleRecordDetailCreateReqVO)); + trendsApi.createTrends(mainDO.getId(), "CustomersettleRecord", "客户结算申请生成客户结算记录", TrendsTypeEnum.CREATE); + } + } + } + + @Override + public List getCustomersettleRequestMainList(CustomConditions conditions) { + return customersettleRequestMainMapper.selectSeniorList(conditions); + } + + @Override + @Transactional + public List customersettleRequestMainImport(List datas, Integer mode, boolean updatePart){ if (CollUtil.isEmpty(datas)) { throw exception(CUSTOMERSETTLE_REQUEST_NOT_EXISTS); } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - String messageMain = ""; - BusinesstypeDO businesstypeDO = null; - //主表校验方法 - try { - DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainService.selectsMainRecordExist(createReqVO.getDeliverRecordNumber()); - createReqVO.setDeliverPlanNumber(deliverRecordMainDO.getDeliverPlanNumber()); - createReqVO.setCustomerCode(deliverRecordMainDO.getCustomerCode()); - createReqVO.setFromWarehouseCode(deliverRecordMainDO.getFromWarehouseCode()); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - createReqVO.setCreateTime(LocalDateTime.now()); - try { - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CustomerRejectRequest"); - if (requestsettingDO != null) { - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - - } - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - try { - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest"); - createReqVO.setBusinessType(businesstypeDO.getCode()); - createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); - createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - try { - ValidationUtils.validate(validator, createReqVO); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_SETTLE_RECORD.getCode()); - createReqVO.setNumber(number); + CustomersettleRequestMainDO mainDO = CustomersettleRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = this.validateCustomersettleRequestMainImport(mainDO); List subList = createReqVO.getSubList(); List subDOList = CustomersettleRequestDetailConvert.INSTANCE.convertList03(subList); - for(CustomersettleRequestDetailDO detailDO : subDOList){ - String messageDetail = ""; - // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList - //子表校验方法 - try { - List deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(createReqVO.getDeliverRecordNumber()); - try{ - for( DeliverRecordDetailDO deliver : deliverRecordDetailDO){ - if(deliver.getSoNumber().equals(detailDO.getSoNumber())&& - deliver.getSoLine().equals(detailDO.getSoLine()) - &&deliver.getItemCode().equals(detailDO.getItemCode())&& - deliver.getBatch().equals(detailDO.getBatch())&& - deliver.getPackingNumber().equals(detailDO.getPackingNumber())){ - detailDO.setQty(deliver.getQty()); - detailDO.setUom(deliver.getUom()); - } - else{ - throw new UtilException("销售订单号"+detailDO.getSoNumber()+"销售订单行"+detailDO.getSoLine() - +"物料代码"+detailDO.getItemCode()+"批次"+detailDO.getBatch()+"箱码"+detailDO.getPackingNumber()+"不在发货记录单" - +createReqVO.getDeliverRecordNumber()+"中"); - } - } - }catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - CustomersettleRequestDetailCreateReqVO purchaseturnRequestDetailCreateReqVO = CustomersettleRequestDetailConvert.INSTANCE.convert1(detailDO); - CustomersettleRequestImportErrorVO importVO = CustomersettleRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseturnRequestDetailCreateReqVO); - if (!messageMain.equals("") || !messageDetail.equals("")) { - importVO.setImportStatus("失败"); + // 是否有错误数据 + boolean flag = true; + for (CustomersettleRequestDetailDO detailDO : subDOList) { + String messageDetail = this.validateCustomersettleRequestDetailImport(mainDO, detailDO); + if(!messageMain.isEmpty() || !messageDetail.isEmpty()) { + CustomersettleRequestImportErrorVO importErrorVO = CustomersettleRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); messageMain = messageMain + messageDetail; - importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); - errorList.add(importVO); - } else { - detailDO.setNumber(createReqVO.getNumber()); - detailDO.setMasterId(createReqVO.getId()); + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; } } - CustomersettleRequestMainDO createobj = CustomersettleRequestMainConvert.INSTANCE.convert(createReqVO); - if (errorList.isEmpty()) { - CustomersettleRequestMainDO existCustomersettleRequestMainDO = customersettleRequestMainMapper.selectByDeliverrecordnumberAndSupplierCode(createReqVO.getDeliverRecordNumber()); - if (existCustomersettleRequestMainDO == null && mode != 3) { - customersettleRequestMainMapper.insert(createobj); - customersettleRequestDetailMapper.insertBatch(subDOList); - } else if (existCustomersettleRequestMainDO != null && mode != 2) { - customersettleRequestMainMapper.updateById(createobj); - customersettleRequestDetailMapper.updateBatch(subDOList); + //写入数据 + if(flag) { + //增加操作记录 + String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_SETTLE_REQUEST.getCode()); + mainDO.setNumber(number); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CustomersettleRequest"); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + mainDO.setStatus(requestStatusState.getState().getCode()); + mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + mainDO.setRequestTime(LocalDateTime.now()); + customersettleRequestMainMapper.insert(mainDO); + trendsApi.createTrends(mainDO.getId(), "customersettleRequestMain", "导入了客户结算申请", TrendsTypeEnum.CREATE); + for (CustomersettleRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDO.getId()); + detailDO.setNumber(number); } + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateRecord(mainDO, subDOList); + } + customersettleRequestDetailMapper.insertBatch(subDOList); } }); //错误不为空并非部分更新,手工回滚 - if (!errorList.isEmpty() && !updatePart) { + if(!errorList.isEmpty() && !updatePart) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } return errorList; - } + /** + * 校验主表导入,并赋值一些参数 + * @param mainDo + * @return + */ + private String validateCustomersettleRequestMainImport(CustomersettleRequestMainDO mainDo) { + StringBuilder message = new StringBuilder(); + try { + validateBusinesstypeDO(mainDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ValidationUtils.validate(validator, mainDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + /** + * 校验子表导入,并赋值一些参数 + * @param detailDo + * @return + */ + private String validateCustomersettleRequestDetailImport(CustomersettleRequestMainDO mainDo, CustomersettleRequestDetailDO detailDo) { + StringBuilder message = new StringBuilder(); + try { + DeliverRecordMainDO deliverRecordMainDO = validateDeliverRecordNumber(mainDo.getDeliverRecordNumber()); + if (deliverRecordMainDO != null){ + mainDo.setDeliverPlanNumber(deliverRecordMainDO.getDeliverPlanNumber()); + mainDo.setFromWarehouseCode(deliverRecordMainDO.getFromWarehouseCode()); + mainDo.setCustomerCode(deliverRecordMainDO.getCustomerCode()); + mainDo.setDepartmentCode(deliverRecordMainDO.getDepartmentCode()); + try { + this.validateDeliverRecordDetailDO(mainDo,detailDo); + } catch (Exception e) { + message.append(e.getMessage()).append(","); + } + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ValidationUtils.validate(validator, detailDo); + } catch (Exception e) { + message.append(e.getMessage()).append(","); + } + return message.toString(); + } + + + /** + * 新增校验子表并给部分字段赋值 + * @param detailDo + * @param mainDo + * @return + */ + private void validateCustomersettleRequestDetailCreate(CustomersettleRequestMainDO mainDo,CustomersettleRequestDetailDO detailDo) { + DeliverRecordMainDO deliverRecordMainDO = validateDeliverRecordNumber(mainDo.getDeliverRecordNumber()); + if (deliverRecordMainDO != null) { + mainDo.setDeliverPlanNumber(deliverRecordMainDO.getDeliverPlanNumber()); + mainDo.setFromWarehouseCode(deliverRecordMainDO.getFromWarehouseCode()); + mainDo.setCustomerCode(deliverRecordMainDO.getCustomerCode()); + mainDo.setDepartmentCode(deliverRecordMainDO.getDepartmentCode()); + this.validateDeliverRecordDetailDO(mainDo,detailDo); + } + } + + /** + * 新增时校验主子表方法 + * @param createReqVO + * @return + */ + private CustomersettleRequestMainDO validatorToCreate(CustomersettleRequestMainCreateReqVO createReqVO) { + CustomersettleRequestMainDO mainDo = CustomersettleRequestMainConvert.INSTANCE.convert(createReqVO); + requestsettingAndBusinesstype(mainDo); + List subList = createReqVO.getSubList(); + List subDOList = CustomersettleRequestDetailConvert.INSTANCE.convertList03(subList); + for (CustomersettleRequestDetailDO deliverRequestDetailDO : subDOList) { + validateCustomersettleRequestDetailCreate(mainDo,deliverRequestDetailDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_SETTLE_REQUEST.getCode()); + mainDo.setNumber(number); + mainDo.setRequestTime(LocalDateTime.now()); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute()); + mainDo.setStatus(requestStatusState.getState().getCode()); + customersettleRequestMainMapper.insert(mainDo); + for (CustomersettleRequestDetailDO customersettleRequestDetailDO : subDOList) { + customersettleRequestDetailDO.setMasterId(mainDo.getId()); + customersettleRequestDetailDO.setNumber(mainDo.getNumber()); + } + customersettleRequestDetailMapper.insertBatch(subDOList); + return mainDo; + } + + //校验发货记录是否存在 + private DeliverRecordMainDO validateDeliverRecordNumber(String deliverRecordNumber){ + return deliverRecordMainService.selectsMainRecordExist(deliverRecordNumber); + } + + //查询业务类型跟申请设置进行复制 + private void requestsettingAndBusinesstype(CustomersettleRequestMainDO mainDo) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CustomerSettleRequest"); + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerSettleRequest"); + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setInInventoryStatus(businesstypeDO.getInInventoryStatuses()); + mainDo.setOutInventoryStatus(businesstypeDO.getOutInventoryStatuses()); + } + + /** + * 查询成品发货记录子表 + * @param mainDo + * @param detailDO + */ + private void validateDeliverRecordDetailDO(CustomersettleRequestMainDO mainDo,CustomersettleRequestDetailDO detailDO) { + List deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(mainDo.getDeliverRecordNumber()); + boolean flag = false; + for (DeliverRecordDetailDO deliver : deliverRecordDetailDO) { +// if (deliver.getSoNumber().equals(detailDO.getSoNumber()) && +// deliver.getSoLine().equals(detailDO.getSoLine()) +// && deliver.getItemCode().equals(detailDO.getItemCode()) && +// deliver.getBatch().equals(detailDO.getBatch()) && +// deliver.getPackingNumber().equals(detailDO.getPackingNumber())) { +// detailDO.setQty(deliver.getQty()); +// detailDO.setUom(deliver.getUom()); +// } else { +// throw new UtilException("销售订单号" + detailDO.getSoNumber() + "销售订单行" + detailDO.getSoLine() +// + "物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单" +// + mainDo.getDeliverRecordNumber() + "中"); +// } + if (deliver.getItemCode().equals(detailDO.getItemCode()) && + deliver.getBatch().equals(detailDO.getBatch()) && + deliver.getPackingNumber().equals(detailDO.getPackingNumber())) { + detailDO.setQty(deliver.getQty()); + detailDO.setUom(deliver.getUom()); + detailDO.setInventoryStatus(deliver.getInventoryStatus()); + detailDO.setFromLocationCode(deliver.getFromLocationCode()); + detailDO.setItemDesc2(deliver.getItemDesc2()); + detailDO.setItemDesc1(deliver.getItemDesc1()); + detailDO.setItemName(deliver.getItemName()); + detailDO.setProjectCode(deliver.getProjectCode()); + flag = true; + } + } + if(flag == false) { + throw new UtilException("物料代码" + detailDO.getItemCode() + "批次" + detailDO.getBatch() + "箱码" + detailDO.getPackingNumber() + "不在发货记录单" + + mainDo.getDeliverRecordNumber() + "中"); + } + } + //查询业务类型并赋值给主表 + private void validateBusinesstypeDO(CustomersettleRequestMainDO mainDo){ + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest"); + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDo.setInInventoryStatus(businesstypeDO.getInInventoryStatuses()); + mainDo.setOutInventoryStatus(businesstypeDO.getOutInventoryStatuses()); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java index 4badaa7d..1db9f1b9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java @@ -324,6 +324,7 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService { deliverRecordDetailDO.setBatch(recordListItem.get("toBatch")==null?"":recordListItem.get("toBatch")); deliverRecordDetailDO.setToLocationCode(recordListItem.get("toLocationCode").toString()); deliverRecordDetailDO.setInventoryStatus(recordListItem.get("toInventoryStatus").toString()); + deliverRecordDetailDO.setAvailable("TRUE"); deliverRecordDetailDO.setToContainerNumber(DetailUpdateItem.getToContainerNumber()); // 根据 to库位 查询 库位组 库区 LocationDO locationDO = locationService.selectLocation(recordListItem.get("toLocationCode").toString()); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java index f6c9bbd5..11a06632 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java @@ -375,6 +375,8 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); + mainDo.setInInventoryStatus(businesstypeDO.getInInventoryStatuses()); + mainDo.setOutInventoryStatus(businesstypeDO.getOutInventoryStatuses()); } try { ValidationUtils.validate(validator, mainDo); @@ -523,6 +525,8 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService deliverRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); deliverRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); deliverRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + deliverRequestMainDO.setInInventoryStatus(businesstypeDO.getInInventoryStatuses()); + deliverRequestMainDO.setOutInventoryStatus(businesstypeDO.getOutInventoryStatuses()); String customerDeliverNumber = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_DELIVER_NUMBER.getCode()); deliverRequestMainDO.setCustomerDeliverNumber(customerDeliverNumber); return deliverRequestMainDO; From a48f2896430e2d478b9946113403cfbd30e69e71 Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Tue, 5 Dec 2023 17:55:26 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E7=9B=98=E7=82=B9=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/CountJobDetailUpdateReqVO.java | 4 + .../countJob/vo/CountJobMainUpdateReqVO.java | 9 +- .../vo/CountRecordDetailBaseVO.java | 10 +- .../vo/CountadjustRequestDetailBaseVO.java | 38 +++-- .../vo/CountadjustRequestDetailExcelVO.java | 40 +++--- .../CountadjustRequestDetailExportReqVO.java | 34 +++-- .../vo/CountadjustRequestDetailPageReqVO.java | 37 ++--- .../vo/CountadjustRequestMainBaseVO.java | 15 +- .../vo/CountadjustRequestMainExcelVO.java | 14 +- .../vo/CountadjustRequestMainExportReqVO.java | 10 +- .../vo/CountadjustRequestMainPageReqVO.java | 11 +- .../countRecord/CountRecordDetailDO.java | 12 +- .../CountadjustRequestDetailDO.java | 43 +++--- .../CountadjustRequestMainDO.java | 19 +-- .../CountadjustRequestDetailMapper.java | 58 ++++---- .../CountadjustRequestMainMapper.java | 2 - .../countJob/CountJobMainServiceImpl.java | 133 +++++++++++++++++- .../countPlan/CountPlanMainServiceImpl.java | 47 ++++++- .../CountRequestMainServiceImpl.java | 34 +++-- .../inspectJob/InspectJobMainServiceImpl.java | 2 +- .../PurchasereceiptJobMainServiceImpl.java | 15 +- 21 files changed, 371 insertions(+), 216 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobDetailUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobDetailUpdateReqVO.java index fccfbe24..fd443f8c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobDetailUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobDetailUpdateReqVO.java @@ -3,10 +3,14 @@ package com.win.module.wms.controller.countJob.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.math.BigDecimal; + @Schema(description = "管理后台 - 盘点任务子更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class CountJobDetailUpdateReqVO extends CountJobDetailBaseVO { + @Schema(description = "盘点数量") + private BigDecimal countQty; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainUpdateReqVO.java index 643ea5b3..47a9a72c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countJob/vo/CountJobMainUpdateReqVO.java @@ -1,7 +1,12 @@ package com.win.module.wms.controller.countJob.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.Valid; +import java.util.List; @Schema(description = "管理后台 - 盘点任务主更新 Request VO") @Data @@ -9,4 +14,6 @@ import lombok.*; @ToString(callSuper = true) public class CountJobMainUpdateReqVO extends CountJobMainBaseVO { + @Schema(description = "子表数据") + private List<@Valid CountJobDetailUpdateReqVO> subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailBaseVO.java index 18162292..ba31bc09 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countRecord/vo/CountRecordDetailBaseVO.java @@ -1,14 +1,12 @@ package com.win.module.wms.controller.countRecord.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.time.LocalDateTime; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; -import javax.validation.constraints.*; -import org.springframework.format.annotation.DateTimeFormat; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailBaseVO.java index f7eced95..a08f98ce 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailBaseVO.java @@ -1,16 +1,12 @@ package com.win.module.wms.controller.countadjustRequest.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.time.LocalDateTime; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; -import javax.validation.constraints.*; -import org.springframework.format.annotation.DateTimeFormat; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -29,14 +25,14 @@ public class CountadjustRequestDetailBaseVO { private String countDetailNumber; @Schema(description = "货主代码") - private String ownerlCode; + private String ownerCode; @Schema(description = "包装号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "包装号不能为空") - private String packinglNumber; + private String packingNumber; @Schema(description = "器具号") - private String containerlNumber; + private String containerNumber; @Schema(description = "批次", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "批次不能为空") @@ -44,22 +40,22 @@ public class CountadjustRequestDetailBaseVO { @Schema(description = "库位代码", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "库位代码不能为空") - private String locationlCode; + private String locationCode; @Schema(description = "库存状态") - private String inventorylStatus; + private String inventoryStatus; @Schema(description = "库存数量", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "库存数量不能为空") - private BigDecimal inventorylQty; + private BigDecimal inventoryQty; @Schema(description = "盘点数量", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "盘点数量不能为空") - private BigDecimal countlQty; + private BigDecimal countQty; @Schema(description = "调整数量", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "调整数量不能为空") - private BigDecimal adjustlQty; + private BigDecimal adjustQty; @Schema(description = "单据号") private String number; @@ -76,16 +72,16 @@ public class CountadjustRequestDetailBaseVO { private String creator; @Schema(description = "物品名称") - private String itemlName; + private String itemName; @Schema(description = "物品描述1") - private String itemlDesc1; + private String itemDesc1; @Schema(description = "物品描述2") - private String itemlDesc2; + private String itemDesc2; @Schema(description = "项目代码") - private String projectlCode; + private String projectCode; @Schema(description = "数量") private BigDecimal qty; @@ -101,6 +97,6 @@ public class CountadjustRequestDetailBaseVO { private String updater; @Schema(description = "物品代码") - private String itemlCode; + private String itemCode; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailExcelVO.java index 5946af00..fc7e95e9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailExcelVO.java @@ -1,18 +1,12 @@ package com.win.module.wms.controller.countadjustRequest.vo; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.math.BigDecimal; -import java.time.LocalDateTime; - import com.alibaba.excel.annotation.ExcelProperty; import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.convert.DictConvert; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; /** @@ -27,32 +21,32 @@ public class CountadjustRequestDetailExcelVO { private String countDetailNumber; @ExcelProperty("货主代码") - private String ownerlCode; + private String ownerCode; @ExcelProperty("包装号") - private String packinglNumber; + private String packingNumber; @ExcelProperty("器具号") - private String containerlNumber; + private String containerNumber; @ExcelProperty("批次") private String batch; @ExcelProperty("库位代码") - private String locationlCode; + private String locationCode; @ExcelProperty(value = "库存状态", converter = DictConvert.class) @DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 - private String inventorylStatus; + private String inventoryStatus; @ExcelProperty("库存数量") - private BigDecimal inventorylQty; + private BigDecimal inventoryQty; @ExcelProperty("盘点数量") - private BigDecimal countlQty; + private BigDecimal countQty; @ExcelProperty("调整数量") - private BigDecimal adjustlQty; + private BigDecimal adjustQty; @ExcelProperty("单据号") private String number; @@ -67,16 +61,16 @@ public class CountadjustRequestDetailExcelVO { private String creator; @ExcelProperty("物品名称") - private String itemlName; + private String itemName; @ExcelProperty("物品描述1") - private String itemlDesc1; + private String itemDesc1; @ExcelProperty("物品描述2") - private String itemlDesc2; + private String itelDesc2; @ExcelProperty("项目代码") - private String projectlCode; + private String projectCode; @ExcelProperty("数量") private BigDecimal qty; @@ -92,6 +86,6 @@ public class CountadjustRequestDetailExcelVO { private String updater; @ExcelProperty("物品代码") - private String itemlCode; + private String itemCode; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailExportReqVO.java index 6f69d55a..dd9ae091 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailExportReqVO.java @@ -1,13 +1,11 @@ package com.win.module.wms.controller.countadjustRequest.vo; -import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; -import com.win.framework.common.pojo.PageParam; import java.time.LocalDateTime; -import org.springframework.format.annotation.DateTimeFormat; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -19,31 +17,31 @@ public class CountadjustRequestDetailExportReqVO { private String countDetailNumber; @Schema(description = "货主代码") - private String ownerlCode; + private String ownerCode; @Schema(description = "包装号") - private String packinglNumber; + private String packingNumber; @Schema(description = "器具号") - private String containerlNumber; + private String containerNumber; @Schema(description = "批次") private String batch; @Schema(description = "库位代码") - private String locationlCode; + private String locationCode; @Schema(description = "库存状态") - private String inventorylStatus; + private String inventoryStatus; @Schema(description = "库存数量") - private BigDecimal inventorylQty; + private BigDecimal inventoryQty; @Schema(description = "盘点数量") - private BigDecimal countlQty; + private BigDecimal countQty; @Schema(description = "调整数量") - private BigDecimal adjustlQty; + private BigDecimal adjustQty; @Schema(description = "单据号") private String number; @@ -59,16 +57,16 @@ public class CountadjustRequestDetailExportReqVO { private String creator; @Schema(description = "物品名称") - private String itemlName; + private String itemName; @Schema(description = "物品描述1") - private String itemlDesc1; + private String itemDesc1; @Schema(description = "物品描述2") - private String itemlDesc2; + private String itemDesc2; @Schema(description = "项目代码") - private String projectlCode; + private String projectCode; @Schema(description = "数量") private BigDecimal qty; @@ -84,6 +82,6 @@ public class CountadjustRequestDetailExportReqVO { private String updater; @Schema(description = "物品代码") - private String itemlCode; + private String itemCode; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailPageReqVO.java index 49c3410b..f0073d59 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestDetailPageReqVO.java @@ -1,12 +1,13 @@ package com.win.module.wms.controller.countadjustRequest.vo; -import lombok.*; - -import java.math.BigDecimal; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; import com.win.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; import java.time.LocalDateTime; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -21,31 +22,31 @@ public class CountadjustRequestDetailPageReqVO extends PageParam { private String countDetailNumber; @Schema(description = "货主代码") - private String ownerlCode; + private String ownerCode; @Schema(description = "包装号") - private String packinglNumber; + private String packingNumber; @Schema(description = "器具号") - private String containerlNumber; + private String containerNumber; @Schema(description = "批次") private String batch; @Schema(description = "库位代码") - private String locationlCode; + private String locationCode; @Schema(description = "库存状态") - private String inventorylStatus; + private String inventoryStatus; @Schema(description = "库存数量") - private BigDecimal inventorylQty; + private BigDecimal inventoryQty; @Schema(description = "盘点数量") - private BigDecimal countlQty; + private BigDecimal countQty; @Schema(description = "调整数量") - private BigDecimal adjustlQty; + private BigDecimal adjustQty; @Schema(description = "单据号") private String number; @@ -61,16 +62,16 @@ public class CountadjustRequestDetailPageReqVO extends PageParam { private String creator; @Schema(description = "物品名称") - private String itemlName; + private String itemName; @Schema(description = "物品描述1") - private String itemlDesc1; + private String itemDesc1; @Schema(description = "物品描述2") - private String itemlDesc2; + private String itemDesc2; @Schema(description = "项目代码") - private String projectlCode; + private String projectCode; @Schema(description = "数量") private BigDecimal qty; @@ -86,6 +87,6 @@ public class CountadjustRequestDetailPageReqVO extends PageParam { private String updater; @Schema(description = "物品代码") - private String itemlCode; + private String itemCode; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainBaseVO.java index b452f476..b02218b0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainBaseVO.java @@ -1,15 +1,12 @@ package com.win.module.wms.controller.countadjustRequest.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import javax.validation.constraints.*; +import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; /** @@ -22,10 +19,6 @@ public class CountadjustRequestMainBaseVO { @Schema(description = "id", example = "id") private Long id; - @Schema(description = "申请单号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "申请单号不能为空") - private String requestNumber; - @Schema(description = "盘点记录单号") private String countRecordNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExcelVO.java index db5857d2..225f8000 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExcelVO.java @@ -1,16 +1,11 @@ package com.win.module.wms.controller.countadjustRequest.vo; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; - import com.alibaba.excel.annotation.ExcelProperty; import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.convert.DictConvert; +import lombok.Data; + +import java.time.LocalDateTime; /** @@ -21,9 +16,6 @@ import com.win.framework.excel.core.convert.DictConvert; @Data public class CountadjustRequestMainExcelVO { - @ExcelProperty("申请单号") - private String requestNumber; - @ExcelProperty("盘点记录单号") private String countRecordNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExportReqVO.java index b4c55064..7bb4c5ef 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainExportReqVO.java @@ -1,21 +1,17 @@ package com.win.module.wms.controller.countadjustRequest.vo; -import lombok.*; -import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; -import com.win.framework.common.pojo.PageParam; -import java.time.LocalDateTime; +import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - 盘点调整申请主 Excel 导出 Request VO,参数和 CountadjustRequestMainPageReqVO 是一致的") @Data public class CountadjustRequestMainExportReqVO { - @Schema(description = "申请单号") - private String requestNumber; - @Schema(description = "盘点记录单号") private String countRecordNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainPageReqVO.java index 50ef1a3d..3b5a1a66 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/countadjustRequest/vo/CountadjustRequestMainPageReqVO.java @@ -1,10 +1,12 @@ package com.win.module.wms.controller.countadjustRequest.vo; -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; import com.win.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; + import java.time.LocalDateTime; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -15,9 +17,6 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @ToString(callSuper = true) public class CountadjustRequestMainPageReqVO extends PageParam { - @Schema(description = "申请单号") - private String requestNumber; - @Schema(description = "盘点记录单号") private String countRecordNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countRecord/CountRecordDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countRecord/CountRecordDetailDO.java index 965964de..ea3086b5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countRecord/CountRecordDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countRecord/CountRecordDetailDO.java @@ -1,13 +1,13 @@ package com.win.module.wms.dal.dataobject.countRecord; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.sun.xml.bind.v2.TODO; +import com.win.framework.mybatis.core.dataobject.BaseDO; import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.time.LocalDateTime; + import java.math.BigDecimal; import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import com.win.framework.mybatis.core.dataobject.BaseDO; /** * 盘点记录子 DO @@ -121,7 +121,7 @@ public class CountRecordDetailDO extends BaseDO { /** * 主表ID */ - private String masterId; + private Long masterId; /** * 单据号 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRequest/CountadjustRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRequest/CountadjustRequestDetailDO.java index 45421f62..35b12db1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRequest/CountadjustRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRequest/CountadjustRequestDetailDO.java @@ -1,15 +1,12 @@ package com.win.module.wms.dal.dataobject.countadjustRequest; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.sun.xml.bind.v2.TODO; +import com.win.framework.mybatis.core.dataobject.BaseDO; import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.time.LocalDateTime; + import java.math.BigDecimal; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import com.win.framework.mybatis.core.dataobject.BaseDO; /** * 盘点调整申请子 DO @@ -37,15 +34,15 @@ public class CountadjustRequestDetailDO extends BaseDO { /** * 货主代码 */ - private String ownerlCode; + private String ownerCode; /** * 包装号 */ - private String packinglNumber; + private String packingNumber; /** * 器具号 */ - private String containerlNumber; + private String containerNumber; /** * 批次 */ @@ -53,25 +50,25 @@ public class CountadjustRequestDetailDO extends BaseDO { /** * 库位代码 */ - private String locationlCode; + private String locationCode; /** * 库存状态 * * 枚举 {@link TODO inventory_status 对应的类} */ - private String inventorylStatus; + private String inventoryStatus; /** * 库存数量 */ - private BigDecimal inventorylQty; + private BigDecimal inventoryQty; /** * 盘点数量 */ - private BigDecimal countlQty; + private BigDecimal countQty; /** * 调整数量 */ - private BigDecimal adjustlQty; + private BigDecimal adjustQty; /** * 主表ID */ @@ -87,23 +84,23 @@ public class CountadjustRequestDetailDO extends BaseDO { /** * 地点ID */ - private Long sitelId; + private Long siteId; /** * 物品名称 */ - private String itemlName; + private String itemName; /** * 物品描述1 */ - private String itemlDesc1; + private String itemDesc1; /** * 物品描述2 */ - private String itemlDesc2; + private String itemDesc2; /** * 项目代码 */ - private String projectlCode; + private String projectCode; /** * 数量 */ @@ -117,10 +114,10 @@ public class CountadjustRequestDetailDO extends BaseDO { /** * 并发乐观锁 */ - private String concurrencylStamp; + private String concurrencyStamp; /** * 物品代码 */ - private String itemlCode; + private String itemCode; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRequest/CountadjustRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRequest/CountadjustRequestMainDO.java index fcb64517..63d144b2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRequest/CountadjustRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/countadjustRequest/CountadjustRequestMainDO.java @@ -1,13 +1,12 @@ package com.win.module.wms.dal.dataobject.countadjustRequest; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.sun.xml.bind.v2.TODO; +import com.win.framework.mybatis.core.dataobject.BaseDO; import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; + import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import com.win.framework.mybatis.core.dataobject.BaseDO; /** * 盘点调整申请主 DO @@ -28,10 +27,6 @@ public class CountadjustRequestMainDO extends BaseDO { */ @TableId private Long id; - /** - * 申请单号 - */ - private String requestNumber; /** * 盘点记录单号 */ @@ -40,10 +35,6 @@ public class CountadjustRequestMainDO extends BaseDO { * 仓库代码 */ private String warehouseCode; - /** - * details - */ - private String details; /** * 单据号 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRequest/CountadjustRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRequest/CountadjustRequestDetailMapper.java index 3bdd72cc..cb664cab 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRequest/CountadjustRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRequest/CountadjustRequestDetailMapper.java @@ -1,15 +1,15 @@ package com.win.module.wms.dal.mysql.countadjustRequest; -import java.util.*; - import com.win.framework.common.pojo.PageResult; -import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.mapper.BaseMapperX; +import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.module.wms.controller.countadjustRequest.vo.CountadjustRequestDetailExportReqVO; import com.win.module.wms.controller.countadjustRequest.vo.CountadjustRequestDetailPageReqVO; import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestDetailDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 盘点调整申请子 Mapper * @@ -21,56 +21,56 @@ public interface CountadjustRequestDetailMapper extends BaseMapperX selectPage(CountadjustRequestDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(CountadjustRequestDetailDO::getCountDetailNumber, reqVO.getCountDetailNumber()) - .eqIfPresent(CountadjustRequestDetailDO::getOwnerlCode, reqVO.getOwnerlCode()) - .eqIfPresent(CountadjustRequestDetailDO::getPackinglNumber, reqVO.getPackinglNumber()) - .eqIfPresent(CountadjustRequestDetailDO::getContainerlNumber, reqVO.getContainerlNumber()) + .eqIfPresent(CountadjustRequestDetailDO::getOwnerCode, reqVO.getOwnerCode()) + .eqIfPresent(CountadjustRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) + .eqIfPresent(CountadjustRequestDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(CountadjustRequestDetailDO::getBatch, reqVO.getBatch()) - .eqIfPresent(CountadjustRequestDetailDO::getLocationlCode, reqVO.getLocationlCode()) - .eqIfPresent(CountadjustRequestDetailDO::getInventorylStatus, reqVO.getInventorylStatus()) - .eqIfPresent(CountadjustRequestDetailDO::getInventorylQty, reqVO.getInventorylQty()) - .eqIfPresent(CountadjustRequestDetailDO::getCountlQty, reqVO.getCountlQty()) - .eqIfPresent(CountadjustRequestDetailDO::getAdjustlQty, reqVO.getAdjustlQty()) + .eqIfPresent(CountadjustRequestDetailDO::getLocationCode, reqVO.getLocationCode()) + .eqIfPresent(CountadjustRequestDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) + .eqIfPresent(CountadjustRequestDetailDO::getInventoryQty, reqVO.getInventoryQty()) + .eqIfPresent(CountadjustRequestDetailDO::getCountQty, reqVO.getCountQty()) + .eqIfPresent(CountadjustRequestDetailDO::getAdjustQty, reqVO.getAdjustQty()) .eqIfPresent(CountadjustRequestDetailDO::getNumber, reqVO.getNumber()) .eqIfPresent(CountadjustRequestDetailDO::getRemark, reqVO.getRemark()) .betweenIfPresent(CountadjustRequestDetailDO::getCreateTime, reqVO.getCreateTime()) .eqIfPresent(CountadjustRequestDetailDO::getCreator, reqVO.getCreator()) - .likeIfPresent(CountadjustRequestDetailDO::getItemlName, reqVO.getItemlName()) - .eqIfPresent(CountadjustRequestDetailDO::getItemlDesc1, reqVO.getItemlDesc1()) - .eqIfPresent(CountadjustRequestDetailDO::getItemlDesc2, reqVO.getItemlDesc2()) - .eqIfPresent(CountadjustRequestDetailDO::getProjectlCode, reqVO.getProjectlCode()) + .likeIfPresent(CountadjustRequestDetailDO::getItemName, reqVO.getItemName()) + .eqIfPresent(CountadjustRequestDetailDO::getItemDesc1, reqVO.getItemDesc1()) + .eqIfPresent(CountadjustRequestDetailDO::getItemDesc2, reqVO.getItemDesc2()) + .eqIfPresent(CountadjustRequestDetailDO::getProjectCode, reqVO.getProjectCode()) .eqIfPresent(CountadjustRequestDetailDO::getQty, reqVO.getQty()) .eqIfPresent(CountadjustRequestDetailDO::getUom, reqVO.getUom()) .betweenIfPresent(CountadjustRequestDetailDO::getUpdateTime, reqVO.getUpdateTime()) .eqIfPresent(CountadjustRequestDetailDO::getUpdater, reqVO.getUpdater()) - .eqIfPresent(CountadjustRequestDetailDO::getItemlCode, reqVO.getItemlCode()) + .eqIfPresent(CountadjustRequestDetailDO::getItemCode, reqVO.getItemCode()) .orderByDesc(CountadjustRequestDetailDO::getId)); } default List selectList(CountadjustRequestDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(CountadjustRequestDetailDO::getCountDetailNumber, reqVO.getCountDetailNumber()) - .eqIfPresent(CountadjustRequestDetailDO::getOwnerlCode, reqVO.getOwnerlCode()) - .eqIfPresent(CountadjustRequestDetailDO::getPackinglNumber, reqVO.getPackinglNumber()) - .eqIfPresent(CountadjustRequestDetailDO::getContainerlNumber, reqVO.getContainerlNumber()) + .eqIfPresent(CountadjustRequestDetailDO::getOwnerCode, reqVO.getOwnerCode()) + .eqIfPresent(CountadjustRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) + .eqIfPresent(CountadjustRequestDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(CountadjustRequestDetailDO::getBatch, reqVO.getBatch()) - .eqIfPresent(CountadjustRequestDetailDO::getLocationlCode, reqVO.getLocationlCode()) - .eqIfPresent(CountadjustRequestDetailDO::getInventorylStatus, reqVO.getInventorylStatus()) - .eqIfPresent(CountadjustRequestDetailDO::getInventorylQty, reqVO.getInventorylQty()) - .eqIfPresent(CountadjustRequestDetailDO::getCountlQty, reqVO.getCountlQty()) - .eqIfPresent(CountadjustRequestDetailDO::getAdjustlQty, reqVO.getAdjustlQty()) + .eqIfPresent(CountadjustRequestDetailDO::getLocationCode, reqVO.getLocationCode()) + .eqIfPresent(CountadjustRequestDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) + .eqIfPresent(CountadjustRequestDetailDO::getInventoryQty, reqVO.getInventoryQty()) + .eqIfPresent(CountadjustRequestDetailDO::getCountQty, reqVO.getCountQty()) + .eqIfPresent(CountadjustRequestDetailDO::getAdjustQty, reqVO.getAdjustQty()) .eqIfPresent(CountadjustRequestDetailDO::getNumber, reqVO.getNumber()) .eqIfPresent(CountadjustRequestDetailDO::getRemark, reqVO.getRemark()) .betweenIfPresent(CountadjustRequestDetailDO::getCreateTime, reqVO.getCreateTime()) .eqIfPresent(CountadjustRequestDetailDO::getCreator, reqVO.getCreator()) - .likeIfPresent(CountadjustRequestDetailDO::getItemlName, reqVO.getItemlName()) - .eqIfPresent(CountadjustRequestDetailDO::getItemlDesc1, reqVO.getItemlDesc1()) - .eqIfPresent(CountadjustRequestDetailDO::getItemlDesc2, reqVO.getItemlDesc2()) - .eqIfPresent(CountadjustRequestDetailDO::getProjectlCode, reqVO.getProjectlCode()) + .likeIfPresent(CountadjustRequestDetailDO::getItemName, reqVO.getItemName()) + .eqIfPresent(CountadjustRequestDetailDO::getItemDesc1, reqVO.getItemDesc1()) + .eqIfPresent(CountadjustRequestDetailDO::getItemDesc2, reqVO.getItemDesc2()) + .eqIfPresent(CountadjustRequestDetailDO::getProjectCode, reqVO.getProjectCode()) .eqIfPresent(CountadjustRequestDetailDO::getQty, reqVO.getQty()) .eqIfPresent(CountadjustRequestDetailDO::getUom, reqVO.getUom()) .betweenIfPresent(CountadjustRequestDetailDO::getUpdateTime, reqVO.getUpdateTime()) .eqIfPresent(CountadjustRequestDetailDO::getUpdater, reqVO.getUpdater()) - .eqIfPresent(CountadjustRequestDetailDO::getItemlCode, reqVO.getItemlCode()) + .eqIfPresent(CountadjustRequestDetailDO::getItemCode, reqVO.getItemCode()) .orderByDesc(CountadjustRequestDetailDO::getId)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRequest/CountadjustRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRequest/CountadjustRequestMainMapper.java index 278eeb02..051ffd7a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRequest/CountadjustRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/countadjustRequest/CountadjustRequestMainMapper.java @@ -22,7 +22,6 @@ public interface CountadjustRequestMainMapper extends BaseMapperX selectPage(CountadjustRequestMainPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(CountadjustRequestMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(CountadjustRequestMainDO::getCountRecordNumber, reqVO.getCountRecordNumber()) .eqIfPresent(CountadjustRequestMainDO::getWarehouseCode, reqVO.getWarehouseCode()) .eqIfPresent(CountadjustRequestMainDO::getNumber, reqVO.getNumber()) @@ -47,7 +46,6 @@ public interface CountadjustRequestMainMapper extends BaseMapperX selectList(CountadjustRequestMainExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() - .eqIfPresent(CountadjustRequestMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(CountadjustRequestMainDO::getCountRecordNumber, reqVO.getCountRecordNumber()) .eqIfPresent(CountadjustRequestMainDO::getWarehouseCode, reqVO.getWarehouseCode()) .eqIfPresent(CountadjustRequestMainDO::getNumber, reqVO.getNumber()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java index a65457cd..7aeacdb7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java @@ -1,27 +1,41 @@ package com.win.module.wms.service.countJob; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; +import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.countJob.vo.CountJobDetailUpdateReqVO; import com.win.module.wms.controller.countJob.vo.CountJobMainExportReqVO; import com.win.module.wms.controller.countJob.vo.CountJobMainPageReqVO; import com.win.module.wms.controller.countJob.vo.CountJobMainUpdateReqVO; import com.win.module.wms.dal.dataobject.countJob.CountJobMainDO; +import com.win.module.wms.dal.dataobject.countRecord.CountRecordDetailDO; +import com.win.module.wms.dal.dataobject.countRecord.CountRecordMainDO; +import com.win.module.wms.dal.dataobject.countRequest.CountRequestMainDO; +import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestDetailDO; +import com.win.module.wms.dal.dataobject.countadjustRequest.CountadjustRequestMainDO; import com.win.module.wms.dal.mysql.countJob.CountJobMainMapper; +import com.win.module.wms.dal.mysql.countRecord.CountRecordDetailMapper; +import com.win.module.wms.dal.mysql.countRecord.CountRecordMainMapper; +import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper; +import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestDetailMapper; +import com.win.module.wms.dal.mysql.countadjustRequest.CountadjustRequestMainMapper; +import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.job.JobStatusState; +import com.win.module.wms.enums.request.RequestStatusEnum; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.time.LocalDateTime; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @@ -39,9 +53,21 @@ public class CountJobMainServiceImpl implements CountJobMainService { @Resource private CountJobMainMapper countJobMainMapper; @Resource + private CountRecordMainMapper countRecordMainMapper; + @Resource + private CountRecordDetailMapper countRecordDetailMapper; + @Resource private AdminUserApi userApi; @Resource private TrendsApi trendsApi; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private CountRequestMainMapper countRequestMainMapper; + @Resource + private CountadjustRequestMainMapper countadjustRequestMainMapper; + @Resource + private CountadjustRequestDetailMapper countadjustRequestDetailMapper; @Override public CountJobMainDO getCountJobMain(Long id) { @@ -123,7 +149,104 @@ public class CountJobMainServiceImpl implements CountJobMainService { @Override public String executeCountJobMain(CountJobMainUpdateReqVO countJobMainUpdateReqVO) { - return null; + //查询数据 + CountJobMainDO countJobMainDO = this.validateCountJobMainExists(countJobMainUpdateReqVO.getId()); + JobStatusState jobStatusState = new JobStatusState(countJobMainDO.getStatus()); + boolean flag = jobStatusState.execute(); + if(!flag) { + throw new ServiceException(INSPECT_JOB_MAIN_STATUS_ERROR); + } + //更新完成信息 + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + countJobMainDO.setStatus(jobStatusState.getState().getCode()); + countJobMainDO.setCompleteTime(LocalDateTime.now()); + countJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId())); + countJobMainDO.setCompleteUserName(userRespDTO.getNickname()); + //更新任务表状态 + countJobMainMapper.updateById(countJobMainDO); + //创建采购收货记录主表 + CountRecordMainDO countRecordMainDO = new CountRecordMainDO(); + BeanUtils.copyProperties(countJobMainDO, countRecordMainDO); + String number = serialNumberApi.generateCode(RuleCodeEnum.COUNT_RECORD.getCode()); + countRecordMainDO.setNumber(number); + countRecordMainDO.setJobNumber(countJobMainDO.getNumber()); + countRecordMainDO.setId(null); + countRecordMainDO.setCreator(null); + countRecordMainDO.setCreateTime(null); + countRecordMainDO.setUpdater(null); + countRecordMainDO.setUpdateTime(null); + countRecordMainMapper.insert(countRecordMainDO); + List countJobDetailUpdateReqVOList = countJobMainUpdateReqVO.getSubList(); + List countadjustRequestDetailDOList = new ArrayList<>(); + List countRecordDetailDOList = new ArrayList<>(); + int countDetailNumber = 1; + for(CountJobDetailUpdateReqVO countJobDetailUpdateReqVO : countJobDetailUpdateReqVOList) { + CountRecordDetailDO countRecordDetailDO = new CountRecordDetailDO(); + BeanUtils.copyProperties(countJobDetailUpdateReqVO, countRecordDetailDO); + countRecordDetailDO.setMasterId(countRecordMainDO.getId()); + countRecordDetailDO.setNumber(number); + countRecordDetailDO.setJobDetailId(String.valueOf(countJobDetailUpdateReqVO.getId())); + countRecordDetailDO.setId(null); + countRecordDetailDO.setCreator(null); + countRecordDetailDO.setCreateTime(null); + countRecordDetailDO.setUpdater(null); + countRecordDetailDO.setUpdateTime(null); + countRecordDetailDOList.add(countRecordDetailDO); + //盘点记录数量不一致时生成盘点调整申请 + if(countRecordDetailDO.getCountQty().compareTo(countRecordDetailDO.getQty()) != 0) { + CountadjustRequestDetailDO countadjustRequestDetailDO = new CountadjustRequestDetailDO(); + BeanUtils.copyProperties(countRecordDetailDO, countadjustRequestDetailDO); + countadjustRequestDetailDO.setCountDetailNumber(String.valueOf(countDetailNumber)); + countadjustRequestDetailDO.setInventoryQty(countRecordDetailDO.getQty()); + countadjustRequestDetailDO.setCountQty(countRecordDetailDO.getCountQty()); + //库存数量减盘点数量等于调整数量 + countadjustRequestDetailDO.setAdjustQty(countRecordDetailDO.getQty().subtract(countRecordDetailDO.getCountQty())); + //调整数量的绝对值 + countadjustRequestDetailDO.setQty(countadjustRequestDetailDO.getAdjustQty().abs()); + countadjustRequestDetailDO.setId(null); + countadjustRequestDetailDO.setCreator(null); + countadjustRequestDetailDO.setCreateTime(null); + countadjustRequestDetailDO.setUpdater(null); + countadjustRequestDetailDO.setUpdateTime(null); + countadjustRequestDetailDOList.add(countadjustRequestDetailDO); + countDetailNumber++; + } + } + countRecordDetailMapper.insertBatch(countRecordDetailDOList); + //增加库存跳转 + if(!countadjustRequestDetailDOList.isEmpty()) { + CountadjustRequestMainDO countadjustRequestMainDO = new CountadjustRequestMainDO(); + BeanUtils.copyProperties(countRecordMainDO, countadjustRequestMainDO); + String adjustNumber = serialNumberApi.generateCode(RuleCodeEnum.COUNT_ADJUST_REQUEST.getCode()); + countadjustRequestMainDO.setNumber(adjustNumber); + countadjustRequestMainDO.setCountRecordNumber(number); + countadjustRequestMainDO.setId(null); + countadjustRequestMainDO.setCreator(null); + countadjustRequestMainDO.setCreateTime(null); + countadjustRequestMainDO.setUpdater(null); + countadjustRequestMainDO.setUpdateTime(null); + countadjustRequestMainMapper.insert(countadjustRequestMainDO); + for(CountadjustRequestDetailDO countadjustRequestDetailDO : countadjustRequestDetailDOList) { + countadjustRequestDetailDO.setMasterId(countadjustRequestMainDO.getId()); + countadjustRequestDetailDO.setNumber(adjustNumber); + } + countadjustRequestDetailMapper.insertBatch(countadjustRequestDetailDOList); + } + List typeList = new ArrayList<>(); + typeList.add(JobStatusEnum.PENDING.getCode()); + typeList.add(JobStatusEnum.PROCESSING.getCode()); + Long count = countJobMainMapper.selectListCount(typeList, countJobMainDO.getRequestNumber()); + CountRequestMainDO countRequestMainDO = countRequestMainMapper.selectByNumber(countJobMainDO.getRequestNumber()); + //申请单下所有任务全部完成 + if(count == 0) { + countRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + countRequestMainMapper.updateById(countRequestMainDO); + } else if(countRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成 + countRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode()); + countRequestMainMapper.updateById(countRequestMainDO); + } + return number; } private CountJobMainDO validateCountJobMainExists(Long id) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java index 76087269..dbb1aec5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java @@ -15,6 +15,7 @@ import com.win.module.wms.controller.countPlan.vo.CountPlanMainPageReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainUpdateReqVO; import com.win.module.wms.controller.countRequest.vo.CountRequestDetailCreateReqVO; import com.win.module.wms.controller.countRequest.vo.CountRequestMainCreateReqVO; +import com.win.module.wms.controller.location.vo.LocationExportReqVO; import com.win.module.wms.convert.countPlan.CountPlanDetailConvert; import com.win.module.wms.convert.countPlan.CountPlanMainConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; @@ -22,6 +23,7 @@ import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.countPlan.CountPlanDetailMapper; import com.win.module.wms.dal.mysql.countPlan.CountPlanMainMapper; @@ -29,6 +31,7 @@ import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper; import com.win.module.wms.enums.plan.PlanStatusState; import com.win.module.wms.service.countRequest.CountRequestMainService; import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.location.LocationService; import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -36,6 +39,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; @@ -71,6 +75,8 @@ public class CountPlanMainServiceImpl implements CountPlanMainService { private ItembasicService itembasicService; @Resource private CountRequestMainService countRequestMainService; + @Resource + private LocationService locationService; @Override public Long createCountPlanMain(CountPlanMainCreateReqVO createReqVO) { @@ -293,16 +299,49 @@ public class CountPlanMainServiceImpl implements CountPlanMainService { countRequestMainCreateReqVO.setRequestTime(LocalDateTime.now()); countRequestMainCreateReqVO.setDueTime(LocalDateTime.now()); List subList = new ArrayList<>(); - for (int i = 0; i< balanceDOList.size(); i++) { - BalanceDO balanceDO = balanceDOList.get(i); + int countDetailNumber = 1; + for (BalanceDO balanceDO : balanceDOList) { CountRequestDetailCreateReqVO countRequestDetailCreateReqVO = new CountRequestDetailCreateReqVO(); BeanUtils.copyProperties(balanceDO, countRequestDetailCreateReqVO); ItembasicDO itembasicDO = itembasicService.selectItembasic(balanceDO.getItemCode()); countRequestDetailCreateReqVO.setItemName(itembasicDO.getName()); countRequestDetailCreateReqVO.setItemDesc1(itembasicDO.getDesc1()); countRequestDetailCreateReqVO.setItemDesc2(itembasicDO.getDesc2()); - countRequestDetailCreateReqVO.setCountDetailNumber(String.valueOf(i + 1)); - subList.add(countRequestDetailCreateReqVO); + countRequestDetailCreateReqVO.setCountDetailNumber(String.valueOf(countDetailNumber)); + if(countRequestDetailCreateReqVO.getQty().compareTo(BigDecimal.ZERO) == 0) { + if ("TRUE".equals(mainDO.getIsCountZeroInventory())) { + subList.add(countRequestDetailCreateReqVO); + } + } else if (countRequestDetailCreateReqVO.getQty().compareTo(BigDecimal.ZERO) < 0) { + if ("TRUE".equals(mainDO.getIsCountNegativeInventory())) { + subList.add(countRequestDetailCreateReqVO); + } + } else { + subList.add(countRequestDetailCreateReqVO); + } + countDetailNumber++; + } + //盘点空库位,补齐空库位,在生成任务时拆分为只有主的盘点任务 + if("TRUE".equals(mainDO.getIsCountEmptyLocation())) { + LocationExportReqVO locationExportReqVO = new LocationExportReqVO(); + locationExportReqVO.setAvailable("TRUE"); + List locationDOList = locationService.getLocationList(new LocationExportReqVO()); + for(LocationDO locationDO : locationDOList) { + boolean flag = false; + for(CountRequestDetailCreateReqVO countRequestDetailCreateReqVO : subList) { + if(countRequestDetailCreateReqVO.getLocationCode().equals(locationDO.getCode())) { + flag = true; + break; + } + } + if(!flag) { + CountRequestDetailCreateReqVO countRequestDetailCreateReqVO = new CountRequestDetailCreateReqVO(); + countRequestDetailCreateReqVO.setCountDetailNumber(String.valueOf(countDetailNumber)); + countRequestDetailCreateReqVO.setLocationCode(locationDO.getCode()); + subList.add(countRequestDetailCreateReqVO); + countDetailNumber++; + } + } } countRequestMainCreateReqVO.setSubList(subList); countRequestMainService.createCountRequestMain(countRequestMainCreateReqVO); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java index a929ab79..74dd3af3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countRequest/CountRequestMainServiceImpl.java @@ -37,6 +37,7 @@ import com.win.module.wms.dal.mysql.countRecord.CountRecordDetailMapper; import com.win.module.wms.dal.mysql.countRecord.CountRecordMainMapper; import com.win.module.wms.dal.mysql.countRequest.CountRequestDetailMapper; import com.win.module.wms.dal.mysql.countRequest.CountRequestMainMapper; +import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.itembasic.ItembasicService; @@ -371,10 +372,9 @@ public class CountRequestMainServiceImpl implements CountRequestMainService { list.add(detailDO); listMap.put(detailDO.getLocationCode(), list); } - JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("PurchaseReceiptJob"); + JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("CountJob"); //组装任务数据 for(String mapKey : listMap.keySet()) { - List countRequestDetailDOList = listMap.get(mapKey); CountJobMainDO countJobMainDO = CountJobMainConvert.INSTANCE.convert(mainDO); countJobMainDO.setRequestNumber(mainDO.getNumber()); countJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); @@ -391,15 +391,33 @@ public class CountRequestMainServiceImpl implements CountRequestMainService { countJobMainDO.setBusinessType(businesstypeDO.getCode()); countJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); countJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); + countJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.COUNT_JOB.getCode()); + countJobMainDO.setNumber(number); + countJobMainDO.setId(null); + countJobMainDO.setCreateTime(null); + countJobMainDO.setCreator(null); + countJobMainDO.setUpdateTime(null); + countJobMainDO.setUpdater(null); countJobMainMapper.insert(countJobMainDO); List countJobDetailDOList = new ArrayList<>(); - for (int i = 0; i< countRequestDetailDOList.size(); i++) { - CountRequestDetailDO countRequestDetailDO = countRequestDetailDOList.get(i); - CountJobDetailDO countJobDetailDO = CountJobDetailConvert.INSTANCE.convert(countRequestDetailDO); - countJobDetailDO.setCountDetailNumber(String.valueOf(i + 1)); - countJobDetailDOList.add(countJobDetailDO); + List countRequestDetailDOList = listMap.get(mapKey); + int countDetailNumber = 1; + for (CountRequestDetailDO countRequestDetailDO : countRequestDetailDOList) { + //空库位时itemCode为空,不加入子表 + if(countRequestDetailDO.getItemCode() != null && !countRequestDetailDO.getItemCode().isEmpty()) { + CountJobDetailDO countJobDetailDO = CountJobDetailConvert.INSTANCE.convert(countRequestDetailDO); + countJobDetailDO.setCountDetailNumber(String.valueOf(countDetailNumber)); + countJobDetailDO.setNumber(number); + countJobDetailDO.setMasterId(countJobMainDO.getId()); + countJobDetailDOList.add(countJobDetailDO); + countDetailNumber++; + } + } + if(!countJobDetailDOList.isEmpty()) { + countJobDetailMapper.insertBatch(countJobDetailDOList); } - countJobDetailMapper.insertBatch(countJobDetailDOList); + trendsApi.createTrends(countJobMainDO.getId(), "countJob", "盘点申请生成盘点任务", TrendsTypeEnum.CREATE); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java index 78e9972d..37c4f33b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java @@ -190,7 +190,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { inspectJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId())); inspectJobMainDO.setCompleteUserName(userRespDTO.getNickname()); //更新任务表状态 - int result = inspectJobMainMapper.updateById(inspectJobMainDO); + inspectJobMainMapper.updateById(inspectJobMainDO); //创建采购收货记录主表 InspectRecordMainDO inspectRecordMainDO = new InspectRecordMainDO(); BeanUtils.copyProperties(inspectJobMainDO, inspectRecordMainDO); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java index 0969d659..bec5aa1c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java @@ -273,6 +273,7 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain List purchaseshortageDetailDOList = new ArrayList<>(); //库存事务 List transactionCreateReqVOList = new ArrayList<>(); + Map poQtyMap = new HashMap<>(); for(PurchasereceiptJobDetailDO purchasereceiptJobDetailDO : subList) { boolean isExists = false; PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVOTemp = null; @@ -311,8 +312,13 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain purchasereceiptRecordDetailDO.setUpdateTime(null); purchasereceiptRecordDetailDO.setUpdater(null); purchasereceiptRecordDetailDOList.add(purchasereceiptRecordDetailDO); - //更新采购订单明细的收货数量 - purchaseMainService.updateOrderPurchaseReceivedQty(purchasereceiptRecordDetailDO.getPoNumber(), purchasereceiptRecordDetailDO.getPoLine(), purchasereceiptRecordDetailDO.getItemCode(), purchasereceiptRecordDetailDO.getQty()); + BigDecimal poQty = poQtyMap.get(purchasereceiptRecordDetailDO.getPoNumber() + "_" + purchasereceiptRecordDetailDO.getPoLine() + "_" + purchasereceiptRecordDetailDO.getItemCode()); + if(poQty == null) { + poQty = purchasereceiptRecordDetailDO.getQty(); + } else { + poQty = poQty.add(purchasereceiptRecordDetailDO.getQty()); + } + poQtyMap.put(purchasereceiptRecordDetailDO.getPoNumber() + "_" + purchasereceiptRecordDetailDO.getPoLine() + "_" + purchasereceiptRecordDetailDO.getItemCode(), poQty); //添加库存事务list TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVO); @@ -358,6 +364,11 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain purchaseshortageDetailDOList.add(purchaseshortageDetailDO); } } + for(String key : poQtyMap.keySet()) { + String[] keys = key.split("_"); + //更新采购订单明细的收货数量 + purchaseMainService.updateOrderPurchaseReceivedQty(keys[0], keys[1], keys[2], poQtyMap.get(key)); + } if(!purchasereceiptRecordDetailDOList.isEmpty()) { purchasereceiptRecordDetailMapper.insertBatch(purchasereceiptRecordDetailDOList); } From c8369fa6038b5bdbcee2152e61972bf6d080c68d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Wed, 6 Dec 2023 08:34:40 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=8F=8A=E5=8C=85=E8=A3=85=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oductionreturnRequestDetailController.java | 4 +- .../wms/service/barcode/BarcodeService.java | 7 ++ .../service/barcode/BarcodeServiceImpl.java | 9 ++ .../service/labeltype/LabeltypeService.java | 7 ++ .../labeltype/LabeltypeServiceImpl.java | 8 ++ .../packageMassage/PackageService.java | 6 ++ .../packageMassage/PackageServiceImpl.java | 86 +++++++++++++++++-- .../ProductionreturnRequestDetailService.java | 2 +- ...ductionreturnRequestDetailServiceImpl.java | 2 +- 9 files changed, 121 insertions(+), 10 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java index cb56d84a..04aff2e7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/ProductionreturnRequestDetailController.java @@ -51,8 +51,8 @@ public class ProductionreturnRequestDetailController { @PutMapping("/update") @Operation(summary = "更新生产退料申请子") @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-detail:update')") - public CommonResult updateProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailUpdateReqVO updateReqVO, @RequestBody RequestsettingDO requestsettingDO) { - productionreturnRequestDetailService.updateProductionreturnRequestDetail(updateReqVO,requestsettingDO); + public CommonResult updateProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailUpdateReqVO updateReqVO) { + productionreturnRequestDetailService.updateProductionreturnRequestDetail(updateReqVO); return success(true); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeService.java index d8eda171..746ccf25 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeService.java @@ -79,4 +79,11 @@ public interface BarcodeService { List getBarcodeList(BarcodeExportReqVO exportReqVO); List importBarcodeList(List barcodes, Integer mode, Boolean updatePart); + + /** + * 根据labelType 获取条码片段集合 + * @param labelType + * @return + */ + List getBarcodeDoListByLabelType(String labelType); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeServiceImpl.java index 6576f562..60feb64c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/barcode/BarcodeServiceImpl.java @@ -2,6 +2,7 @@ package com.win.module.wms.service.barcode; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.google.common.annotations.VisibleForTesting; import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; @@ -124,6 +125,14 @@ public class BarcodeServiceImpl implements BarcodeService { } return errorList; } + + @Override + public List getBarcodeDoListByLabelType(String labelType) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("label_type",labelType); + return barcodeMapper.selectList(queryWrapper); + } + private void validateBarcodeForCreateOrUpdate(Long id,String code,Integer order,Integer length,Integer prefixLenght,String entityProperties,String trimEnd,String isEncypt) { // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确 DataPermissionUtils.executeIgnore(() -> { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeService.java index c57afcb5..025c4b9d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeService.java @@ -79,4 +79,11 @@ public interface LabeltypeService { LabeltypeDO getOneLabelByHeader(LabeltypeRespVO LabeltypeRespVO); + /** + * 根据 label_type 查询 标签定义 + * @param labelType + * @return + */ + LabeltypeDO getLabeltypeDOByLabelType(String labelType); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeServiceImpl.java index c553d426..b64fb16b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/labeltype/LabeltypeServiceImpl.java @@ -1,5 +1,6 @@ package com.win.module.wms.service.labeltype; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.labeltype.vo.*; @@ -91,4 +92,11 @@ public class LabeltypeServiceImpl implements LabeltypeService { return labletypeMapper.getOneLabelByHeader(LabeltypeRespVO); } + @Override + public LabeltypeDO getLabeltypeDOByLabelType(String labelType) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("label_type",labelType); + return labletypeMapper.selectOne(queryWrapper); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java index e068c735..4bb95486 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageService.java @@ -89,4 +89,10 @@ public interface PackageService { PageResult getPackageSenior(CustomConditions conditions); PackageDO createPackageLabel(PackageCreateReqVO createReqVO); + + /** + * 根据包装信息 创建 标签 + * @param packageDO + */ + void generateLabel(PackageDO packageDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java index 5d877d42..7f55125d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java @@ -1,6 +1,6 @@ package com.win.module.wms.service.packageMassage; -import cn.hutool.core.exceptions.UtilException; +import cn.hutool.core.util.ReflectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; @@ -11,14 +11,20 @@ import com.win.module.wms.controller.packageMassage.vo.PackageExportReqVO; import com.win.module.wms.controller.packageMassage.vo.PackagePageReqVO; import com.win.module.wms.controller.packageMassage.vo.PackageUpdateReqVO; import com.win.module.wms.convert.packageMassage.PackageConvert; -import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; -import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.barcode.BarcodeDO; import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; +import com.win.module.wms.dal.dataobject.labelBarbasic.BarbasicDO; +import com.win.module.wms.dal.dataobject.labeltype.LabeltypeDO; import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; +import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; +import com.win.module.wms.dal.mysql.labelBarbasic.BarbasicMapper; import com.win.module.wms.dal.mysql.packageMassage.PackageMapper; -import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestDetailMapper; +import com.win.module.wms.service.barcode.BarcodeService; import com.win.module.wms.service.itempackaging.ItempackagingService; +import com.win.module.wms.service.labelBarbasic.BarbasicService; +import com.win.module.wms.service.labeltype.LabeltypeService; import com.win.module.wms.service.supplieritem.SupplieritemService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -43,9 +49,15 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PACKAGE_NOT_EXISTS; public class PackageServiceImpl implements PackageService { @Resource - private ItempackagingService itempackagingService; + private BarbasicMapper barbasicMapper; + @Resource + private BarcodeService barcodeService; + @Resource + private LabeltypeService labeltypeService; + @Resource + private ProductionreturnRequestDetailMapper productionreturnRequestDetailMapper; @Resource - private ItembasicService itembasicService; + private ItempackagingService itempackagingService; @Resource private SupplieritemService supplieritemService; @Resource @@ -148,7 +160,69 @@ public class PackageServiceImpl implements PackageService { // TODO: 赋值 生产订单号 生产订单行 班组代码 班次代码 } packageMapper.insert(packageDo); + // 更新 生产退料申请 子表数据 包装号字段 + updateProductionreturnPackingNumber(packageDo.getId(),packageDo.getNumber()); + // 创建 标签数据 + generateLabel(packageDo); // 返回 return packageDo; } + + /** + * 更新 生产退料申请 子表数据 包装号字段 + * @param packingNumber + */ + private void updateProductionreturnPackingNumber(Long id, String packingNumber) { + ProductionreturnRequestDetailDO updateObj = new ProductionreturnRequestDetailDO(); + updateObj.setId(id); + updateObj.setPackingNumber(packingNumber); + productionreturnRequestDetailMapper.updateById(updateObj); + } + + /** + * 根据 包装 创建 标签 + * @param packageDO + */ + @Override + @Transactional + public void generateLabel (PackageDO packageDO) { + BarbasicDO barbasicDO = new BarbasicDO(); + // 自动生成流水 + String number = serialNumberApi.generateCode(RuleCodeEnum.LABEL_NUMBER.getCode()); + barbasicDO.setNumber(number); + barbasicDO.setRelateNumber(packageDO.getNumber()); + barbasicDO.setStatus("NEW"); + // 采购标签 + if (packageDO.getSupplierCode() != null && !packageDO.getSupplierCode().isEmpty()) { + barbasicDO.setType("PurchaseLabel"); + } + // 制造件标签 + if (packageDO.getProductionLineCode() != null && !packageDO.getProductionLineCode().isEmpty()) { + barbasicDO.setType("MakeLabel"); + } + // 查询 标签定义 + LabeltypeDO labeltypeDO = labeltypeService.getLabeltypeDOByLabelType(barbasicDO.getType()); + // 查询 条码片段 + List barcodeDOList = barcodeService.getBarcodeDoListByLabelType(barbasicDO.getType()); + // 数据头 + String header = labeltypeDO.getHeader(); + // 版本 + String version = labeltypeDO.getVersion(); + // 分隔符 + String separators = labeltypeDO.getSeparators(); + // 标签头 拼接 + String headerStr = header + separators + version + separators; + // 内容 拼接 + StringBuffer contentStr = new StringBuffer(); + for (BarcodeDO barcodeDO: barcodeDOList){ + Object subClassObject = ReflectUtil.invoke(packageDO, "get" + barcodeDO.getEntityProperties()); + String pChar = barcodeDO.getPrefixChar(); + if (subClassObject==null || subClassObject.equals("")) { + subClassObject = ""; + } + contentStr.append(pChar + subClassObject + separators); + } + barbasicDO.setBarcodeString(headerStr + contentStr); + barbasicMapper.insert(barbasicDO); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java index 403c10fa..354febfb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailService.java @@ -30,7 +30,7 @@ public interface ProductionreturnRequestDetailService { * * @param updateReqVO 更新信息 */ - void updateProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO); + void updateProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailUpdateReqVO updateReqVO); /** * 删除生产退料申请子 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java index d6b4a5c6..fc015917 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestDetailServiceImpl.java @@ -83,7 +83,7 @@ public class ProductionreturnRequestDetailServiceImpl implements Productionretur @Override @Transactional - public void updateProductionreturnRequestDetail(ProductionreturnRequestDetailUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { + public void updateProductionreturnRequestDetail(ProductionreturnRequestDetailUpdateReqVO updateReqVO) { // 校验存在 validateProductionreturnRequestDetailExists(updateReqVO.getId()); // 更新 From 6f9507a8146977c6be9bf4b624d420b391b4c5ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Wed, 6 Dec 2023 09:30:01 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=8F=8A=E5=8C=85=E8=A3=85=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/controller/packageMassage/vo/PackageBaseVO.java | 6 ++++++ .../wms/service/packageMassage/PackageServiceImpl.java | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/vo/PackageBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/vo/PackageBaseVO.java index 88851001..05d91d32 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/vo/PackageBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/vo/PackageBaseVO.java @@ -151,4 +151,10 @@ public class PackageBaseVO { @Schema(description = "创建者用户名") private String creator; + /** + * 额外扩展的 区分出 是制造件的生产线 + */ + @Schema(description = "生产线") + private String productionLineCodePackage; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java index 7f55125d..e4f4e291 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageMassage/PackageServiceImpl.java @@ -140,6 +140,8 @@ public class PackageServiceImpl implements PackageService { public PackageDO createPackageLabel(PackageCreateReqVO createReqVO) { // 插入 PackageDO packageDo = PackageConvert.INSTANCE.convert(createReqVO); + // 包装中的生产线 对应的是 实际生产线 而非来源生产线 + packageDo.setProductionLineCode(createReqVO.getProductionLineCodePackage()); // 获取标包数量 ItempackagingDO itemPackagingDO = itempackagingService.selectItemPackagingExist(packageDo.getItemCode()); // 赋值 自动生成 包装号 @@ -197,9 +199,13 @@ public class PackageServiceImpl implements PackageService { barbasicDO.setType("PurchaseLabel"); } // 制造件标签 - if (packageDO.getProductionLineCode() != null && !packageDO.getProductionLineCode().isEmpty()) { + else if (packageDO.getProductionLineCode() != null && !packageDO.getProductionLineCode().isEmpty()) { barbasicDO.setType("MakeLabel"); } + // 判断不出标签 默认走采购标签 + else { + barbasicDO.setType("PurchaseLabel"); + } // 查询 标签定义 LabeltypeDO labeltypeDO = labeltypeService.getLabeltypeDOByLabelType(barbasicDO.getType()); // 查询 条码片段 From a06ee5d7c770b93e0ecb13560f4d4a508dceeb54 Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Wed, 6 Dec 2023 09:44:03 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../countJob/CountJobMainServiceImpl.java | 1 + .../countPlan/CountPlanMainServiceImpl.java | 23 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java index 7aeacdb7..d6a83e5e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countJob/CountJobMainServiceImpl.java @@ -221,6 +221,7 @@ public class CountJobMainServiceImpl implements CountJobMainService { String adjustNumber = serialNumberApi.generateCode(RuleCodeEnum.COUNT_ADJUST_REQUEST.getCode()); countadjustRequestMainDO.setNumber(adjustNumber); countadjustRequestMainDO.setCountRecordNumber(number); + countadjustRequestMainDO.setStatus(RequestStatusEnum.NEW.getCode()); countadjustRequestMainDO.setId(null); countadjustRequestMainDO.setCreator(null); countadjustRequestMainDO.setCreateTime(null); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java index dbb1aec5..5ea80823 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java @@ -301,6 +301,14 @@ public class CountPlanMainServiceImpl implements CountPlanMainService { List subList = new ArrayList<>(); int countDetailNumber = 1; for (BalanceDO balanceDO : balanceDOList) { + //忽略物品或者忽略库位直接continue + if(mainDO.getIgnoreListOfItem().contains(balanceDO.getItemCode()) || mainDO.getIgnoreListOfLocation().contains(balanceDO.getLocationCode())) { + continue; + } + //维度,按照库存扩大范围,比如维度是库位时,盘点库位上某一个物品,那要扩大到这个物品所在库位的所有物品,BY_INVENTORY,按库存 BY_ITEM,按物品 BY_BATCH,按批次 BY_LOCATION,按库位 + //if(mainDO.getDimension().equals("BY_INVENTORY")) { + + //} CountRequestDetailCreateReqVO countRequestDetailCreateReqVO = new CountRequestDetailCreateReqVO(); BeanUtils.copyProperties(balanceDO, countRequestDetailCreateReqVO); ItembasicDO itembasicDO = itembasicService.selectItembasic(balanceDO.getItemCode()); @@ -308,17 +316,24 @@ public class CountPlanMainServiceImpl implements CountPlanMainService { countRequestDetailCreateReqVO.setItemDesc1(itembasicDO.getDesc1()); countRequestDetailCreateReqVO.setItemDesc2(itembasicDO.getDesc2()); countRequestDetailCreateReqVO.setCountDetailNumber(String.valueOf(countDetailNumber)); + int listSize1 = subList.size(); if(countRequestDetailCreateReqVO.getQty().compareTo(BigDecimal.ZERO) == 0) { - if ("TRUE".equals(mainDO.getIsCountZeroInventory())) { + if ("TRUE".equals(mainDO.getIsCountZeroInventory())) {//盘点零库存 subList.add(countRequestDetailCreateReqVO); } } else if (countRequestDetailCreateReqVO.getQty().compareTo(BigDecimal.ZERO) < 0) { - if ("TRUE".equals(mainDO.getIsCountNegativeInventory())) { + if ("TRUE".equals(mainDO.getIsCountNegativeInventory())) {//盘点负库存 subList.add(countRequestDetailCreateReqVO); } } else { subList.add(countRequestDetailCreateReqVO); } + //增加了数据并且冻结盘点时,冻结库存余额 + if(subList.size() > listSize1 && "TRUE".equals(mainDO.getIsFreeze())) { + balanceDO.setFrozen("TRUE"); + balanceDO.setFrozenReason("冻结盘点"); + balanceMapper.updateById(balanceDO); + } countDetailNumber++; } //盘点空库位,补齐空库位,在生成任务时拆分为只有主的盘点任务 @@ -327,6 +342,10 @@ public class CountPlanMainServiceImpl implements CountPlanMainService { locationExportReqVO.setAvailable("TRUE"); List locationDOList = locationService.getLocationList(new LocationExportReqVO()); for(LocationDO locationDO : locationDOList) { + //忽略库位直接continue + if(mainDO.getIgnoreListOfLocation().contains(locationDO.getCode())) { + continue; + } boolean flag = false; for(CountRequestDetailCreateReqVO countRequestDetailCreateReqVO : subList) { if(countRequestDetailCreateReqVO.getLocationCode().equals(locationDO.getCode())) { From 7791c4993f9a79bfb93bc435cc55ad8338b05b6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Wed, 6 Dec 2023 13:20:38 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E9=80=80=E6=96=99?= =?UTF-8?q?=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProductionreturnJobMainDO.java | 9 ++ .../IssueRequestMainServiceImpl.java | 2 +- ...roductionreturnRequestMainServiceImpl.java | 145 +++++++++++++++--- .../RepleinshRequestMainServiceImpl.java | 2 +- 4 files changed, 132 insertions(+), 26 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productionreturnJob/ProductionreturnJobMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productionreturnJob/ProductionreturnJobMainDO.java index 42dae553..b80e8655 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productionreturnJob/ProductionreturnJobMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productionreturnJob/ProductionreturnJobMainDO.java @@ -204,4 +204,13 @@ public class ProductionreturnJobMainDO extends BaseDO { */ private String allowModifyPackingNumber; + /** + * 入库库存状态范围 + */ + private String inInventoryStatuses; + /** + * 出库库存状态范围 + */ + private String outInventoryStatuses; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java index 2e5d910e..bf063012 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainServiceImpl.java @@ -583,7 +583,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { // 校验存在 IssueRequestMainDO mainDO = validateIssueRequestMainExists(id); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); - boolean flag = requestStatusState.agree(mainDO.getAutoExecute()); + boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); if(!flag) { throw new ServiceException(ISSUE_REQUEST_MAIN_CANNOT_AGREE); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java index 87c702f9..ae5e182a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRequest/ProductionreturnRequestMainServiceImpl.java @@ -10,20 +10,25 @@ import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.productionreturnRequest.vo.*; import com.win.module.wms.controller.productionreturnRequest.vo.*; +import com.win.module.wms.controller.rule.vo.RuleRespVO; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; -import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; -import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; +import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO; import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO; +import com.win.module.wms.dal.dataobject.productionreturnJob.ProductionreturnJobDetailDO; +import com.win.module.wms.dal.dataobject.productionreturnJob.ProductionreturnJobMainDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; @@ -31,18 +36,24 @@ import com.win.module.wms.dal.dataobject.productionreturnRequest.Productionretur import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.workshop.WorkshopDO; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; +import com.win.module.wms.dal.mysql.productionreturnJob.ProductionreturnJobDetailMapper; import com.win.module.wms.dal.mysql.productionreturnJob.ProductionreturnJobMainMapper; import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestDetailMapper; import com.win.module.wms.dal.mysql.productionreturnRequest.ProductionreturnRequestMainMapper; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.businesstype.BusinesstypeService; +import com.win.module.wms.service.expectin.ExpectinService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; +import com.win.module.wms.service.jobsetting.JobsettingService; +import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.productionline.ProductionlineService; import com.win.module.wms.service.productionlineitem.ProductionlineitemService; import com.win.module.wms.service.requestsetting.RequestsettingService; +import com.win.module.wms.service.rule.RuleService; import com.win.module.wms.service.workshop.WorkshopService; import com.win.module.wms.service.workstation.WorkstationService; import com.win.module.wms.util.JobUtils; @@ -60,6 +71,7 @@ import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static com.win.module.wms.enums.ErrorCodeConstants.*; /** @@ -71,6 +83,18 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class ProductionreturnRequestMainServiceImpl implements ProductionreturnRequestMainService { + @Resource + private AdminUserApi userApi; + @Resource + private ExpectinService expectinService; + @Resource + private ProductionreturnJobDetailMapper productionreturnJobDetailMapper; + @Resource + private LocationService locationService; + @Resource + private RuleService ruleService; + @Resource + private JobsettingService jobsettingService; @Resource private ItempackagingService itempackagingService; @Resource @@ -252,6 +276,7 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCTION_RETURN_REQUEST.getCode()); mainDo.setNumber(number); mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "审批中")); + mainDo.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); productionreturnRequestMainMapper.insert(mainDo); // 拆解后 子表集合 List subDOListPack = new ArrayList<>(); @@ -477,7 +502,7 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR } mainDO.setStatus(requestStatusState.getState().getCode()); //增加操作记录 - trendsApi.createTrends(id, "productionreturnRequest", "关闭了生产收料申请", TrendsTypeEnum.UPDATE); + trendsApi.createTrends(id, "productionreturnRequest", "关闭了生产退料申请", TrendsTypeEnum.UPDATE); return productionreturnRequestMainMapper.updateById(mainDO); } @@ -496,7 +521,7 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR throw new ServiceException(PRODUCTIONRETURN_REQUEST_MAIN_ERROR); } mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 - trendsApi.createTrends(id, "issueRequest", "打开了生产收料申请", TrendsTypeEnum.UPDATE); + trendsApi.createTrends(id, "productionreturnRequest", "打开了生产退料申请", TrendsTypeEnum.UPDATE); return productionreturnRequestMainMapper.updateById(mainDO); } @@ -518,10 +543,9 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR //调用自动执行方法 if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { // 审批通过 生成标签 - this.generateLabel(mainDO, productionreturnRequestDetailMapper.selectList(mainDO.getId())); this.generateJob(mainDO, productionreturnRequestDetailMapper.selectList(mainDO.getId())); } - trendsApi.createTrends(id, "issueRequest", "提交了生产收料申请", TrendsTypeEnum.UPDATE); + trendsApi.createTrends(id, "productionreturnRequest", "提交了生产退料申请", TrendsTypeEnum.UPDATE); return productionreturnRequestMainMapper.updateById(mainDO); } @@ -540,7 +564,7 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR throw new ServiceException(PRODUCTIONRETURN_REQUEST_MAIN_ERROR); } mainDO.setStatus(requestStatusState.getState().getCode()); - trendsApi.createTrends(id, "issueRequest", "驳回了生产收料申请", TrendsTypeEnum.UPDATE); + trendsApi.createTrends(id, "productionreturnRequest", "驳回了生产退料申请", TrendsTypeEnum.UPDATE); return productionreturnRequestMainMapper.updateById(mainDO); } @@ -554,18 +578,16 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR throw new ServiceException(PRODUCTIONRETURN_REQUEST_JOB_EXISTS); } RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); - boolean flag = requestStatusState.agree(mainDO.getAutoExecute()); + boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); if(!flag) { throw new ServiceException(PRODUCTIONRETURN_REQUEST_MAIN_ERROR); } mainDO.setStatus(requestStatusState.getState().getCode()); - // 审批通过 生成标签 - this.generateLabel(mainDO, productionreturnRequestDetailMapper.selectList(mainDO.getId())); //调用自动执行方法 if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { this.generateJob(mainDO, productionreturnRequestDetailMapper.selectList(mainDO.getId())); } - trendsApi.createTrends(id, "issueRequest", "审批通过了生产收料申请", TrendsTypeEnum.UPDATE); + trendsApi.createTrends(id, "productionreturnRequest", "审批通过了生产退料申请", TrendsTypeEnum.UPDATE); return productionreturnRequestMainMapper.updateById(mainDO); } @@ -581,32 +603,107 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); boolean flag = requestStatusState.handle(); if(!flag) { - throw new ServiceException(ISSUE_REQUEST_MAIN_CANNOT_HANDLE); + throw new ServiceException(PRODUCTIONRETURN_REQUEST_MAIN_ERROR); } mainDO.setStatus(requestStatusState.getState().getCode()); //调用执行方法 this.generateJob(mainDO, productionreturnRequestDetailMapper.selectList(mainDO.getId())); - trendsApi.createTrends(id, "issueRequest", "执行了发料申请", TrendsTypeEnum.UPDATE); + trendsApi.createTrends(id, "productionreturnRequest", "执行了生产退料申请", TrendsTypeEnum.UPDATE); return productionreturnRequestMainMapper.updateById(mainDO); } - /** - * 创建标签 - * @param mainDO - * @param detailDO - */ - private void generateLabel (ProductionreturnRequestMainDO mainDO, List detailDO) { -// 查询 mainDO.packingNumber 在包装表中,是否存在,如果存在不创建标签,如果不存在,创建 -// PackageDO packageDO = - } - /** * 创建任务 OR 创建记录 * @param mainDO * @param detailDO */ private void generateJob (ProductionreturnRequestMainDO mainDO, List detailDO) { - + //跳过任务直接生成记录 + if("TRUE".equals(mainDO.getDirectCreateRecord())) { +// TODO: 发料申请 跳过任务直接生成记录 未做!! +// PurchasereceiptRecordMainCreateReqVO purchasereceiptRecordMainCreateReqVO = new PurchasereceiptRecordMainCreateReqVO(); +// BeanUtils.copyProperties(mainDO, purchasereceiptRecordMainCreateReqVO); +// purchasereceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); +// String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_RECORD.getCode()); +// purchasereceiptRecordMainCreateReqVO.setNumber(number); +// //增加业务类型 +// BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptRecord"); +// purchasereceiptRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); +// purchasereceiptRecordMainMapper.insert(PurchasereceiptRecordMainConvert.INSTANCE.convert(purchasereceiptRecordMainCreateReqVO)); +// for(PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO : detailDOList) { +// PurchasereceiptRecordDetailCreateReqVO purchasereceiptRecordDetailCreateReqVO = new PurchasereceiptRecordDetailCreateReqVO(); +// BeanUtils.copyProperties(purchasereceiptRequestDetailDO, purchasereceiptRecordDetailCreateReqVO); +// purchasereceiptRecordDetailCreateReqVO.setNumber(number); +// purchasereceiptRecordDetailMapper.insert(PurchasereceiptRecordDetailConvert.INSTANCE.convert(purchasereceiptRecordDetailCreateReqVO)); +// } +// return; + } + // 任务主表信息 + ProductionreturnJobMainDO productionreturnJobMainDO = new ProductionreturnJobMainDO(); + BeanUtils.copyProperties(mainDO, productionreturnJobMainDO); + productionreturnJobMainDO.setRequestNumber(mainDO.getNumber()); + productionreturnJobMainDO.setRequestDueTime(mainDO.getDueTime()); + productionreturnJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCTION_RETURN_JOB.getCode()); + productionreturnJobMainDO.setNumber(number); + // 获取任务单据设置 + JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("MaterialReturnJob"); + productionreturnJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); + productionreturnJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); + productionreturnJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); + productionreturnJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty()); + productionreturnJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty()); + productionreturnJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus()); + productionreturnJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning()); + productionreturnJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); + productionreturnJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); + productionreturnJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ReturnToStoreJob"); + productionreturnJobMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + productionreturnJobMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + productionreturnJobMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + productionreturnJobMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + productionreturnJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); + productionreturnJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); + productionreturnJobMainDO.setBusinessType(businesstypeDO.getCode()); + productionreturnJobMainDO.setId(null); + productionreturnJobMainDO.setCreateTime(null); + productionreturnJobMainDO.setCreator(null); + productionreturnJobMainDO.setUpdateTime(null); + productionreturnJobMainDO.setUpdater(null); + productionreturnJobMainMapper.insert(productionreturnJobMainDO); + + List productionreturnJobDetailDOList = new ArrayList<>(); + List expectinCreateReqVOList = new ArrayList<>(); + detailDO.forEach(item -> { + ProductionreturnJobDetailDO productionreturnJobDetailDO = new ProductionreturnJobDetailDO(); + BeanUtils.copyProperties(item, productionreturnJobDetailDO); + productionreturnJobDetailDO.setId(null); + productionreturnJobDetailDO.setCreateTime(null); + productionreturnJobDetailDO.setCreator(null); + productionreturnJobDetailDO.setUpdateTime(null); + productionreturnJobDetailDO.setUpdater(null); + productionreturnJobDetailDO.setMasterId(productionreturnJobMainDO.getId()); + productionreturnJobDetailDO.setNumber(number); + // 获取上架策略 并赋值 to库位 + RuleRespVO ruleRespVO = ruleService.grounding(null,null,null,null,null,null,productionreturnJobDetailDO.getItemCode(),null,null,null,null,null,null); + LocationDO locationDO = locationService.inspectLocation(ruleRespVO,null,productionreturnJobDetailDO.getItemCode(),null); + productionreturnJobDetailDO.setToLocationCode(locationDO.getCode()); + productionreturnJobDetailDOList.add(productionreturnJobDetailDO); + //预计入 + ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); + BeanUtils.copyProperties(productionreturnJobDetailDO, expectinCreateReqVO); + expectinCreateReqVO.setJobNumber(number); + expectinCreateReqVO.setBusinessType(productionreturnJobMainDO.getBusinessType()); + expectinCreateReqVO.setLocationCode(productionreturnJobDetailDO.getToLocationCode()); + expectinCreateReqVO.setOwnerCode(productionreturnJobDetailDO.getToOwnerCode()); + expectinCreateReqVOList.add(expectinCreateReqVO); + }); + productionreturnJobDetailMapper.insertBatch(productionreturnJobDetailDOList); + //增加预计入 + expectinService.createExpectin(expectinCreateReqVOList); + trendsApi.createTrends(productionreturnJobMainDO.getId(), "productionreturnJob", "生产退料申请生成任务", TrendsTypeEnum.CREATE); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java index 97dfc3aa..1b34fa45 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java @@ -367,7 +367,7 @@ public class RepleinshRequestMainServiceImpl implements RepleinshRequestMainServ throw new ServiceException(REPLEINSH_REQUEST_JOB_EXISTS); } RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); - boolean flag = requestStatusState.agree(mainDO.getAutoExecute()); + boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); if(!flag) { throw new ServiceException(REPLEINSH_REQUEST_STATUS_ERROR); }