diff --git a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/ErrorCodeConstants.java b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/ErrorCodeConstants.java index 2d2218ea..33e58a3e 100644 --- a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/ErrorCodeConstants.java +++ b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/ErrorCodeConstants.java @@ -69,7 +69,8 @@ public interface ErrorCodeConstants { ErrorCode DICT_DATA_NOT_EXISTS = new ErrorCode(1_002_007_001, "当前字典数据不存在"); ErrorCode DICT_DATA_NOT_ENABLE = new ErrorCode(1_002_007_002, "字典数据({})不处于开启状态,不允许选择"); ErrorCode DICT_DATA_VALUE_DUPLICATE = new ErrorCode(1_002_007_003, "已经存在该值的字典数据"); - + ErrorCode DICT_DATA_NOT_EXIST = new ErrorCode(1_002_007_004, "当前字典数据不存在【{}】"); + ErrorCode DICT_LABLE_NOT_EXIST = new ErrorCode(1_002_007_005, "当前字典标签不存在【{}】"); // ========== 通知公告 1-002-008-000 ========== ErrorCode NOTICE_NOT_FOUND = new ErrorCode(1_002_008_001, "当前通知公告不存在"); diff --git a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictDataServiceImpl.java b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictDataServiceImpl.java index a51df976..0c8ea1ae 100644 --- a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictDataServiceImpl.java +++ b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/service/dict/DictDataServiceImpl.java @@ -200,10 +200,10 @@ public class DictDataServiceImpl implements DictDataService { if(dictDataDO != null && 0 == dictDataDO.getStatus()){ return dictDataDO; }else { - throw new UtilException( "字典类型" + ptype + "的数据" + plabel + "无效"); + throw exception(DICT_DATA_NOT_EXIST, "字典类型" + ptype + "的数据" + plabel + "无效"); } }else { - throw new UtilException( "字典类型" + ptype + "无效"); + throw exception(DICT_DATA_NOT_EXIST, "字典类型" + ptype + "无效"); } } @@ -215,7 +215,7 @@ public class DictDataServiceImpl implements DictDataService { if(dictDataDO != null && 0 == dictDataDO.getStatus()){ return dictDataDO; }else { - throw new UtilException( "未查到字典相关标签"); + throw exception(DICT_LABLE_NOT_EXIST, "未查到字典相关标签"); } } @Override @@ -226,7 +226,7 @@ public class DictDataServiceImpl implements DictDataService { if(dictDataDO != null && 0 == dictDataDO.getStatus()){ return dictDataDO; }else { - throw new UtilException( "未查到字典相关标签"); + throw exception(DICT_DATA_NOT_EXIST, "未查到字典相关键值"); } } } 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 953834bb..46705946 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 @@ -22,7 +22,7 @@ public interface ErrorCodeConstants { ErrorCode ITEMBASIC_IS_PHANTOM_NOT_EXISTS = new ErrorCode(1_000_020_010, "虚零件不存在"); ErrorCode ITEMBASIC_ABC_CLASS_NOT_EXISTS = new ErrorCode(1_000_020_011, "ABC类不存在"); ErrorCode ITEMBASIC_TYPE_NOT_EXISTS = new ErrorCode(1_000_020_012, "类型不存在"); - ErrorCode ITEMBASIC_VALIDITY_DAYS_NOT_EXISTS = new ErrorCode(1_000_020_013, "有效天数不存在{}"); + ErrorCode ITEMBASIC_VALIDITY_DAYS_NOT_EXISTS = new ErrorCode(1_000_020_013, "有效天数不存在"); ErrorCode ITEMBASIC_AVAIABLE_NOT_EXISTS = new ErrorCode(1_000_020_014, "是否可用不存在"); ErrorCode ITEMBASIC_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_020_015, "导入物品基础信息不能为空"); ErrorCode ITEMBASIC_EXCEPTION = new ErrorCode(1_000_020_016, "物品基础信息错误:【{}】"); @@ -62,6 +62,7 @@ public interface ErrorCodeConstants { ErrorCode PRODUCTIONLINEITEM_PRODUCT_LINE_COED_NOT_EXISTS = new ErrorCode(1_000_024_003, "产线代码不存在"); ErrorCode PRODUCTIONLINEITEM_ITEM_CODE_NOT_EXISTS = new ErrorCode(1_000_024_004, "物品代码不存在"); ErrorCode PRODUCTIONLINEITEM_AVAILABLE_NOT_EXISTS = new ErrorCode(1_000_024_005, "是否可用不存在"); + ErrorCode PRODUCTIONLINEITEM_NOT_EXIST = new ErrorCode(1_000_024_006, "生产线物料关系不存在【{}】"); //采购价格单ErrorCode ErrorCode SUPPLIER_NOT_EXISTS = new ErrorCode(1_000_025_000, "供应商不存在"); ErrorCode SUPPLIER_NOT_EXISTSNO = new ErrorCode(1_000_025_001, "代码已存在"); @@ -200,6 +201,7 @@ public interface ErrorCodeConstants { ErrorCode WORKSTATION_PRODUECTION_LINE_CODE_NOT_EXISTS = new ErrorCode(1_000_040_005, "生产线代码不存在"); ErrorCode WORKSTATION_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_040_006, "导入工序不能为空"); ErrorCode WORKSTATION_PRODUECTION_LINE_CODE_AND_WORKSTATION_RELATION_ERROR = new ErrorCode(1_000_040_007, "生产线代码与工位不匹配"); + ErrorCode WORKSTATION_RELATION_ERROR = new ErrorCode(1_000_040_008, "车间,生产线代码与工位不匹配【{}】"); //工序ErrorCode ErrorCode PROCESS_NOT_EXISTS = new ErrorCode(1_000_041_000, "工序不存在"); ErrorCode PROCESS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_041_001, "导入工序数据不能为空"); @@ -373,6 +375,8 @@ public interface ErrorCodeConstants { //采购订单主ErrorCode ErrorCode PURCHASE_MAIN_NOT_EXISTS = new ErrorCode(1_000_063_000, "采购订单主不存在"); ErrorCode PURCHASE_CLOSED_NOT_EXISTS = new ErrorCode(1_000_063_001, "采购订单已关闭"); + ErrorCode PURCHASE_MAIN_CANNOT_CLOSE = new ErrorCode(1_000_073_004, "采购订单状态不支持关闭"); + ErrorCode PURCHASE_MAIN_EXISTS = new ErrorCode(1_000_073_004, "采购订单存在要货计划任务单"); //采购订单子ErrorCode ErrorCode PURCHASE_DETAIL_NOT_EXISTS = new ErrorCode(1_000_063_001, "采购订单子不存在"); ErrorCode PURCHASE_DETAIL_ARGUMENT_NOT_EXISTS = new ErrorCode(1_000_063_002, "采购订单明细:订单号ppo_number、订单行pline_number、零件号pitem_code无效"); @@ -424,10 +428,13 @@ public interface ErrorCodeConstants { //采购收货任务子ErrorCode ErrorCode PURCHASERECEIPT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_074_000, "采购收货记录主不存在"); ErrorCode PURCHASERECEIPT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_074_001, "采购收货记录子不存在"); + ErrorCode PURCHASERECEIPT_RECORD_DETAIL_EXCEPTION = new ErrorCode(1_000_074_002, "采购收货记录明细问题【{}】"); //采购退货申请主ErrorCode ErrorCode PURCHASERETURN_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_075_000, "采购退货申请主不存在"); //采购退货申请子ErrorCode ErrorCode PURCHASERETURN_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_075_001, "采购退货申请子不存在"); + + ErrorCode PURCHASERETURN_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_075_002, "采购退货申请导入数据不能为空"); //采购退货任务主ErrorCode ErrorCode PURCHASERETURN_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_076_000, "采购退货任务主不存在"); //采购退货任务子ErrorCode @@ -441,6 +448,7 @@ public interface ErrorCodeConstants { ErrorCode INSPECT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_078_000, "检验申请主不存在"); //检验申请子ErrorCode ErrorCode INSPECT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_078_001, "检验申请子不存在"); + ErrorCode INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_078_002, "检验申请导入数据不能为空"); //检验任务主ErrorCode ErrorCode INSPECT_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_079_000, "检验任务主不存在"); //检验任务子ErrorCode @@ -454,6 +462,7 @@ public interface ErrorCodeConstants { ErrorCode PUTAWAY_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_081_000, "上架申请主不存在"); //上架申请子ErrorCode ErrorCode PUTAWAY_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_081_001, "上架申请子不存在"); + ErrorCode PUTAWAY_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_081_002, "上架申请导入数据不能为空"); //上架任务主ErrorCode ErrorCode PUTAWAY_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_082_000, "上架任务主不存在"); //上架任务子ErrorCode @@ -548,6 +557,7 @@ public interface ErrorCodeConstants { ErrorCode PRODUCTIONRETURN_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_097_000, "生产退料申请主不存在"); //生产退料申请子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 ErrorCode PRODUCTIONRETURN_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_098_000, "生产退料任务主不存在"); //生产退料任务子ErrorCode @@ -658,6 +668,8 @@ public interface ErrorCodeConstants { ErrorCode SALE_MAIN_NOT_EXISTS = new ErrorCode(1_000_117_000, "销售订单主不存在"); ErrorCode SALE_DETAIL_NOT_EXISTS = new ErrorCode(1_000_117_001, "销售订单子不存在"); //发货计划ErrorCode + //发货计划导入不能为空 + ErrorCode DELIVERPLAN_MAIN_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_020_015, "导入发货计划不能为空"); ErrorCode DELIVER_PLAN_MAIN_NOT_EXISTS = new ErrorCode(1_000_118_000, "发货计划主不存在"); ErrorCode DELIVER_PLAN_DETAIL_NOT_EXISTS = new ErrorCode(1_000_118_001, "发货计划子不存在"); //发货申请ErrorCode @@ -671,6 +683,8 @@ public interface ErrorCodeConstants { //发货记录ErrorCode ErrorCode DELIVER_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_121_000, "发货记录主不存在"); ErrorCode DELIVER_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_121_001, "发货记录子不存在"); + ErrorCode DELIVER_RECORD_DETAIL_EXCEPTION = new ErrorCode(1_000_121_002, "发货记录问题:【{}】"); + ErrorCode DELIVER_ORDER_DETAIL_EXCEPTION = new ErrorCode(1_000_121_003, "发货订单问题:【{}】"); //客户收货申请ErrorCode ErrorCode CUSTOMERRECEIPT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_122_000, "客户收货申请主不存在"); ErrorCode CUSTOMERRECEIPT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_122_001, "客户收货申请主不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/AccountcalendarController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/AccountcalendarController.java index 8f262ee3..954f7285 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/AccountcalendarController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/accountcalendar/AccountcalendarController.java @@ -9,7 +9,9 @@ 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.accountcalendar.vo.*; +import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarRespVO; import com.win.module.wms.convert.accountcalendar.AccountcalendarConvert; +import com.win.module.wms.convert.systemcalendar.SystemcalendarConvert; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.accountcalendar.AccountcalendarService; @@ -92,7 +94,13 @@ public class AccountcalendarController { @PreAuthorize("@ss.hasPermission('wms:accountcalendar:query')") public CommonResult> getAccountcalendarPage(@Valid AccountcalendarPageReqVO pageVO) { PageResult pageResult = accountcalendarService.getAccountcalendarPage(pageVO); - return success(AccountcalendarConvert.INSTANCE.convertPage(pageResult)); + PageResult result = AccountcalendarConvert.INSTANCE.convertPage(pageResult); + for(AccountcalendarRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/AreabasicController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/AreabasicController.java index 71bdf01e..dceff1d3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/AreabasicController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/AreabasicController.java @@ -9,7 +9,9 @@ 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.areabasic.vo.*; +import com.win.module.wms.controller.dock.vo.DockRespVO; import com.win.module.wms.convert.areabasic.AreabasicConvert; +import com.win.module.wms.convert.dock.DockConvert; import com.win.module.wms.dal.dataobject.areabasic.AreabasicDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.areabasic.AreabasicService; @@ -91,7 +93,13 @@ public class AreabasicController { @PreAuthorize("@ss.hasPermission('wms:areabasic:query')") public CommonResult> getAreabasicPage(@Valid AreabasicPageReqVO pageVO) { PageResult pageResult = areabasicService.getAreabasicPage(pageVO); - return success(AreabasicConvert.INSTANCE.convertPage(pageResult)); + PageResult result = AreabasicConvert.INSTANCE.convertPage(pageResult); + for(AreabasicRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExcelVO.java index 5f2154fd..cd978587 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExcelVO.java @@ -23,9 +23,6 @@ public class AreabasicExcelVO { @ExcelProperty("名称") private String name; - @ExcelProperty("描述") - private String description; - @ExcelProperty("仓库代码") private String warehouseCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExportReqVO.java index 6f7614fe..0ae9f5ec 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/areabasic/vo/AreabasicExportReqVO.java @@ -18,9 +18,6 @@ public class AreabasicExportReqVO { @Schema(description = "名称") private String name; - @Schema(description = "描述") - private String description; - @Schema(description = "仓库代码") private String warehouseCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/bom/BomController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/bom/BomController.java index eea6c475..7e8ae589 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/bom/BomController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/bom/BomController.java @@ -9,8 +9,13 @@ 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.bom.vo.*; +import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO; +import com.win.module.wms.controller.itempackaging.vo.ItempackagingRespVO; import com.win.module.wms.convert.bom.BomConvert; +import com.win.module.wms.convert.itembasic.ItembasicConvert; +import com.win.module.wms.convert.itempackaging.ItempackagingConvert; import com.win.module.wms.dal.dataobject.bom.BomDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.bom.BomService; import io.swagger.v3.oas.annotations.Operation; @@ -78,21 +83,19 @@ public class BomController { return success(BomConvert.INSTANCE.convert(bom)); } - @GetMapping("/list") - @Operation(summary = "获得物料清单列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:bom:query')") - public CommonResult> getBomList(@RequestParam("ids") Collection ids) { - List list = bomService.getBomList(ids); - return success(BomConvert.INSTANCE.convertList(list)); - } @GetMapping("/page") @Operation(summary = "获得物料清单分页") @PreAuthorize("@ss.hasPermission('wms:bom:query')") public CommonResult> getBomPage(@Valid BomPageReqVO pageVO) { PageResult pageResult = bomService.getBomPage(pageVO); - return success(BomConvert.INSTANCE.convertPage(pageResult)); + PageResult result =BomConvert.INSTANCE.convertPage(pageResult); + for(BomRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @@ -117,21 +120,34 @@ public class BomController { public void exportBomExcel(@Valid BomExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = bomService.getBomList(exportReqVO); - // 导出 Excel - List datas = BomConvert.INSTANCE.convertList02(list); - for(BomExcelVO 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, "物品基本信息.xlsx", "数据", BomExcelVO.class, resultList, mapDropDown); + } + @PostMapping("/export-excel-senior") + @Operation(summary = "导出物料清单 Excel") + @PreAuthorize("@ss.hasPermission('wms:bom:export')") + @OperateLog(type = EXPORT) + public void exportBomExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = bomService.getBomList(conditions); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "物料清单.xlsx", "数据", BomExcelVO.class, resultList, mapDropDown); + } + private List getExcelVo(List list, Map mapDropDown) { String[] componentUom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); mapDropDown.put(2, componentUom); String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); mapDropDown.put(7, available); - ExcelUtils.write(response, "物料清单.xls", "数据", BomExcelVO.class, datas,mapDropDown); + // 导出 Excel + List resultList = BomConvert.INSTANCE.convertList02(list); + for(BomExcelVO vo : resultList) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return resultList; } - @GetMapping("/get-import-template") @Operation(summary = "获得导入物料清单模板") public void importTemplate(HttpServletResponse response) throws IOException { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/businesstype/BusinesstypeController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/businesstype/BusinesstypeController.java index 8c788472..7d57fbe4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/businesstype/BusinesstypeController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/businesstype/BusinesstypeController.java @@ -9,7 +9,9 @@ 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.businesstype.vo.*; +import com.win.module.wms.controller.transactiontype.vo.TransactiontypeRespVO; import com.win.module.wms.convert.businesstype.BusinesstypeConvert; +import com.win.module.wms.convert.transactiontype.TransactiontypeConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.businesstype.BusinesstypeService; @@ -92,7 +94,13 @@ public class BusinesstypeController { @PreAuthorize("@ss.hasPermission('wms:businesstype:query')") public CommonResult> getBusinesstypePage(@Valid BusinesstypePageReqVO pageVO) { PageResult pageResult = businesstypeService.getBusinesstypePage(pageVO); - return success(BusinesstypeConvert.INSTANCE.convertPage(pageResult)); + PageResult result = BusinesstypeConvert.INSTANCE.convertPage(pageResult); + for(BusinesstypeRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/carrier/CarrierController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/carrier/CarrierController.java index b7b055a9..7f6c9839 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/carrier/CarrierController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/carrier/CarrierController.java @@ -11,7 +11,9 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.carrier.vo.CarrierExcelVO; import com.win.module.wms.controller.carrier.vo.CarrierRespVO; import com.win.module.wms.controller.carrier.vo.*; +import com.win.module.wms.controller.owner.vo.OwnerRespVO; import com.win.module.wms.convert.carrier.CarrierConvert; +import com.win.module.wms.convert.owner.OwnerConvert; import com.win.module.wms.dal.dataobject.carrier.CarrierDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.carrier.CarrierService; @@ -94,7 +96,13 @@ public class CarrierController { @PreAuthorize("@ss.hasPermission('wms:carrier:query')") public CommonResult> getCarrierPage(@Valid CarrierPageReqVO pageVO) { PageResult pageResult = carrierService.getCarrierPage(pageVO); - return success(CarrierConvert.INSTANCE.convertPage(pageResult)); + PageResult result = CarrierConvert.INSTANCE.convertPage(pageResult); + for(CarrierRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configurationsetting/vo/ConfigurationsettingExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configurationsetting/vo/ConfigurationsettingExcelVO.java index 70f14019..f08dea61 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configurationsetting/vo/ConfigurationsettingExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/configurationsetting/vo/ConfigurationsettingExcelVO.java @@ -43,7 +43,8 @@ public class ConfigurationsettingExcelVO { @ExcelProperty("描述") private String description; - @ExcelProperty("必填") + @ExcelProperty(value = "必填", converter = DictConvert.class) + @DictFormat("true_false") private String isRequired; @ExcelProperty("创建时间") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/currencyexchange/CurrencyexchangeController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/currencyexchange/CurrencyexchangeController.java index afab9b7f..f5cb5bf7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/currencyexchange/CurrencyexchangeController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/currencyexchange/CurrencyexchangeController.java @@ -8,7 +8,9 @@ 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.accountcalendar.vo.AccountcalendarRespVO; import com.win.module.wms.controller.currencyexchange.vo.*; +import com.win.module.wms.convert.accountcalendar.AccountcalendarConvert; import com.win.module.wms.convert.currencyexchange.CurrencyexchangeConvert; import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO; import com.win.module.wms.enums.DictTypeConstants; @@ -92,7 +94,13 @@ public class CurrencyexchangeController { @PreAuthorize("@ss.hasPermission('wms:currencyexchange:query')") public CommonResult> getCurrencyexchangePage(@Valid CurrencyexchangePageReqVO pageVO) { PageResult pageResult = currencyexchangeService.getCurrencyexchangePage(pageVO); - return success(CurrencyexchangeConvert.INSTANCE.convertPage(pageResult)); + PageResult result = CurrencyexchangeConvert.INSTANCE.convertPage(pageResult); + for(CurrencyexchangeRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得货币转换分页") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customer/CustomerController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customer/CustomerController.java index b061b5f6..ad7dc8ca 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customer/CustomerController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customer/CustomerController.java @@ -10,7 +10,9 @@ import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.customer.vo.CustomerImportExcelVo; import com.win.module.wms.controller.customer.vo.*; +import com.win.module.wms.controller.itempackaging.vo.ItempackagingRespVO; import com.win.module.wms.convert.customer.CustomerConvert; +import com.win.module.wms.convert.itempackaging.ItempackagingConvert; import com.win.module.wms.dal.dataobject.customer.CustomerDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.customer.CustomerService; @@ -92,7 +94,13 @@ public class CustomerController { @PreAuthorize("@ss.hasPermission('wms:customer:query')") public CommonResult> getCustomerPage(@Valid CustomerPageReqVO pageVO) { PageResult pageResult = customerService.getCustomerPage(pageVO); - return success(CustomerConvert.INSTANCE.convertPage(pageResult)); + PageResult result = CustomerConvert.INSTANCE.convertPage(pageResult); + for(CustomerRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得客户分页") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerdock/CustomerdockController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerdock/CustomerdockController.java index ef89f93f..32fd5169 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerdock/CustomerdockController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerdock/CustomerdockController.java @@ -8,7 +8,9 @@ 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.customer.vo.CustomerRespVO; import com.win.module.wms.controller.customerdock.vo.*; +import com.win.module.wms.convert.customer.CustomerConvert; import com.win.module.wms.convert.customerdock.CustomerdockConvert; import com.win.module.wms.dal.dataobject.customerdock.CustomerdockDO; import com.win.module.wms.enums.DictTypeConstants; @@ -92,7 +94,13 @@ public class CustomerdockController { @PreAuthorize("@ss.hasPermission('wms:customerdock:query')") public CommonResult> getCustomerdockPage(@Valid CustomerdockPageReqVO pageVO) { PageResult pageResult = customerdockService.getCustomerdockPage(pageVO); - return success(CustomerdockConvert.INSTANCE.convertPage(pageResult)); + PageResult result = CustomerdockConvert.INSTANCE.convertPage(pageResult); + for(CustomerdockRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得客户月台分页") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customeritem/CustomeritemController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customeritem/CustomeritemController.java index eddbaa70..b033056f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customeritem/CustomeritemController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customeritem/CustomeritemController.java @@ -8,7 +8,9 @@ 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.customerdock.vo.CustomerdockRespVO; import com.win.module.wms.controller.customeritem.vo.*; +import com.win.module.wms.convert.customerdock.CustomerdockConvert; import com.win.module.wms.convert.customeritem.CustomeritemConvert; import com.win.module.wms.dal.dataobject.customeritem.CustomeritemDO; import com.win.module.wms.enums.DictTypeConstants; @@ -92,7 +94,13 @@ public class CustomeritemController { @PreAuthorize("@ss.hasPermission('wms:customeritem:query')") public CommonResult> getCustomeritemPage(@Valid CustomeritemPageReqVO pageVO) { PageResult pageResult = customeritemService.getCustomeritemPage(pageVO); - return success(CustomeritemConvert.INSTANCE.convertPage(pageResult)); + PageResult result = CustomeritemConvert.INSTANCE.convertPage(pageResult); + for(CustomeritemRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得客户物品分页") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainBaseVO.java index 64fa2425..7e73d5a6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainBaseVO.java @@ -1,16 +1,9 @@ package com.win.module.wms.controller.deliverPlan.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 java.time.LocalDateTime; -import javax.validation.constraints.*; +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; /** diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainUpdateReqVO.java index 481fd0c5..b68d3db8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainUpdateReqVO.java @@ -1,12 +1,20 @@ package com.win.module.wms.controller.deliverPlan.vo; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; @Schema(description = "管理后台 - 发货计划主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class DeliverPlanMainUpdateReqVO extends DeliverPlanMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingMainUpdateReqVO.java index 941c434a..69343af4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingMainUpdateReqVO.java @@ -1,12 +1,19 @@ package com.win.module.wms.controller.demandforecasting.vo; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; @Schema(description = "管理后台 - 要货预测主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class DemandforecastingMainUpdateReqVO extends DemandforecastingMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/dock/DockController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/dock/DockController.java index cfacc0b3..e68bdbbf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/dock/DockController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/dock/DockController.java @@ -8,7 +8,9 @@ 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.dock.vo.*; +import com.win.module.wms.controller.warehouse.vo.WarehouseRespVO; import com.win.module.wms.convert.dock.DockConvert; +import com.win.module.wms.convert.warehouse.WarehouseConvert; import com.win.module.wms.dal.dataobject.dock.DockDO; import com.win.module.wms.dal.mysql.dock.DockMapper; import com.win.module.wms.enums.DictTypeConstants; @@ -93,7 +95,13 @@ public class DockController { @PreAuthorize("@ss.hasPermission('wms:dock:query')") public CommonResult> getDockPage(@Valid DockPageReqVO pageVO) { PageResult pageResult = dockService.getDockPage(pageVO); - return success(DockConvert.INSTANCE.convertPage(pageResult)); + PageResult result = DockConvert.INSTANCE.convertPage(pageResult); + for(DockRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/documentsetting/DocumentsettingController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/documentsetting/DocumentsettingController.java index af13eb4e..58bca75f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/documentsetting/DocumentsettingController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/documentsetting/DocumentsettingController.java @@ -8,7 +8,9 @@ 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.businesstype.vo.BusinesstypeRespVO; import com.win.module.wms.controller.documentsetting.vo.*; +import com.win.module.wms.convert.businesstype.BusinesstypeConvert; import com.win.module.wms.convert.documentsetting.DocumentsettingConvert; import com.win.module.wms.dal.dataobject.documentsetting.DocumentsettingDO; import com.win.module.wms.enums.DictTypeConstants; @@ -92,7 +94,13 @@ public class DocumentsettingController { @PreAuthorize("@ss.hasPermission('wms:documentsetting:query')") public CommonResult> getDocumentsettingPage(@Valid DocumentsettingPageReqVO pageVO) { PageResult pageResult = documentsettingService.getDocumentsettingPage(pageVO); - return success(DocumentsettingConvert.INSTANCE.convertPage(pageResult)); + PageResult result = DocumentsettingConvert.INSTANCE.convertPage(pageResult); + for(DocumentsettingRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectin/ExpectinController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectin/ExpectinController.java index 9cd137f3..1d6c2dea 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectin/ExpectinController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectin/ExpectinController.java @@ -1,34 +1,34 @@ package com.win.module.wms.controller.expectin; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +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 org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; +import com.win.module.wms.controller.expectin.vo.ExpectinExcelVO; +import com.win.module.wms.controller.expectin.vo.ExpectinExportReqVO; +import com.win.module.wms.controller.expectin.vo.ExpectinPageReqVO; +import com.win.module.wms.controller.expectin.vo.ExpectinRespVO; +import com.win.module.wms.convert.expectin.ExpectinConvert; +import com.win.module.wms.dal.dataobject.expectin.ExpectinDO; +import com.win.module.wms.service.expectin.ExpectinService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.util.List; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.win.module.wms.controller.expectin.vo.*; -import com.win.module.wms.dal.dataobject.expectin.ExpectinDO; -import com.win.module.wms.convert.expectin.ExpectinConvert; -import com.win.module.wms.service.expectin.ExpectinService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 预计入库存") @RestController @@ -42,28 +42,22 @@ public class ExpectinController { @Resource private AdminUserApi userApi; - @PostMapping("/create") - @Operation(summary = "创建预计入库存") - @PreAuthorize("@ss.hasPermission('wms:expectin:create')") - public CommonResult createExpectin(@Valid @RequestBody ExpectinCreateReqVO createReqVO) { - return success(expectinService.createExpectin(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新预计入库存") - @PreAuthorize("@ss.hasPermission('wms:expectin:update')") - public CommonResult updateExpectin(@Valid @RequestBody ExpectinUpdateReqVO updateReqVO) { - expectinService.updateExpectin(updateReqVO); - return success(true); + @DeleteMapping("/delete") + @Operation(summary = "根据任务号删除预计入库存") + @Parameter(name = "jobNumber", description = "任务号", required = true) + @PreAuthorize("@ss.hasPermission('wms:expectin:delete')") + public CommonResult deleteExpectin(@RequestParam("jobNumber") String jobNumber) { + Integer result = expectinService.deleteExpectinByJobNumber(jobNumber); + return success(result > 0); } - @DeleteMapping("/delete") + @DeleteMapping("/deleteByJobNumber") @Operation(summary = "删除预计入库存") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('wms:expectin:delete')") public CommonResult deleteExpectin(@RequestParam("id") Long id) { - expectinService.deleteExpectin(id); - return success(true); + Integer result = expectinService.deleteExpectin(id); + return success(result > 0); } @GetMapping("/get") @@ -75,15 +69,6 @@ public class ExpectinController { return success(ExpectinConvert.INSTANCE.convert(expectin)); } - @GetMapping("/list") - @Operation(summary = "获得预计入库存列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:expectin:query')") - public CommonResult> getExpectinList(@RequestParam("ids") Collection ids) { - List list = expectinService.getExpectinList(ids); - return success(ExpectinConvert.INSTANCE.convertList(list)); - } - @GetMapping("/page") @Operation(summary = "获得预计入库存分页") @PreAuthorize("@ss.hasPermission('wms:expectin:query')") @@ -110,14 +95,25 @@ public class ExpectinController { @Operation(summary = "导出预计入库存 Excel") @PreAuthorize("@ss.hasPermission('wms:expectin:export')") @OperateLog(type = EXPORT) - public void exportExpectinExcel(@Valid ExpectinExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + public void exportExpectinExcel(@Valid ExpectinExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = expectinService.getExpectinList(exportReqVO); - // 导出 Excel List datas = ExpectinConvert.INSTANCE.convertList02(list); for(ExpectinExcelVO vo : datas) { AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + ExcelUtils.write(response, "预计入库存.xls", "数据", ExpectinExcelVO.class, datas); + } + + @PostMapping("/export-excel-senior") + @Operation(summary = "导出预计入库存 Excel") + @PreAuthorize("@ss.hasPermission('wms:expectin:export')") + @OperateLog(type = EXPORT) + public void exportExpectinExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = expectinService.getExpectinList(conditions); + List datas = ExpectinConvert.INSTANCE.convertList02(list); + for(ExpectinExcelVO vo : datas) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); vo.setCreator(user.getNickname()); } ExcelUtils.write(response, "预计入库存.xls", "数据", ExpectinExcelVO.class, datas); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectin/vo/ExpectinBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectin/vo/ExpectinBaseVO.java index 564ec697..2c1f3f20 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectin/vo/ExpectinBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectin/vo/ExpectinBaseVO.java @@ -1,10 +1,10 @@ package com.win.module.wms.controller.expectin.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; +import lombok.Data; + +import javax.validation.constraints.NotNull; import java.math.BigDecimal; -import javax.validation.constraints.*; /** * 预计入库存 Base VO,提供给添加、修改、详细的子 VO 使用 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectout/ExpectoutController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectout/ExpectoutController.java index 35fcc3a6..ebabfb4a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectout/ExpectoutController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/expectout/ExpectoutController.java @@ -1,34 +1,34 @@ package com.win.module.wms.controller.expectout; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +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 org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; +import com.win.module.wms.controller.expectout.vo.ExpectoutExcelVO; +import com.win.module.wms.controller.expectout.vo.ExpectoutExportReqVO; +import com.win.module.wms.controller.expectout.vo.ExpectoutPageReqVO; +import com.win.module.wms.controller.expectout.vo.ExpectoutRespVO; +import com.win.module.wms.convert.expectout.ExpectoutConvert; +import com.win.module.wms.dal.dataobject.expectout.ExpectoutDO; +import com.win.module.wms.service.expectout.ExpectoutService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.util.List; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.win.module.wms.controller.expectout.vo.*; -import com.win.module.wms.dal.dataobject.expectout.ExpectoutDO; -import com.win.module.wms.convert.expectout.ExpectoutConvert; -import com.win.module.wms.service.expectout.ExpectoutService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 预计出库存") @RestController @@ -42,28 +42,22 @@ public class ExpectoutController { @Resource private AdminUserApi userApi; - @PostMapping("/create") - @Operation(summary = "创建预计出库存") - @PreAuthorize("@ss.hasPermission('wms:expectout:create')") - public CommonResult createExpectout(@Valid @RequestBody ExpectoutCreateReqVO createReqVO) { - return success(expectoutService.createExpectout(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新预计出库存") - @PreAuthorize("@ss.hasPermission('wms:expectout:update')") - public CommonResult updateExpectout(@Valid @RequestBody ExpectoutUpdateReqVO updateReqVO) { - expectoutService.updateExpectout(updateReqVO); - return success(true); - } - @DeleteMapping("/delete") @Operation(summary = "删除预计出库存") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('wms:expectout:delete')") public CommonResult deleteExpectout(@RequestParam("id") Long id) { - expectoutService.deleteExpectout(id); - return success(true); + int result = expectoutService.deleteExpectout(id); + return success(result > 0); + } + + @DeleteMapping("/deleteByJobNumber") + @Operation(summary = "根据任务号删除预计出库存") + @Parameter(name = "jobNumber", description = "任务号", required = true) + @PreAuthorize("@ss.hasPermission('wms:expectout:delete')") + public CommonResult deleteExpectout(@RequestParam("jobNumber") String jobNumber) { + int result = expectoutService.deleteExpectoutByJobNumber(jobNumber); + return success(result > 0); } @GetMapping("/get") @@ -75,15 +69,6 @@ public class ExpectoutController { return success(ExpectoutConvert.INSTANCE.convert(expectout)); } - @GetMapping("/list") - @Operation(summary = "获得预计出库存列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:expectout:query')") - public CommonResult> getExpectoutList(@RequestParam("ids") Collection ids) { - List list = expectoutService.getExpectoutList(ids); - return success(ExpectoutConvert.INSTANCE.convertList(list)); - } - @GetMapping("/page") @Operation(summary = "获得预计出库存分页") @PreAuthorize("@ss.hasPermission('wms:expectout:query')") @@ -110,14 +95,25 @@ public class ExpectoutController { @Operation(summary = "导出预计出库存 Excel") @PreAuthorize("@ss.hasPermission('wms:expectout:export')") @OperateLog(type = EXPORT) - public void exportExpectoutExcel(@Valid ExpectoutExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + public void exportExpectoutExcel(@Valid ExpectoutExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = expectoutService.getExpectoutList(exportReqVO); - // 导出 Excel List datas = ExpectoutConvert.INSTANCE.convertList02(list); for(ExpectoutExcelVO vo : datas) { AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + ExcelUtils.write(response, "预计出库存.xls", "数据", ExpectoutExcelVO.class, datas); + } + + @GetMapping("/export-excel-senior") + @Operation(summary = "导出预计出库存 Excel") + @PreAuthorize("@ss.hasPermission('wms:expectout:export')") + @OperateLog(type = EXPORT) + public void exportExpectoutExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = expectoutService.getExpectoutList(conditions); + List datas = ExpectoutConvert.INSTANCE.convertList02(list); + for(ExpectoutExcelVO vo : datas) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); vo.setCreator(user.getNickname()); } ExcelUtils.write(response, "预计出库存.xls", "数据", ExpectoutExcelVO.class, datas); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java index 50d454b8..5c80e5ce 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java @@ -1,44 +1,38 @@ package com.win.module.wms.controller.inspectRequest; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.framework.excel.core.util.ConvertUtil; +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.inspectRequest.vo.*; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailExcelVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestDetailExportReqVO; -import com.win.module.wms.controller.scrapRequest.vo.ScrapRequestMainRespVO; -import com.win.module.wms.convert.inspectRequest.InspectRequestDetailConvert; -import com.win.module.wms.convert.scrapRequest.ScrapRequestDetailConvert; -import com.win.module.wms.convert.scrapRequest.ScrapRequestMainConvert; -import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO; -import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestDetailDO; -import com.win.module.wms.dal.dataobject.scrapRequest.ScrapRequestMainDO; -import com.win.module.wms.service.inspectRequest.InspectRequestDetailService; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; +import com.win.module.wms.convert.inspectRequest.InspectRequestMainConvert; +import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.inspectRequest.InspectRequestMainService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.*; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; -import com.win.module.wms.convert.inspectRequest.InspectRequestMainConvert; -import com.win.module.wms.service.inspectRequest.InspectRequestMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 检验申请主") @RestController @@ -48,9 +42,6 @@ public class InspectRequestMainController { @Resource private InspectRequestMainService inspectRequestMainService; - - @Resource - private InspectRequestDetailService inspectRequestDetailService; @Resource private AdminUserApi userApi; @@ -65,8 +56,8 @@ public class InspectRequestMainController { @Operation(summary = "更新检验申请主") @PreAuthorize("@ss.hasPermission('wms:inspect-request-main:update')") public CommonResult updateInspectRequestMain(@Valid @RequestBody InspectRequestMainUpdateReqVO updateReqVO) { - inspectRequestMainService.updateInspectRequestMain(updateReqVO); - return success(true); + int result = inspectRequestMainService.updateInspectRequestMain(updateReqVO); + return success(result > 0); } @DeleteMapping("/delete") @@ -74,8 +65,8 @@ public class InspectRequestMainController { @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('wms:inspect-request-main:delete')") public CommonResult deleteInspectRequestMain(@RequestParam("id") Long id) { - inspectRequestMainService.deleteInspectRequestMain(id); - return success(true); + int result = inspectRequestMainService.deleteInspectRequestMain(id); + return success(result > 0); } @GetMapping("/get") @@ -133,22 +124,43 @@ public class InspectRequestMainController { ExcelUtils.write(response, "检验申请主.xls", "数据", InspectRequestMainExcelVO.class, datas); } - @GetMapping("/getInspectRequestById") - @Operation(summary = "APP获得检验申请主子表明细列表") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('wms:inspect-request-main:query')") - public CommonResult getInspectRequestById(@RequestParam("id") Long id) { - InspectRequestMainDO inspectRequestMain = inspectRequestMainService.getInspectRequestMain(id); - InspectRequestMainRespVO result = InspectRequestMainConvert.INSTANCE.convert(inspectRequestMain); - if(result==null) { - return success(result); - }; - InspectRequestDetailExportReqVO reqVO = new InspectRequestDetailExportReqVO(); - reqVO.setMasterId(result.getId()); - List list = inspectRequestDetailService.getInspectRequestDetailList(reqVO); - List vos = InspectRequestDetailConvert.INSTANCE.convertList02(list); - result.setSubList(vos); - return success(result); + @GetMapping("/get-import-template") + @Operation(summary = "获得导入检验申请信息模板") + public void importTemplate(HttpServletResponse response) throws IOException { + // 手动创建导出 demo + List list = new ArrayList<>(); + Map mapDropDown = new HashMap<>(); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(8, uom); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(9, inventoryStatus); + // 输出 + ExcelUtils.write(response, "检验申请信息导入模板.xlsx", "检验申请信息列表", InspectRequestImportVO.class, list, mapDropDown); } + + @PostMapping("/import") + @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')") + public CommonResult> importExcel(HttpServletResponse response, + @RequestParam("file") MultipartFile file, + @RequestParam(value = "mode") Integer mode, + @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { + List list = ExcelUtils.read(file, InspectRequestImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(InspectRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = inspectRequestMainService.importInspectRequestList(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); + returnMap.put("errorFile", url); + } + return success(returnMap); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestImportErrorVO.java new file mode 100644 index 00000000..c59d9706 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.inspectRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + + +/** + * 供应商发票申请 Excel VO + * + * @author 超级管理员 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class InspectRequestImportErrorVO extends InspectRequestImportVO { + + @ExcelProperty(value = "导入状态", index = 0) + private String importStatus; + + @ExcelProperty(value = "导入说明", index = 1) + private String importRemark; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestImportVO.java new file mode 100644 index 00000000..72d479ef --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestImportVO.java @@ -0,0 +1,60 @@ +package com.win.module.wms.controller.inspectRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; +import com.win.module.wms.enums.DictTypeConstants; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; + + +/** + * 供应商发票申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class InspectRequestImportVO { + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("采购收货记录单号") + private String purchaseReceiptRecordNumber; + + @ExcelProperty("订单号") + private String poNumber; + + @ExcelProperty("订单行") + private String poLine; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String inventoryStatus; + + @ExcelProperty("来源库位") + private String fromLocationCode; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainBaseVO.java index 8bad1d49..ba212631 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainBaseVO.java @@ -1,15 +1,14 @@ package com.win.module.wms.controller.inspectRequest.vo; +import com.win.framework.excel.core.annotations.OnlyOne; 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.math.BigDecimal; +import java.time.LocalDateTime; + import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; /** @@ -30,6 +29,7 @@ public class InspectRequestMainBaseVO { @NotNull(message = "供应商代码不能为空") private String supplierCode; + @OnlyOne @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "单据号不能为空") private String number; @@ -113,11 +113,11 @@ public class InspectRequestMainBaseVO { @Schema(description = "收货数量", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "收货数量不能为空") - private Integer receiveQty; + private BigDecimal receiveQty; @Schema(description = "样品数量", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "样品数量不能为空") - private Integer sampleQty; + private BigDecimal sampleQty; @Schema(description = "货主代码") private String ownerCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainCreateReqVO.java index eb0a5df6..90fce131 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainCreateReqVO.java @@ -1,12 +1,20 @@ package com.win.module.wms.controller.inspectRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailCreateReqVO; 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 InspectRequestMainCreateReqVO extends InspectRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExcelVO.java index 81b690b3..8fb7f2c9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExcelVO.java @@ -1,16 +1,12 @@ package com.win.module.wms.controller.inspectRequest.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.math.BigDecimal; +import java.time.LocalDateTime; /** @@ -100,10 +96,10 @@ public class InspectRequestMainExcelVO { private String uom; @ExcelProperty("收货数量") - private Integer receiveQty; + private BigDecimal receiveQty; @ExcelProperty("样品数量") - private Integer sampleQty; + private BigDecimal sampleQty; @ExcelProperty("货主代码") private String ownerCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExportReqVO.java index 42f90a57..c4101e8d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExportReqVO.java @@ -1,12 +1,12 @@ package com.win.module.wms.controller.inspectRequest.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.math.BigDecimal; +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,参数和 InspectRequestMainPageReqVO 是一致的") @@ -90,10 +90,10 @@ public class InspectRequestMainExportReqVO { private String uom; @Schema(description = "收货数量") - private Integer receiveQty; + private BigDecimal receiveQty; @Schema(description = "样品数量") - private Integer sampleQty; + private BigDecimal sampleQty; @Schema(description = "货主代码") private String ownerCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainPageReqVO.java index 2c122510..1bcbd251 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainPageReqVO.java @@ -1,10 +1,13 @@ package com.win.module.wms.controller.inspectRequest.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.math.BigDecimal; import java.time.LocalDateTime; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -92,10 +95,10 @@ public class InspectRequestMainPageReqVO extends PageParam { private String uom; @Schema(description = "收货数量") - private Integer receiveQty; + private BigDecimal receiveQty; @Schema(description = "样品数量") - private Integer sampleQty; + private BigDecimal sampleQty; @Schema(description = "货主代码") private String ownerCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainUpdateReqVO.java index 517ac583..dc1e1793 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainUpdateReqVO.java @@ -1,12 +1,19 @@ package com.win.module.wms.controller.inspectRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; + @Schema(description = "管理后台 - 检验申请主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class InspectRequestMainUpdateReqVO extends InspectRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainUpdateReqVO.java index 7ccb58f5..ffc4e217 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainUpdateReqVO.java @@ -1,12 +1,19 @@ package com.win.module.wms.controller.inventorychangeRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; @Schema(description = "管理后台 - 库存修改申请主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class InventorychangeRequestMainUpdateReqVO extends InventorychangeRequestMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itembasic/ItembasicController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itembasic/ItembasicController.java index cdbfa713..dd5f1709 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itembasic/ItembasicController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itembasic/ItembasicController.java @@ -9,6 +9,8 @@ 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.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.controller.itembasic.vo.*; import com.win.module.wms.convert.itembasic.ItembasicConvert; @@ -20,6 +22,7 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.stereotype.Component; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -105,15 +108,6 @@ public class ItembasicController { return success(ItembasicConvert.INSTANCE.convert(itembasic)); } - @GetMapping("/list") - @Operation(summary = "获得物品基本信息列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:itembasic:query')") - public CommonResult> getItembasicList(@RequestParam("ids") Collection ids) { - List list = itembasicService.getItembasicList(ids); - return success(ItembasicConvert.INSTANCE.convertList(list)); - } - @GetMapping("/page") @Operation(summary = "获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:itembasic:query')") @@ -149,21 +143,28 @@ public class ItembasicController { public void exportItembasicExcel(@Valid ItembasicExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = itembasicService.getItembasicList(exportReqVO); - // 导出 Excel - List datas = ItembasicConvert.INSTANCE.convertList02(list); - for(ItembasicExcelVO 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, "物品基本信息.xlsx", "数据", ItembasicExcelVO.class, resultList, mapDropDown); + } + + @PostMapping("/export-excel-senior") + @Operation(summary = "导出物品基本信息 Excel") + @PreAuthorize("@ss.hasPermission('wms:itembasic:export')") + @OperateLog(type = EXPORT) + public void exportItembasicExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = itembasicService.getItembasicList(conditions); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "物品基本信息.xlsx", "数据", ItembasicExcelVO.class, resultList, mapDropDown); + } + private List getExcelVo(List list, Map mapDropDown) { String[] status = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.ITEM_STATUS); mapDropDown.put(4, status); String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); mapDropDown.put(5, uom); String[] altUom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); mapDropDown.put(6, altUom); - mapDropDown.put(6, altUom); String[] isStdPack = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); mapDropDown.put(7, isStdPack); String[] enableBuy = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); @@ -192,8 +193,16 @@ public class ItembasicController { mapDropDown.put(20, eqLevel); String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); mapDropDown.put(22, available); - ExcelUtils.write(response, "物品基本信息.xlsx", "数据", ItembasicExcelVO.class, datas,mapDropDown); + // 导出 Excel + List resultList = ItembasicConvert.INSTANCE.convertList02(list); + for(ItembasicExcelVO vo : resultList) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return resultList; } + @GetMapping("/get-import-template") @Operation(summary = "获得导入物品基本信息模板") public void importTemplate(HttpServletResponse response) throws IOException { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/ItempackagingController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/ItempackagingController.java index 2b3d3b8a..5c96af81 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/ItempackagingController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itempackaging/ItempackagingController.java @@ -8,8 +8,12 @@ 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.itembasic.vo.ItembasicExcelVO; +import com.win.module.wms.controller.itembasic.vo.ItembasicRespVO; import com.win.module.wms.controller.itempackaging.vo.*; +import com.win.module.wms.convert.itembasic.ItembasicConvert; import com.win.module.wms.convert.itempackaging.ItempackagingConvert; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.itempackaging.ItempackagingService; @@ -77,21 +81,27 @@ public class ItempackagingController { return success(ItempackagingConvert.INSTANCE.convert(itempackaging)); } - @GetMapping("/list") - @Operation(summary = "获得物品包装信息 列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:itempackaging:query')") - public CommonResult> getItempackagingList(@RequestParam("ids") Collection ids) { - List list = itempackagingService.getItempackagingList(ids); - return success(ItempackagingConvert.INSTANCE.convertList(list)); - } +// @GetMapping("/list") +// @Operation(summary = "获得物品包装信息 列表") +// @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") +// @PreAuthorize("@ss.hasPermission('wms:itempackaging:query')") +// public CommonResult> getItempackagingList(@RequestParam("ids") Collection ids) { +// List list = itempackagingService.getItempackagingList(ids); +// return success(ItempackagingConvert.INSTANCE.convertList(list)); +// } @GetMapping("/page") @Operation(summary = "获得物品包装信息分页") @PreAuthorize("@ss.hasPermission('wms:itempackaging:query')") public CommonResult> getItempackagingPage(@Valid ItempackagingPageReqVO pageVO) { PageResult pageResult = itempackagingService.getItempackagingPage(pageVO); - return success(ItempackagingConvert.INSTANCE.convertPage(pageResult)); + PageResult result = ItempackagingConvert.INSTANCE.convertPage(pageResult); + for(ItempackagingRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @@ -114,14 +124,21 @@ public class ItempackagingController { public void exportItempackagingExcel(@Valid ItempackagingExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = itempackagingService.getItempackagingList(exportReqVO); - // 导出 Excel - List datas = ItempackagingConvert.INSTANCE.convertList02(list); - for(ItempackagingExcelVO 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, "物品基本信息.xlsx", "数据", ItempackagingExcelVO.class, resultList, mapDropDown); + } + @PostMapping("/export-excel-senior") + @Operation(summary = "导出物品包装信息 Excel") + @PreAuthorize("@ss.hasPermission('wms:itembasic:export')") + @OperateLog(type = EXPORT) + public void exportItempackagingExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = itempackagingService.getItempackagingList(conditions); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "物品包装信息.xlsx", "数据", ItempackagingExcelVO.class, resultList, mapDropDown); + } + private List getExcelVo(List list, Map mapDropDown) { String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); mapDropDown.put(1, uom); String[] description = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); @@ -136,9 +153,17 @@ public class ItempackagingController { mapDropDown.put(11, altPackUnit4);; String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); mapDropDown.put(13, available);; - ExcelUtils.write(response, "物品包装信息 .xls", "数据", ItempackagingExcelVO.class, datas,mapDropDown); + // 导出 Excel + List resultList = ItempackagingConvert.INSTANCE.convertList02(list); + for(ItempackagingExcelVO vo : resultList) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return resultList; } + @GetMapping("/get-import-template") @Operation(summary = "获得导入物品包装信息模板") public void importTemplate(HttpServletResponse response) throws IOException { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/jobsetting/JobsettingController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/jobsetting/JobsettingController.java index 158e8ef8..c720511f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/jobsetting/JobsettingController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/jobsetting/JobsettingController.java @@ -9,7 +9,9 @@ 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.jobsetting.vo.*; +import com.win.module.wms.controller.requestsetting.vo.RequestsettingRespVO; import com.win.module.wms.convert.jobsetting.JobsettingConvert; +import com.win.module.wms.convert.requestsetting.RequestsettingConvert; import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.jobsetting.JobsettingService; @@ -92,7 +94,13 @@ public class JobsettingController { @PreAuthorize("@ss.hasPermission('wms:jobsetting:query')") public CommonResult> getJobsettingPage(@Valid JobsettingPageReqVO pageVO) { PageResult pageResult = jobsettingService.getJobsettingPage(pageVO); - return success(JobsettingConvert.INSTANCE.convertPage(pageResult)); + PageResult result = JobsettingConvert.INSTANCE.convertPage(pageResult); + for(JobsettingRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/location/LocationController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/location/LocationController.java index 19d8e128..a35f3aa7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/location/LocationController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/location/LocationController.java @@ -10,7 +10,9 @@ 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.location.vo.*; +import com.win.module.wms.controller.locationgroup.vo.LocationgroupRespVO; import com.win.module.wms.convert.location.LocationConvert; +import com.win.module.wms.convert.locationgroup.LocationgroupConvert; 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.expectout.ExpectoutMapper; @@ -108,7 +110,13 @@ public class LocationController { @PreAuthorize("@ss.hasPermission('wms:location:query')") public CommonResult> getLocationPage(@Valid LocationPageReqVO pageVO) { PageResult pageResult = locationService.getLocationPage(pageVO); - return success(LocationConvert.INSTANCE.convertPage(pageResult)); + PageResult result = LocationConvert.INSTANCE.convertPage(pageResult); + for(LocationRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/locationgroup/LocationgroupController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/locationgroup/LocationgroupController.java index d9e114dd..53a2e3bf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/locationgroup/LocationgroupController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/locationgroup/LocationgroupController.java @@ -8,7 +8,9 @@ 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.areabasic.vo.AreabasicRespVO; import com.win.module.wms.controller.locationgroup.vo.*; +import com.win.module.wms.convert.areabasic.AreabasicConvert; import com.win.module.wms.convert.locationgroup.LocationgroupConvert; import com.win.module.wms.dal.dataobject.locationgroup.LocationgroupDO; import com.win.module.wms.enums.DictTypeConstants; @@ -90,7 +92,13 @@ public class LocationgroupController { @PreAuthorize("@ss.hasPermission('wms:locationgroup:query')") public CommonResult> getLocationgroupPage(@Valid LocationgroupPageReqVO pageVO) { PageResult pageResult = locationgroupService.getLocationgroupPage(pageVO); - return success(LocationgroupConvert.INSTANCE.convertPage(pageResult)); + PageResult result = LocationgroupConvert.INSTANCE.convertPage(pageResult); + for(LocationgroupRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/owner/OwnerController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/owner/OwnerController.java index 012d6523..2bac73fe 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/owner/OwnerController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/owner/OwnerController.java @@ -9,7 +9,9 @@ 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.owner.vo.*; +import com.win.module.wms.controller.recordsetting.vo.RecordsettingRespVO; import com.win.module.wms.convert.owner.OwnerConvert; +import com.win.module.wms.convert.recordsetting.RecordsettingConvert; import com.win.module.wms.dal.dataobject.owner.OwnerDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.owner.OwnerService; @@ -92,7 +94,13 @@ public class OwnerController { @PreAuthorize("@ss.hasPermission('wms:owner:query')") public CommonResult> getOwnerPage(@Valid OwnerPageReqVO pageVO) { PageResult pageResult = ownerService.getOwnerPage(pageVO); - return success(OwnerConvert.INSTANCE.convertPage(pageResult)); + PageResult result = OwnerConvert.INSTANCE.convertPage(pageResult); + for(OwnerRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/paramsetting/vo/ParamsettingExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/paramsetting/vo/ParamsettingExcelVO.java index 58334f37..0b0a6c31 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/paramsetting/vo/ParamsettingExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/paramsetting/vo/ParamsettingExcelVO.java @@ -47,7 +47,8 @@ public class ParamsettingExcelVO { @ExcelProperty("描述") private String description; - @ExcelProperty("必填") + @ExcelProperty(value = "必填", converter = DictConvert.class) + @DictFormat("true_false") private String isRequired; @ExcelProperty("创建时间") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/ProcessController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/ProcessController.java index 7521584a..10b4a11e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/ProcessController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/ProcessController.java @@ -9,7 +9,9 @@ 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.process.vo.*; +import com.win.module.wms.controller.workstation.vo.WorkstationRespVO; import com.win.module.wms.convert.process.ProcessConvert; +import com.win.module.wms.convert.workstation.WorkstationConvert; import com.win.module.wms.dal.dataobject.process.ProcessDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.process.ProcessService; @@ -92,7 +94,13 @@ public class ProcessController { @PreAuthorize("@ss.hasPermission('wms:process:query')") public CommonResult> getProcessPage(@Valid ProcessPageReqVO pageVO) { PageResult pageResult = processService.getProcessPage(pageVO); - return success(ProcessConvert.INSTANCE.convertPage(pageResult)); + PageResult result = ProcessConvert.INSTANCE.convertPage(pageResult); + for(ProcessRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExcelVO.java index d0519290..829ba42b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExcelVO.java @@ -23,9 +23,6 @@ public class ProcessExcelVO { @ExcelProperty("名称") private String name; - @ExcelProperty("描述") - private String description; - @ExcelProperty(value = "类型", converter = DictConvert.class) @DictFormat("process_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String type; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExportReqVO.java index ffa51f19..20ca33b7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/process/vo/ProcessExportReqVO.java @@ -18,9 +18,6 @@ public class ProcessExportReqVO { @Schema(description = "名称") private String name; - @Schema(description = "描述") - private String description; - @Schema(description = "类型") private String type; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/ProductionlineController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/ProductionlineController.java index 3b13305b..d7630f7a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/ProductionlineController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/ProductionlineController.java @@ -9,7 +9,9 @@ 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.productionline.vo.*; +import com.win.module.wms.controller.workshop.vo.WorkshopRespVO; import com.win.module.wms.convert.productionline.ProductionlineConvert; +import com.win.module.wms.convert.workshop.WorkshopConvert; import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.productionline.ProductionlineService; @@ -91,7 +93,13 @@ public class ProductionlineController { @PreAuthorize("@ss.hasPermission('wms:productionline:query')") public CommonResult> getProductionlinePage(@Valid ProductionlinePageReqVO pageVO) { PageResult pageResult = productionlineService.getProductionlinePage(pageVO); - return success(ProductionlineConvert.INSTANCE.convertPage(pageResult)); + PageResult result = ProductionlineConvert.INSTANCE.convertPage(pageResult); + for(ProductionlineRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExcelVO.java index 38815a10..54624825 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExcelVO.java @@ -23,9 +23,6 @@ public class ProductionlineExcelVO { @ExcelProperty("名称") private String name; - @ExcelProperty("描述") - private String description; - @ExcelProperty(value = "类型", converter = DictConvert.class) @DictFormat("production_line_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String type; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExportReqVO.java index a242061b..7e9ee896 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionline/vo/ProductionlineExportReqVO.java @@ -18,9 +18,6 @@ public class ProductionlineExportReqVO { @Schema(description = "名称") private String name; - @Schema(description = "描述") - private String description; - @Schema(description = "类型") private String type; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/ProductionlineitemController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/ProductionlineitemController.java index d081e576..d09759fe 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/ProductionlineitemController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/ProductionlineitemController.java @@ -8,8 +8,11 @@ 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.itembasic.vo.ItembasicExcelVO; import com.win.module.wms.controller.productionlineitem.vo.*; +import com.win.module.wms.convert.itembasic.ItembasicConvert; import com.win.module.wms.convert.productionlineitem.ProductionlineitemConvert; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.productionlineitem.ProductionlineitemService; @@ -78,15 +81,6 @@ public class ProductionlineitemController { return success(ProductionlineitemConvert.INSTANCE.convert(productionlineitem)); } - @GetMapping("/list") - @Operation(summary = "获得生产线物料关系列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:productionlineitem:query')") - public CommonResult> getProductionlineitemList(@RequestParam("ids") Collection ids) { - List list = productionlineitemService.getProductionlineitemList(ids); - return success(ProductionlineitemConvert.INSTANCE.convertList(list)); - } - @GetMapping("/page") @Operation(summary = "获得生产线物料关系分页") @PreAuthorize("@ss.hasPermission('wms:productionlineitem:query')") @@ -102,14 +96,29 @@ public class ProductionlineitemController { public void exportProductionlineitemExcel(@Valid ProductionlineitemExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = productionlineitemService.getProductionlineitemList(exportReqVO); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "生产线物料关系.xlsx", "数据", ProductionlineitemExcelVO.class, resultList, mapDropDown); + } + @PostMapping("/export-excel-senior") + @Operation(summary = "导出生产线物料关系 Excel") + @PreAuthorize("@ss.hasPermission('wms:productionlineitem:export')") + @OperateLog(type = EXPORT) + public void exportProductionlineitemExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = productionlineitemService.getProductionlineitemList(conditions); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "生产线物料关系.xlsx", "数据", ProductionlineitemExcelVO.class, resultList, mapDropDown); + } + private List getExcelVo(List list, Map mapDropDown) { // 导出 Excel - List datas = ProductionlineitemConvert.INSTANCE.convertList02(list); - for(ProductionlineitemExcelVO vo : datas) { + List resultList = ProductionlineitemConvert.INSTANCE.convertList02(list); + for(ProductionlineitemExcelVO vo : resultList) { AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); //后端创建个字段作为前端展示的虚拟字段 vo.setCreator(user.getNickname()); } - ExcelUtils.write(response, "生产线物料关系.xls", "数据", ProductionlineitemExcelVO.class, datas); + return resultList; } @GetMapping("/get-import-template") @Operation(summary = "获得导入生产线物料关系模板") 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 bb0a13a8..2e085da1 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 @@ -10,6 +10,7 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.productionreturnRequest.vo.*; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestDetailConvert; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestDetailService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -43,15 +44,15 @@ public class ProductionreturnRequestDetailController { @PostMapping("/create") @Operation(summary = "创建生产退料申请子") @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-detail:create')") - public CommonResult createProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailCreateReqVO createReqVO) { - return success(productionreturnRequestDetailService.createProductionreturnRequestDetail(createReqVO)); + public CommonResult createProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailCreateReqVO createReqVO, @RequestBody RequestsettingDO requestsettingDO) { + return success(productionreturnRequestDetailService.createProductionreturnRequestDetail(createReqVO,requestsettingDO)); } @PutMapping("/update") @Operation(summary = "更新生产退料申请子") @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-detail:update')") - public CommonResult updateProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailUpdateReqVO updateReqVO) { - productionreturnRequestDetailService.updateProductionreturnRequestDetail(updateReqVO); + public CommonResult updateProductionreturnRequestDetail(@Valid @RequestBody ProductionreturnRequestDetailUpdateReqVO updateReqVO, @RequestBody RequestsettingDO requestsettingDO) { + productionreturnRequestDetailService.updateProductionreturnRequestDetail(updateReqVO,requestsettingDO); return success(true); } 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 61f54f23..faac4b1d 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 @@ -3,6 +3,8 @@ package com.win.module.wms.controller.productionreturnRequest; import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.framework.excel.core.util.ConvertUtil; import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; @@ -10,21 +12,28 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.productionreturnRequest.vo.*; 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.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.productionreturnRequest.ProductionreturnRequestDetailService; +import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.productionreturnRequest.ProductionreturnRequestMainService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; +import java.time.LocalDateTime; +import java.time.ZoneOffset; import java.util.*; import static com.win.framework.common.pojo.CommonResult.success; @@ -38,7 +47,6 @@ public class ProductionreturnRequestMainController { @Resource private ProductionreturnRequestMainService productionreturnRequestMainService; - @Resource private ProductionreturnRequestDetailService productionreturnRequestDetailService; @@ -48,15 +56,15 @@ public class ProductionreturnRequestMainController { @PostMapping("/create") @Operation(summary = "创建生产退料申请主") @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:create')") - public CommonResult createProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainCreateReqVO createReqVO) { - return success(productionreturnRequestMainService.createProductionreturnRequestMain(createReqVO)); + public CommonResult createProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainCreateReqVO createReqVO,@RequestBody BusinesstypeDO businesstypeDO,@RequestBody RequestsettingDO requestsettingDO) { + return success(productionreturnRequestMainService.createProductionreturnRequestMain(createReqVO,businesstypeDO,requestsettingDO)); } @PutMapping("/update") @Operation(summary = "更新生产退料申请主") @PreAuthorize("@ss.hasPermission('wms:productionreturn-request-main:update')") - public CommonResult updateProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainUpdateReqVO updateReqVO) { - productionreturnRequestMainService.updateProductionreturnRequestMain(updateReqVO); + public CommonResult updateProductionreturnRequestMain(@Valid @RequestBody ProductionreturnRequestMainUpdateReqVO updateReqVO,@RequestBody BusinesstypeDO businesstypeDO,@RequestBody RequestsettingDO requestsettingDO) { + productionreturnRequestMainService.updateProductionreturnRequestMain(updateReqVO,businesstypeDO,requestsettingDO); return success(true); } @@ -144,4 +152,44 @@ public class ProductionreturnRequestMainController { return success(result); } + @GetMapping("/get-import-template") + @Operation(summary = "获得导入生产退料申请信息模板") + public void importTemplate(HttpServletResponse response) throws IOException { + // 手动创建导出 demo + List list = new ArrayList<>(); + Map mapDropDown = new HashMap<>(); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(8, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(10, uom); + // 输出 + ExcelUtils.write(response, "生产退料信息导入模板.xlsx", "生产退料申请信息列表", ProductionreturnRequestImportVO.class, list, mapDropDown); + } + + @PostMapping("/import") + @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:productionreturn-request-main:import')") + public CommonResult> importExcel(HttpServletResponse response, + @RequestParam("file") MultipartFile file, + @RequestParam(value = "mode") Integer mode, + @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart, + @RequestParam(value = "businesstypeDO")BusinesstypeDO businesstypeDO, + @RequestParam(value = "requestsettingDO")RequestsettingDO requestsettingDO) throws Exception { + List list = ExcelUtils.read(file, ProductionreturnRequestImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(ProductionreturnRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = productionreturnRequestMainService.importProductionreturnRequestList(createReqVOList, mode, updatePart,businesstypeDO,requestsettingDO); + Map returnMap = new HashMap<>(); + returnMap.put("errorCount", errorList.size()); + if(!errorList.isEmpty()) { + String url = ExcelUtils.writeLocalFile("生产退料基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList); + returnMap.put("errorFile", url); + } + return success(returnMap); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportErrorVO.java new file mode 100644 index 00000000..1130aef9 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.productionreturnRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + + +/** + * 生产退料申请 Excel VO + * + * @author 超级管理员 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductionreturnRequestImportErrorVO extends ProductionreturnRequestImportVO { + + @ExcelProperty(value = "导入状态", index = 0) + private String importStatus; + + @ExcelProperty(value = "导入说明", index = 1) + private String importRemark; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportVO.java new file mode 100644 index 00000000..e82d361e --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestImportVO.java @@ -0,0 +1,45 @@ +package com.win.module.wms.controller.productionreturnRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; +import com.win.module.wms.enums.DictTypeConstants; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + + +/** + * 生产退料申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class ProductionreturnRequestImportVO { + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("车间代码") + private String workshopCode; + + @ExcelProperty("生产线代码") + private String productionLineCode; + + @ExcelProperty("工位代码") + private String workStationCode; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("数量") + private String qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainBaseVO.java index dc0fe0b8..55ec90eb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainBaseVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.productionreturnRequest.vo; +import com.win.framework.excel.core.annotations.OnlyOne; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -34,6 +35,7 @@ public class ProductionreturnRequestMainBaseVO { @Schema(description = "从库区代码范围") private String fromAreaCodes; + @OnlyOne @Schema(description = "单据号") private String number; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainCreateReqVO.java index 601f9ea7..2ad4d451 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRequest/vo/ProductionreturnRequestMainCreateReqVO.java @@ -1,12 +1,21 @@ package com.win.module.wms.controller.productionreturnRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailCreateReqVO; 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 ProductionreturnRequestMainCreateReqVO extends ProductionreturnRequestMainBaseVO { + + @SubObject + @Schema(description = "子表数据") + private List subList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestMainUpdateReqVO.java index e1b3a909..a264df64 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRequest/vo/ProductputawayRequestMainUpdateReqVO.java @@ -1,9 +1,12 @@ package com.win.module.wms.controller.productputawayRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailUpdateReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import javax.validation.constraints.*; +import java.util.List; @Schema(description = "管理后台 - 制品上架申请主更新 Request VO") @Data @@ -15,4 +18,7 @@ public class ProductputawayRequestMainUpdateReqVO extends ProductputawayRequestM @NotNull(message = "id不能为空") private Long id; + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainBaseVO.java index b922abd7..42506ddd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainBaseVO.java @@ -3,10 +3,6 @@ package com.win.module.wms.controller.productscrapRequest.vo; import com.win.framework.excel.core.annotations.OnlyOne; 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 org.springframework.format.annotation.DateTimeFormat; @@ -24,23 +20,19 @@ public class ProductscrapRequestMainBaseVO { private Long id; @Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从仓库代码不能为空") private String fromWarehouseCode; @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) @OnlyOne - @NotNull(message = "单据号不能为空") private String number; @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "业务类型不能为空") private String businessType; @Schema(description = "备注") private String remark; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "创建时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime createTime; @@ -70,11 +62,9 @@ public class ProductscrapRequestMainBaseVO { private String updater; @Schema(description = "从库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从库位类型范围不能为空") private String fromLocationTypes; @Schema(description = "从库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从库区代码范围不能为空") private String fromAreaCodes; @Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/ProjectController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/ProjectController.java index 05f79879..040852c7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/ProjectController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/ProjectController.java @@ -8,7 +8,9 @@ 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.customeritem.vo.CustomeritemRespVO; import com.win.module.wms.controller.project.vo.*; +import com.win.module.wms.convert.customeritem.CustomeritemConvert; import com.win.module.wms.convert.project.ProjectConvert; import com.win.module.wms.dal.dataobject.project.ProjectDO; import com.win.module.wms.enums.DictTypeConstants; @@ -103,7 +105,13 @@ public class ProjectController { @PreAuthorize("@ss.hasPermission('wms:project:query')") public CommonResult> getProjectPage(@Valid ProjectPageReqVO pageVO) { PageResult pageResult = projectService.getProjectPage(pageVO); - return success(ProjectConvert.INSTANCE.convertPage(pageResult)); + PageResult result = ProjectConvert.INSTANCE.convertPage(pageResult); + for(ProjectRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectExcelVO.java index 431adf70..eea51f84 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectExcelVO.java @@ -23,9 +23,6 @@ public class ProjectExcelVO { @ExcelProperty("名称") private String name; - @ExcelProperty("描述") - private String description; - @ExcelProperty("客户代码") private String customerCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectExportReqVO.java index e4fec69d..a36d3da1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/project/vo/ProjectExportReqVO.java @@ -18,9 +18,6 @@ public class ProjectExportReqVO { @Schema(description = "名称") private String name; - @Schema(description = "描述") - private String description; - @Schema(description = "客户代码") private String customerCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java index cead9329..36f40d4e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java @@ -144,7 +144,7 @@ public class PurchaseMainController { @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") }) - @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:import')") + @PreAuthorize("@ss.hasPermission('wms:purchase-main:import')") public CommonResult> importExcel(HttpServletResponse response, @RequestParam("file") MultipartFile file, @RequestParam(value = "mode") Integer mode, @@ -162,4 +162,13 @@ public class PurchaseMainController { return success(returnMap); } + @PutMapping("/close") + @Operation(summary = "关闭采购订单申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchase-main:close')") + public CommonResult closePurchaseMain(@RequestParam("id") Long id) { + Integer count = purchaseMainService.closePurchaseMain(id); + return success(count > 0); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java index 86609b2f..2a9fd6ec 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseclaimRequest/PurchaseclaimRequestMainController.java @@ -66,7 +66,7 @@ public class PurchaseclaimRequestMainController { @Operation(summary = "更新采购索赔申请主") @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:update')") public CommonResult updatePurchaseclaimRequestMain(@Valid @RequestBody PurchaseclaimRequestMainUpdateReqVO updateReqVO) { - Integer result = purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO); + Long result = purchaseclaimRequestMainService.updatePurchaseclaimRequestMain(updateReqVO); return success(result > 0); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseprice/PurchasepriceController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseprice/PurchasepriceController.java index 1367e863..7f07bccd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseprice/PurchasepriceController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchaseprice/PurchasepriceController.java @@ -8,8 +8,13 @@ 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.itembasic.vo.ItembasicExcelVO; import com.win.module.wms.controller.purchaseprice.vo.*; +import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceRespVO; +import com.win.module.wms.convert.itembasic.ItembasicConvert; import com.win.module.wms.convert.purchaseprice.PurchasepriceConvert; +import com.win.module.wms.convert.stdcostprice.StdcostpriceConvert; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.purchaseprice.PurchasepriceDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.purchaseprice.PurchasepriceService; @@ -89,21 +94,19 @@ public class PurchasepriceController { return success(PurchasepriceConvert.INSTANCE.convert(purchaseprice)); } - @GetMapping("/list") - @Operation(summary = "获得采购价格单列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:purchaseprice:query')") - public CommonResult> getPurchasepriceList(@RequestParam("ids") Collection ids) { - List list = purchasepriceService.getPurchasepriceList(ids); - return success(PurchasepriceConvert.INSTANCE.convertList(list)); - } @GetMapping("/page") @Operation(summary = "获得采购价格单分页") @PreAuthorize("@ss.hasPermission('wms:purchaseprice:query')") public CommonResult> getPurchasepricePage(@Valid PurchasepricePageReqVO pageVO) { PageResult pageResult = purchasepriceService.getPurchasepricePage(pageVO); - return success(PurchasepriceConvert.INSTANCE.convertPage(pageResult)); + PageResult result = PurchasepriceConvert.INSTANCE.convertPage(pageResult); + for(PurchasepriceRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") @@ -113,18 +116,33 @@ public class PurchasepriceController { public void exportPurchasepriceExcel(@Valid PurchasepriceExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = purchasepriceService.getPurchasepriceList(exportReqVO); - // 导出 Excel - List datas = PurchasepriceConvert.INSTANCE.convertList02(list); - for(PurchasepriceExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } Map mapDropDown = new HashMap<>(); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "采购价格单.xlsx", "数据",PurchasepriceExcelVO.class, resultList, mapDropDown); + } + @PostMapping("/export-excel-senior") + @Operation(summary = "导出采购价格单 Excel") + @PreAuthorize("@ss.hasPermission('wms:purchaseprice:export')") + @OperateLog(type = EXPORT) + public void exportItembasicExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = purchasepriceService.getPurchasepriceList(conditions); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "采购价格单.xlsx", "数据",PurchasepriceExcelVO.class, resultList, mapDropDown); + } + private List getExcelVo(List list, Map mapDropDown) { String[] currency = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.CURRENCY); mapDropDown.put(2, currency); String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); mapDropDown.put(4, available); - ExcelUtils.write(response, "采购价格单.xls", "数据", PurchasepriceExcelVO.class, datas,mapDropDown); + // 导出 Excel + List resultList = PurchasepriceConvert.INSTANCE.convertList02(list); + for(PurchasepriceExcelVO vo : resultList) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return resultList; } @GetMapping("/get-import-template") @Operation(summary = "获得导入采购价格单模板") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java index 7aeb490c..585ffc02 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/PurchasereceiptJobMainController.java @@ -52,22 +52,6 @@ public class PurchasereceiptJobMainController { @Resource private AdminUserApi userApi; - @Operation(summary = "承接任务") - @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:accept')") - @PostMapping(value = "/accept/{id}") - public CommonResult accept(@PathVariable("id") Long id) { - int result = purchasereceiptJobMainService.accept(id); - return success(result > 0); - } - - @Operation(summary = "取消承接任务") - @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:cancel-accept')") - @PostMapping(value = "/cancelAccept/{id}") - public CommonResult cancelAccept(@PathVariable("id") Long id) { - int result = purchasereceiptJobMainService.cancelAccept(id); - return success(result > 0); - } - @GetMapping("/page") @Operation(summary = "获得采购收货任务主分页") @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:query')") @@ -189,4 +173,29 @@ public class PurchasereceiptJobMainController { return success(countByStatus); } + @Operation(summary = "承接任务") + @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:accept')") + @PostMapping(value = "/accept/{id}") + public CommonResult accept(@PathVariable("id") Long id) { + int result = purchasereceiptJobMainService.accept(id); + return success(result > 0); + } + + @Operation(summary = "取消承接任务") + @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:cancel-accept')") + @PostMapping(value = "/cancelAccept/{id}") + public CommonResult cancelAccept(@PathVariable("id") Long id) { + int result = purchasereceiptJobMainService.cancelAccept(id); + return success(result > 0); + } + + @PutMapping("/execute") + @Operation(summary = "执行采购收货任务主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-job-main:execute')") + public CommonResult excutePurchasereceiptJobMain(@Valid @RequestBody PurchasereceiptJobMainUpdateReqVO updateReqVO) { + Integer count = purchasereceiptJobMainService.excutePurchasereceiptJobMain(updateReqVO); + return success(count > 0); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailBaseVO.java index a2f0e337..119d1625 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailBaseVO.java @@ -1,18 +1,11 @@ package com.win.module.wms.controller.purchasereceiptJob.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.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + 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; @@ -120,4 +113,13 @@ public class PurchasereceiptJobDetailBaseVO { @Schema(description = "到货主代码") private String toOwnerCode; + @Schema(description = "实际数量") + private BigDecimal handleQty; + + @Schema(description = "到包装号") + private String toPackingNumber; + + @Schema(description = "到际批次") + private String toBatch; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainUpdateReqVO.java index 95ebcc03..87a55025 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobMainUpdateReqVO.java @@ -1,9 +1,12 @@ package com.win.module.wms.controller.purchasereceiptJob.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import javax.validation.constraints.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.Valid; +import java.util.List; @Schema(description = "管理后台 - 采购收货任务主更新 Request VO") @Data @@ -11,4 +14,6 @@ import javax.validation.constraints.*; @ToString(callSuper = true) public class PurchasereceiptJobMainUpdateReqVO extends PurchasereceiptJobMainBaseVO { + @Schema(description = "子表数据") + private List<@Valid PurchasereceiptJobDetailUpdateReqVO> subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailBaseVO.java index ea1a5bed..3c0b9c45 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailBaseVO.java @@ -1,20 +1,12 @@ package com.win.module.wms.controller.purchasereceiptRecord.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.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; +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; @@ -80,10 +72,10 @@ public class PurchasereceiptRecordDetailBaseVO { private String toLocationGroupCode; @Schema(description = "从库区代码") - private String fromAreaCodes; + private String fromAreaCode; @Schema(description = "到库区代码") - private String toAreaCodes; + private String toAreaCode; @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "订单号不能为空") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExcelVO.java index 41837143..9fab3e02 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExcelVO.java @@ -1,22 +1,12 @@ package com.win.module.wms.controller.purchasereceiptRecord.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.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -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; /** @@ -70,10 +60,10 @@ public class PurchasereceiptRecordDetailExcelVO { private String toLocationGroupCode; @ExcelProperty("从库区代码") - private String fromAreaCodes; + private String fromAreaCode; @ExcelProperty("到库区代码") - private String toAreaCodes; + private String toAreaCode; @ExcelProperty("订单号") private String poNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExportReqVO.java index 09cf3d64..d5609654 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailExportReqVO.java @@ -62,10 +62,10 @@ public class PurchasereceiptRecordDetailExportReqVO { private String toLocationGroupCode; @Schema(description = "从库区代码") - private String fromAreaCodes; + private String fromAreaCode; @Schema(description = "到库区代码") - private String toAreaCodes; + private String toAreaCode; @Schema(description = "订单号") private String poNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailPageReqVO.java index 667c236a..ca807dbd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchasereceiptRecordDetailPageReqVO.java @@ -67,10 +67,10 @@ public class PurchasereceiptRecordDetailPageReqVO extends PageParam { private String toLocationGroupCode; @Schema(description = "从库区代码") - private String fromAreaCodes; + private String fromAreaCode; @Schema(description = "到库区代码") - private String toAreaCodes; + private String toAreaCode; @Schema(description = "订单号") private String poNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailBaseVO.java new file mode 100644 index 00000000..c613f773 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailBaseVO.java @@ -0,0 +1,171 @@ +package com.win.module.wms.controller.purchasereceiptRecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +/** + * 采购收货记录子 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class PurchaseshortageDetailBaseVO { + + @Schema(description = "从包装号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "从包装号不能为空") + private String fromPackingNumber; + + @Schema(description = "到包装号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "到包装号不能为空") + private String toPackingNumber; + + @Schema(description = "从器具号") + private String fromContainerNumber; + + @Schema(description = "到器具号") + private String toContainerNumber; + + @Schema(description = "从批次") + private String fromBatch; + + @Schema(description = "替代批次") + private String altBatch; + + @Schema(description = "到货日期", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "到货日期不能为空") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime arriveDate; + + @Schema(description = "生产日期", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "生产日期不能为空") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime produceDate; + + @Schema(description = "过期日期", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "过期日期不能为空") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime expireDate; + + @Schema(description = "库存状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "库存状态不能为空") + private String inventoryStatus; + + @Schema(description = "从库位代码") + private String fromLocationCode; + + @Schema(description = "到库位代码") + private String toLocationCode; + + @Schema(description = "从库位组代码") + private String fromLocationGroupCode; + + @Schema(description = "到库位组代码") + private String toLocationGroupCode; + + @Schema(description = "从库区代码") + private String fromAreaCodes; + + @Schema(description = "到库区代码") + private String toAreaCodes; + + @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "订单号不能为空") + private String poNumber; + + @Schema(description = "订单行", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "订单行不能为空") + private String poLine; + + @Schema(description = "标包数量", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "标包数量不能为空") + private BigDecimal stdPackQty; + + @Schema(description = "标包单位", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "标包单位不能为空") + private String stdPackUnit; + + @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "数量不能为空") + private BigDecimal qty; + + @Schema(description = "单位") + private String uom; + + @Schema(description = "供应商计量数量") + private BigDecimal supplierQty; + + @Schema(description = "供应商计量单位") + private String supplierUom; + + @Schema(description = "转换率") + private BigDecimal convertRate; + + @Schema(description = "目检结果") + private String visualInspectResult; + + @Schema(description = "目检照片") + private String visualInspectPhotos; + + @Schema(description = "不合格原因", example = "不对") + private String failedReason; + + @Schema(description = "单价", example = "25384") + private BigDecimal singlePrice; + + @Schema(description = "金额") + private BigDecimal amount; + + @Schema(description = "任务明细ID", example = "20190") + private String jobDetailId; + + @Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "物品代码不能为空") + private String itemCode; + + @Schema(description = "物品名称", example = "赵六") + private String itemName; + + @Schema(description = "物品描述1") + private String itemDesc1; + + @Schema(description = "物品描述2") + private String itemDesc2; + + @Schema(description = "主表ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "30925") + @NotNull(message = "主表ID不能为空") + private Long masterId; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "地点ID", example = "25612") + private String siteId; + + @Schema(description = "项目代码") + private String projectCode; + + @Schema(description = "代码") + private String code; + + @Schema(description = "接口类型", example = "1") + private String interfaceType; + + @Schema(description = "从货主代码") + private String fromOwnerCode; + + @Schema(description = "到货主代码") + private String toOwnerCode; + + @Schema(description = "到批次") + private String toBatch; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailCreateReqVO.java new file mode 100644 index 00000000..18de29e4 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailCreateReqVO.java @@ -0,0 +1,14 @@ +package com.win.module.wms.controller.purchasereceiptRecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Schema(description = "管理后台 - 采购收货记录子创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PurchaseshortageDetailCreateReqVO extends PurchaseshortageDetailBaseVO { + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailExcelVO.java new file mode 100644 index 00000000..75f0a8d6 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailExcelVO.java @@ -0,0 +1,158 @@ +package com.win.module.wms.controller.purchasereceiptRecord.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 采购收货记录子 Excel VO + * + * @author 超级管理员 + */ +@Data +public class PurchaseshortageDetailExcelVO { + + @ExcelProperty("id") + private Long id; + + @ExcelProperty("从包装号") + private String fromPackingNumber; + + @ExcelProperty("到包装号") + private String toPackingNumber; + + @ExcelProperty("从器具号") + private String fromContainerNumber; + + @ExcelProperty("到器具号") + private String toContainerNumber; + + @ExcelProperty("从批次") + private String fromBatch; + + @ExcelProperty("替代批次") + private String altBatch; + + @ExcelProperty("到货日期") + private LocalDateTime arriveDate; + + @ExcelProperty("生产日期") + private LocalDateTime produceDate; + + @ExcelProperty("过期日期") + private LocalDateTime expireDate; + + @ExcelProperty("库存状态") + private String inventoryStatus; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("到库位代码") + private String toLocationCode; + + @ExcelProperty("从库位组代码") + private String fromLocationGroupCode; + + @ExcelProperty("到库位组代码") + private String toLocationGroupCode; + + @ExcelProperty("从库区代码") + private String fromAreaCodes; + + @ExcelProperty("到库区代码") + private String toAreaCodes; + + @ExcelProperty("订单号") + private String poNumber; + + @ExcelProperty("订单行") + private String poLine; + + @ExcelProperty("标包数量") + private BigDecimal stdPackQty; + + @ExcelProperty("标包单位") + private String stdPackUnit; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty("单位") + private String uom; + + @ExcelProperty("供应商计量数量") + private BigDecimal supplierQty; + + @ExcelProperty("供应商计量单位") + private String supplierUom; + + @ExcelProperty("转换率") + private BigDecimal convertRate; + + @ExcelProperty("目检结果") + private String visualInspectResult; + + @ExcelProperty("目检照片") + private String visualInspectPhotos; + + @ExcelProperty("不合格原因") + private String failedReason; + + @ExcelProperty("单价") + private BigDecimal singlePrice; + + @ExcelProperty("金额") + private BigDecimal amount; + + @ExcelProperty("任务明细ID") + private String jobDetailId; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("主表ID") + private Long masterId; + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("备注") + private String remark; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @ExcelProperty("地点ID") + private String siteId; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("代码") + private String code; + + @ExcelProperty("接口类型") + private String interfaceType; + + @ExcelProperty("从货主代码") + private String fromOwnerCode; + + @ExcelProperty("到货主代码") + private String toOwnerCode; + + @ExcelProperty("到批次") + private String toBatch; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailExportReqVO.java new file mode 100644 index 00000000..3e5da6c2 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailExportReqVO.java @@ -0,0 +1,158 @@ +package com.win.module.wms.controller.purchasereceiptRecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +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; + +@Schema(description = "管理后台 - 采购收货记录子 Excel 导出 Request VO,参数和 PurchaseshortageDetailPageReqVO 是一致的") +@Data +public class PurchaseshortageDetailExportReqVO { + + @Schema(description = "从包装号") + private String fromPackingNumber; + + @Schema(description = "到包装号") + private String toPackingNumber; + + @Schema(description = "从器具号") + private String fromContainerNumber; + + @Schema(description = "到器具号") + private String toContainerNumber; + + @Schema(description = "从批次") + private String fromBatch; + + @Schema(description = "替代批次") + private String altBatch; + + @Schema(description = "到货日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] arriveDate; + + @Schema(description = "生产日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] produceDate; + + @Schema(description = "过期日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] expireDate; + + @Schema(description = "库存状态", example = "1") + private String inventoryStatus; + + @Schema(description = "从库位代码") + private String fromLocationCode; + + @Schema(description = "到库位代码") + private String toLocationCode; + + @Schema(description = "从库位组代码") + private String fromLocationGroupCode; + + @Schema(description = "到库位组代码") + private String toLocationGroupCode; + + @Schema(description = "从库区代码") + private String fromAreaCodes; + + @Schema(description = "到库区代码") + private String toAreaCodes; + + @Schema(description = "订单号") + private String poNumber; + + @Schema(description = "订单行") + private String poLine; + + @Schema(description = "标包数量") + private BigDecimal stdPackQty; + + @Schema(description = "标包单位") + private String stdPackUnit; + + @Schema(description = "数量") + private BigDecimal qty; + + @Schema(description = "单位") + private String uom; + + @Schema(description = "供应商计量数量") + private BigDecimal supplierQty; + + @Schema(description = "供应商计量单位") + private String supplierUom; + + @Schema(description = "转换率") + private BigDecimal convertRate; + + @Schema(description = "目检结果") + private String visualInspectResult; + + @Schema(description = "目检照片") + private String visualInspectPhotos; + + @Schema(description = "不合格原因", example = "不对") + private String failedReason; + + @Schema(description = "单价", example = "25384") + private BigDecimal singlePrice; + + @Schema(description = "金额") + private BigDecimal amount; + + @Schema(description = "任务明细ID", example = "20190") + private String jobDetailId; + + @Schema(description = "物品代码") + private String itemCode; + + @Schema(description = "物品名称", example = "赵六") + private String itemName; + + @Schema(description = "物品描述1") + private String itemDesc1; + + @Schema(description = "物品描述2") + private String itemDesc2; + + @Schema(description = "主表ID", example = "30925") + private Long masterId; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "地点ID", example = "25612") + private String siteId; + + @Schema(description = "项目代码") + private String projectCode; + + @Schema(description = "代码") + private String code; + + @Schema(description = "接口类型", example = "1") + private String interfaceType; + + @Schema(description = "从货主代码") + private String fromOwnerCode; + + @Schema(description = "到货主代码") + private String toOwnerCode; + + @Schema(description = "到批次") + private String toBatch; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailPageReqVO.java new file mode 100644 index 00000000..f0313d74 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailPageReqVO.java @@ -0,0 +1,163 @@ +package com.win.module.wms.controller.purchasereceiptRecord.vo; + +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; + +@Schema(description = "管理后台 - 采购收货记录子分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PurchaseshortageDetailPageReqVO extends PageParam { + + @Schema(description = "从包装号") + private String fromPackingNumber; + + @Schema(description = "到包装号") + private String toPackingNumber; + + @Schema(description = "从器具号") + private String fromContainerNumber; + + @Schema(description = "到器具号") + private String toContainerNumber; + + @Schema(description = "从批次") + private String fromBatch; + + @Schema(description = "替代批次") + private String altBatch; + + @Schema(description = "到货日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] arriveDate; + + @Schema(description = "生产日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] produceDate; + + @Schema(description = "过期日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] expireDate; + + @Schema(description = "库存状态", example = "1") + private String inventoryStatus; + + @Schema(description = "从库位代码") + private String fromLocationCode; + + @Schema(description = "到库位代码") + private String toLocationCode; + + @Schema(description = "从库位组代码") + private String fromLocationGroupCode; + + @Schema(description = "到库位组代码") + private String toLocationGroupCode; + + @Schema(description = "从库区代码") + private String fromAreaCodes; + + @Schema(description = "到库区代码") + private String toAreaCodes; + + @Schema(description = "订单号") + private String poNumber; + + @Schema(description = "订单行") + private String poLine; + + @Schema(description = "标包数量") + private BigDecimal stdPackQty; + + @Schema(description = "标包单位") + private String stdPackUnit; + + @Schema(description = "数量") + private BigDecimal qty; + + @Schema(description = "单位") + private String uom; + + @Schema(description = "供应商计量数量") + private BigDecimal supplierQty; + + @Schema(description = "供应商计量单位") + private String supplierUom; + + @Schema(description = "转换率") + private BigDecimal convertRate; + + @Schema(description = "目检结果") + private String visualInspectResult; + + @Schema(description = "目检照片") + private String visualInspectPhotos; + + @Schema(description = "不合格原因", example = "不对") + private String failedReason; + + @Schema(description = "单价", example = "25384") + private BigDecimal singlePrice; + + @Schema(description = "金额") + private BigDecimal amount; + + @Schema(description = "任务明细ID", example = "20190") + private String jobDetailId; + + @Schema(description = "物品代码") + private String itemCode; + + @Schema(description = "物品名称", example = "赵六") + private String itemName; + + @Schema(description = "物品描述1") + private String itemDesc1; + + @Schema(description = "物品描述2") + private String itemDesc2; + + @Schema(description = "主表ID", example = "30925") + private Long masterId; + + @Schema(description = "单据号") + private String number; + + @Schema(description = "备注", example = "随便") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "地点ID", example = "25612") + private String siteId; + + @Schema(description = "项目代码") + private String projectCode; + + @Schema(description = "代码") + private String code; + + @Schema(description = "接口类型", example = "1") + private String interfaceType; + + @Schema(description = "从货主代码") + private String fromOwnerCode; + + @Schema(description = "到货主代码") + private String toOwnerCode; + + @Schema(description = "到批次") + private String toBatch; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailRespVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailRespVO.java new file mode 100644 index 00000000..54ce0ab7 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailRespVO.java @@ -0,0 +1,19 @@ +package com.win.module.wms.controller.purchasereceiptRecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 采购收货记录子 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PurchaseshortageDetailRespVO extends PurchaseshortageDetailBaseVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26980") + private Long id; + + @Schema(description = "创建时间") + private LocalDateTime createTime; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailUpdateReqVO.java new file mode 100644 index 00000000..d2faab32 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRecord/vo/PurchaseshortageDetailUpdateReqVO.java @@ -0,0 +1,20 @@ +package com.win.module.wms.controller.purchasereceiptRecord.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 采购收货记录子更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PurchaseshortageDetailUpdateReqVO extends PurchaseshortageDetailBaseVO { + + @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26980") + @NotNull(message = "id不能为空") + private Long id; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java index ca072e2e..5b63d2c0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java @@ -127,7 +127,7 @@ public class PurchasereceiptRequestMainController { ExcelUtils.write(response, "采购收货申请主.xlsx", "数据", PurchasereceiptRequestMainExcelVO.class, resultList, mapDropDown); } - @GetMapping("/export-excel-senior") + @PostMapping("/export-excel-senior") @Operation(summary = "导出采购收货申请主 Excel") @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-main:export')") @OperateLog(type = EXPORT) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainBaseVO.java index b2f17c52..186ff877 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainBaseVO.java @@ -58,6 +58,7 @@ public class PurchasereceiptRequestMainBaseVO { @Schema(description = "到月台代码") private String toDockCode; + @OnlyOne @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) private String number; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java index e2602d85..3c7d088f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java @@ -23,6 +23,8 @@ import java.time.LocalDateTime; @Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 public class PurchasereceiptRequestMainImportVO { + @ExcelProperty("单据号") + private String number; //主表数据 @ExcelProperty("供应商代码") private String supplierCode; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java index d19ff509..8f6dacce 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/PurchasereturnRequestMainController.java @@ -1,9 +1,13 @@ package com.win.module.wms.controller.purchasereturnRequest; 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.purchasereturnRequest.vo.*; +import com.win.module.wms.enums.DictTypeConstants; +import io.swagger.v3.oas.annotations.Parameters; import com.win.module.wms.convert.purchasereturnRequest.PurchasereturnRequestDetailConvert; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO; import com.win.module.wms.service.purchasereturnRequest.PurchasereturnRequestDetailService; @@ -17,6 +21,8 @@ import io.swagger.v3.oas.annotations.Operation; import javax.validation.*; import javax.servlet.http.*; +import java.time.LocalDateTime; +import java.time.ZoneOffset; import java.util.*; import java.io.IOException; @@ -32,6 +38,7 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import com.win.module.wms.convert.purchasereturnRequest.PurchasereturnRequestMainConvert; import com.win.module.wms.service.purchasereturnRequest.PurchasereturnRequestMainService; +import org.springframework.web.multipart.MultipartFile; @Tag(name = "管理后台 - 采购退货申请主") @RestController @@ -128,6 +135,49 @@ public class PurchasereturnRequestMainController { ExcelUtils.write(response, "采购退货申请主.xls", "数据", PurchasereturnRequestMainExcelVO.class, datas); } + @GetMapping("/get-import-template") + @Operation(summary = "获得导入采购退货信息模板") + public void importTemplate(HttpServletResponse response) throws IOException { + // 手动创建导出 demo + List list = new ArrayList<>(); + Map mapDropDown = new HashMap<>(); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(10, uom); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(11, inventoryStatus); + String[] reason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); + mapDropDown.put(13, reason); + String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); + mapDropDown.put(15, transferMode); + // 输出 + ExcelUtils.write(response, "采购退货信息导入模板.xlsx", "采购退货信息列表", PurchasereturnRequestImportVO.class, list, mapDropDown); + } + + + @PostMapping("/import") + @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:purchasereturn-request-main:import')") + public CommonResult> importExcel(HttpServletResponse response, + @RequestParam("file") MultipartFile file, + @RequestParam(value = "mode") Integer mode, + @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { + List list = ExcelUtils.read(file, PurchasereturnRequestImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(PurchasereturnRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = purchasereturnRequestMainService.importPurchasereturnRequestList(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); + returnMap.put("errorFile", url); + } + return success(returnMap); + } @GetMapping("/getPurchasereturnRequestById") @Operation(summary = "APP获得采购退货申请主子表明细列表") @Parameter(name = "id", description = "编号", required = true, example = "1024") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportErrorVO.java new file mode 100644 index 00000000..b8baec5d --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.purchasereturnRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + + +/** + * 供应商发票申请 Excel VO + * + * @author 超级管理员 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PurchasereturnRequestImportErrorVO extends PurchasereturnRequestImportVO { + + @ExcelProperty(value = "导入状态", index = 0) + private String importStatus; + + @ExcelProperty(value = "导入说明", index = 1) + private String importRemark; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportVO.java new file mode 100644 index 00000000..025579b1 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestImportVO.java @@ -0,0 +1,81 @@ +package com.win.module.wms.controller.purchasereturnRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; +import com.win.module.wms.enums.DictTypeConstants; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; + + +/** + * 供应商发票申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class PurchasereturnRequestImportVO { + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("采购收货记录单号") + private String purchaseReceiptRecordNumber; + + @ExcelProperty("供应商代码") + private String supplierCode; + + @ExcelProperty("订单号") + private String poNumber; + + @ExcelProperty("订单行") + private String poLine; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String inventoryStatus; + + @ExcelProperty("来源库位") + private String fromLocationCode; + + @ExcelProperty(value = "原因", converter = DictConvert.class) + @DictFormat(DictTypeConstants.PURCHASE_RETURN_REASON) + private String reason; + + @ExcelProperty("承运商") + private String carrierCode; + + @ExcelProperty(value = "运输方式", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRANSFER_MODE) + private String transferMode; + + @ExcelProperty("车牌号") + private String vehiclePlateNumber; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java index c865176e..394e4573 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainBaseVO.java @@ -1,11 +1,8 @@ package com.win.module.wms.controller.purchasereturnRequest.vo; +import com.win.framework.excel.core.annotations.OnlyOne; 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 org.springframework.format.annotation.DateTimeFormat; @@ -44,12 +41,12 @@ public class PurchasereturnRequestMainBaseVO { private String vehiclePlateNumber; @Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从仓库代码不能为空") private String fromWarehouseCode; @Schema(description = "到仓库代码") private String toWarehouseCode; + @OnlyOne @Schema(description = "单据号") private String number; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainCreateReqVO.java index c47e485c..e8c71257 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainCreateReqVO.java @@ -1,12 +1,19 @@ package com.win.module.wms.controller.purchasereturnRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; 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 PurchasereturnRequestMainCreateReqVO extends PurchasereturnRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainUpdateReqVO.java index d2b84012..bb784012 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRequest/vo/PurchasereturnRequestMainUpdateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.purchasereturnRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; + @Schema(description = "管理后台 - 采购退货申请主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class PurchasereturnRequestMainUpdateReqVO extends PurchasereturnRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java index d6b0ab97..b743cac8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/PutawayRequestMainController.java @@ -1,9 +1,13 @@ package com.win.module.wms.controller.putawayRequest; 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.putawayRequest.vo.*; +import com.win.module.wms.enums.DictTypeConstants; +import io.swagger.v3.oas.annotations.Parameters; import com.win.module.wms.convert.putawayRequest.PutawayRequestDetailConvert; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO; import com.win.module.wms.service.putawayRequest.PutawayRequestDetailService; @@ -16,6 +20,8 @@ import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; import javax.validation.*; import javax.servlet.http.*; +import java.time.LocalDateTime; +import java.time.ZoneOffset; import java.util.*; import java.io.IOException; import com.win.framework.common.pojo.PageResult; @@ -27,6 +33,7 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO; import com.win.module.wms.convert.putawayRequest.PutawayRequestMainConvert; import com.win.module.wms.service.putawayRequest.PutawayRequestMainService; +import org.springframework.web.multipart.MultipartFile; @Tag(name = "管理后台 - 上架申请主") @RestController @@ -118,7 +125,26 @@ public class PutawayRequestMainController { //后端创建个字段作为前端展示的虚拟字段 vo.setCreator(user.getNickname()); } - ExcelUtils.write(response, "上架申请主.xls", "数据", PutawayRequestMainExcelVO.class, datas); + Map mapDropDown = new HashMap<>(); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(8, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(10, uom); + ExcelUtils.write(response, "上架申请主.xls", "数据", PutawayRequestMainExcelVO.class, datas,mapDropDown); + } + + @GetMapping("/get-import-template") + @Operation(summary = "获得导入上架申请信息模板") + public void importTemplate(HttpServletResponse response) throws IOException { + // 手动创建导出 demo + List list = new ArrayList<>(); + Map mapDropDown = new HashMap<>(); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(8, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(10, uom); + // 输出 + ExcelUtils.write(response, "上架申请信息导入模板.xlsx", "上架申请信息列表", PutawayRequestImportVO.class, list, mapDropDown); } @GetMapping("/getPutawayRequestById") @@ -139,4 +165,29 @@ public class PutawayRequestMainController { return success(result); } + + @PostMapping("/import") + @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:putaway-request-main:import')") + public CommonResult> importExcel(HttpServletResponse response, + @RequestParam("file") MultipartFile file, + @RequestParam(value = "mode") Integer mode, + @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { + List list = ExcelUtils.read(file, PutawayRequestImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(PutawayRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = putawayRequestMainService.importPutawayRequestList(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); + returnMap.put("errorFile", url); + } + return success(returnMap); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestDetailBaseVO.java index 9ffcf58e..46a8456b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestDetailBaseVO.java @@ -92,4 +92,6 @@ public class PutawayRequestDetailBaseVO { @Schema(description = "到货主代码") private String toOwnerCode; + @Schema(description = "主表id") + private Long masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportErrorVO.java new file mode 100644 index 00000000..bcdb2660 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.putawayRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + + +/** + * 供应商发票申请 Excel VO + * + * @author 超级管理员 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PutawayRequestImportErrorVO extends PutawayRequestImportVO { + + @ExcelProperty(value = "导入状态", index = 0) + private String importStatus; + + @ExcelProperty(value = "导入说明", index = 1) + private String importRemark; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportVO.java new file mode 100644 index 00000000..b7d36815 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestImportVO.java @@ -0,0 +1,63 @@ +package com.win.module.wms.controller.putawayRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; +import com.win.module.wms.enums.DictTypeConstants; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; + + +/** + * 上架申请 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class PutawayRequestImportVO { + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("供应商代码") + private String supplierCode; + + @ExcelProperty("订单号") + private String poNumber; + + @ExcelProperty("订单行") + private String poLine; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String inventoryStatus; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat(DictTypeConstants.UOM) + private String uom; + + @ExcelProperty("来源库位") + private String fromLocationCode; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java index 03df50b7..ec3345ad 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainBaseVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.putawayRequest.vo; +import com.win.framework.excel.core.annotations.OnlyOne; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -37,6 +38,7 @@ public class PutawayRequestMainBaseVO { @Schema(description = "从库区代码范围") private String fromAreaCodes; + @OnlyOne @Schema(description = "单据号") private String number; @@ -101,8 +103,4 @@ public class PutawayRequestMainBaseVO { @NotNull(message = "直接生成记录不能为空") private String directCreateRecord; - - - - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainCreateReqVO.java index 84014eb5..beaa7aaa 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainCreateReqVO.java @@ -1,12 +1,19 @@ package com.win.module.wms.controller.putawayRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; 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 PutawayRequestMainCreateReqVO extends PutawayRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainUpdateReqVO.java index d929d8dd..b9d13be8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/putawayRequest/vo/PutawayRequestMainUpdateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.putawayRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; + @Schema(description = "管理后台 - 上架申请主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class PutawayRequestMainUpdateReqVO extends PutawayRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/recordsetting/RecordsettingController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/recordsetting/RecordsettingController.java index 973d7b05..4a9fa4cf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/recordsetting/RecordsettingController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/recordsetting/RecordsettingController.java @@ -8,7 +8,9 @@ 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.jobsetting.vo.JobsettingRespVO; import com.win.module.wms.controller.recordsetting.vo.*; +import com.win.module.wms.convert.jobsetting.JobsettingConvert; import com.win.module.wms.convert.recordsetting.RecordsettingConvert; import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; import com.win.module.wms.enums.DictTypeConstants; @@ -103,7 +105,13 @@ public class RecordsettingController { @PreAuthorize("@ss.hasPermission('wms:recordsetting:query')") public CommonResult> getRecordsettingPage(@Valid RecordsettingPageReqVO pageVO) { PageResult pageResult = recordsettingService.getRecordsettingPage(pageVO); - return success(RecordsettingConvert.INSTANCE.convertPage(pageResult)); + PageResult result = RecordsettingConvert.INSTANCE.convertPage(pageResult); + for(RecordsettingRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/requestsetting/RequestsettingController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/requestsetting/RequestsettingController.java index c6639d2e..21b8c7ef 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/requestsetting/RequestsettingController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/requestsetting/RequestsettingController.java @@ -8,7 +8,9 @@ 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.documentsetting.vo.DocumentsettingRespVO; import com.win.module.wms.controller.requestsetting.vo.*; +import com.win.module.wms.convert.documentsetting.DocumentsettingConvert; import com.win.module.wms.convert.requestsetting.RequestsettingConvert; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.enums.DictTypeConstants; @@ -104,7 +106,13 @@ public class RequestsettingController { @PreAuthorize("@ss.hasPermission('wms:requestsetting:query')") public CommonResult> getRequestsettingPage(@Valid RequestsettingPageReqVO pageVO) { PageResult pageResult = requestsettingService.getRequestsettingPage(pageVO); - return success(RequestsettingConvert.INSTANCE.convertPage(pageResult)); + PageResult result = RequestsettingConvert.INSTANCE.convertPage(pageResult); + for(RequestsettingRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/saleprice/SalepriceController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/saleprice/SalepriceController.java index b3bfdf05..eba552c1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/saleprice/SalepriceController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/saleprice/SalepriceController.java @@ -8,8 +8,10 @@ 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.project.vo.ProjectRespVO; import com.win.module.wms.controller.saleprice.vo.*; import com.win.module.wms.controller.saleprice.vo.SalepriceImportExcelVo; +import com.win.module.wms.convert.project.ProjectConvert; import com.win.module.wms.convert.saleprice.SalepriceConvert; import com.win.module.wms.dal.dataobject.saleprice.SalepriceDO; import com.win.module.wms.enums.DictTypeConstants; @@ -93,7 +95,13 @@ public class SalepriceController { @PreAuthorize("@ss.hasPermission('wms:saleprice:query')") public CommonResult> getSalepricePage(@Valid SalepricePageReqVO pageVO) { PageResult pageResult = salepriceService.getSalepricePage(pageVO); - return success(SalepriceConvert.INSTANCE.convertPage(pageResult)); + PageResult result = SalepriceConvert.INSTANCE.convertPage(pageResult); + for(SalepriceRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得销售价格单信息分页") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/ShiftController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/ShiftController.java index a2b3ea2f..79ec93ab 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/ShiftController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/ShiftController.java @@ -8,8 +8,10 @@ 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.carrier.vo.CarrierRespVO; import com.win.module.wms.controller.shift.vo.*; import com.win.module.wms.controller.shift.vo.ShiftImportExcelVo; +import com.win.module.wms.convert.carrier.CarrierConvert; import com.win.module.wms.convert.shift.ShiftConvert; import com.win.module.wms.dal.dataobject.shift.ShiftDO; import com.win.module.wms.enums.DictTypeConstants; @@ -91,7 +93,13 @@ public class ShiftController { @PreAuthorize("@ss.hasPermission('wms:shift:query')") public CommonResult> getShiftPage(@Valid ShiftPageReqVO pageVO) { PageResult pageResult = shiftService.getShiftPage(pageVO); - return success(ShiftConvert.INSTANCE.convertPage(pageResult)); + PageResult result = ShiftConvert.INSTANCE.convertPage(pageResult); + for(ShiftRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得班次信息分页") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExcelVO.java index c46a8f05..44b01618 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExcelVO.java @@ -1,5 +1,7 @@ package com.win.module.wms.controller.shift.vo; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -27,9 +29,6 @@ public class ShiftExcelVO { @ExcelProperty("名称") private String name; - @ExcelProperty("描述") - private String description; - @ExcelProperty("开始时间") private LocalDateTime beginTime; @@ -51,10 +50,12 @@ public class ShiftExcelVO { @ExcelProperty("创建者ID") private String creator; - @ExcelProperty("是否跨天") + @ExcelProperty(value = "是否跨天", converter = DictConvert.class) + @DictFormat("true_false") private String endAtNextDay; - @ExcelProperty("是否可用") + @ExcelProperty(value = "是否可用", converter = DictConvert.class) + @DictFormat("true_false") private String available; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExportReqVO.java index 78637881..fc907908 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/shift/vo/ShiftExportReqVO.java @@ -19,9 +19,6 @@ public class ShiftExportReqVO { @Schema(description = "名称") private String name; - @Schema(description = "描述") - private String description; - @Schema(description = "开始时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] beginTime; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/stdcostprice/StdcostpriceController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/stdcostprice/StdcostpriceController.java index 6fe56da0..318ccf45 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/stdcostprice/StdcostpriceController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/stdcostprice/StdcostpriceController.java @@ -8,9 +8,15 @@ 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.bom.vo.BomRespVO; +import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO; import com.win.module.wms.controller.stdcostprice.vo.*; import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceImportExcelVo; +import com.win.module.wms.convert.bom.BomConvert; +import com.win.module.wms.convert.itembasic.ItembasicConvert; import com.win.module.wms.convert.stdcostprice.StdcostpriceConvert; +import com.win.module.wms.dal.dataobject.bom.BomDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.stdcostprice.StdcostpriceService; @@ -79,21 +85,19 @@ public class StdcostpriceController { return success(StdcostpriceConvert.INSTANCE.convert(stdcostprice)); } - @GetMapping("/list") - @Operation(summary = "获得标准成本价格单列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:stdcostprice:query')") - public CommonResult> getStdcostpriceList(@RequestParam("ids") Collection ids) { - List list = stdcostpriceService.getStdcostpriceList(ids); - return success(StdcostpriceConvert.INSTANCE.convertList(list)); - } @GetMapping("/page") @Operation(summary = "获得标准成本价格单分页") @PreAuthorize("@ss.hasPermission('wms:stdcostprice:query')") public CommonResult> getStdcostpricePage(@Valid StdcostpricePageReqVO pageVO) { PageResult pageResult = stdcostpriceService.getStdcostpricePage(pageVO); - return success(StdcostpriceConvert.INSTANCE.convertPage(pageResult)); + PageResult result = StdcostpriceConvert.INSTANCE.convertPage(pageResult); + for(StdcostpriceRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @@ -117,18 +121,33 @@ public class StdcostpriceController { public void exportStdcostpriceExcel(@Valid StdcostpriceExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = stdcostpriceService.getStdcostpriceList(exportReqVO); - // 导出 Excel - List datas = StdcostpriceConvert.INSTANCE.convertList02(list); - for(StdcostpriceExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } Map mapDropDown = new HashMap<>(); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "标准成本价格单.xlsx", "数据", StdcostpriceExcelVO.class, resultList, mapDropDown); + } + @PostMapping("/export-excel-senior") + @Operation(summary = "导出标准成本价格单 Excel") + @PreAuthorize("@ss.hasPermission('wms:stdcostprice:export')") + @OperateLog(type = EXPORT) + public void exportStdcostpriceExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = stdcostpriceService.getStdcostpriceList(conditions); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "标准成本价格单.xlsx", "数据", StdcostpriceExcelVO.class, resultList, mapDropDown); + } + private List getExcelVo(List list, Map mapDropDown) { String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); mapDropDown.put(4, available); String[] currency = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.CURRENCY); mapDropDown.put(2, currency); - ExcelUtils.write(response, "标准成本价格单.xls", "数据", StdcostpriceExcelVO.class, datas,mapDropDown); + // 导出 Excel + List resultList = StdcostpriceConvert.INSTANCE.convertList02(list); + for(StdcostpriceExcelVO vo : resultList) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return resultList; } @GetMapping("/get-import-template") @Operation(summary = "获得导入标准成本价格单信息模板") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplier/SupplierController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplier/SupplierController.java index ec0dbec1..712362d2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplier/SupplierController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplier/SupplierController.java @@ -8,8 +8,13 @@ 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.itembasic.vo.ItembasicExcelVO; +import com.win.module.wms.controller.itempackaging.vo.ItempackagingRespVO; import com.win.module.wms.controller.supplier.vo.*; +import com.win.module.wms.convert.itembasic.ItembasicConvert; +import com.win.module.wms.convert.itempackaging.ItempackagingConvert; import com.win.module.wms.convert.supplier.SupplierConvert; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.supplier.SupplierDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.supplier.SupplierService; @@ -103,7 +108,13 @@ public class SupplierController { @PreAuthorize("@ss.hasPermission('wms:supplier:query')") public CommonResult> getSupplierPage(@Valid SupplierPageReqVO pageVO) { PageResult pageResult = supplierService.getSupplierPage(pageVO); - return success(SupplierConvert.INSTANCE.convertPage(pageResult)); + PageResult result = SupplierConvert.INSTANCE.convertPage(pageResult); + for(SupplierRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") @@ -113,20 +124,35 @@ public class SupplierController { public void exportSupplierExcel(@Valid SupplierExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = supplierService.getSupplierList(exportReqVO); - // 导出 Excel - List datas = SupplierConvert.INSTANCE.convertList02(list); - for(SupplierExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } Map mapDropDown = new HashMap<>(); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "供应商.xlsx", "数据", SupplierExcelVO.class, resultList, mapDropDown); + } + @PostMapping("/export-excel-senior") + @Operation(summary = "导出供应商 Excel") + @PreAuthorize("@ss.hasPermission('wms:supplier:export')") + @OperateLog(type = EXPORT) + public void exportSupplierExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = supplierService.getSupplierList(conditions); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "供应商.xlsx", "数据", SupplierExcelVO.class, resultList, mapDropDown); + } + private List getExcelVo(List list, Map mapDropDown) { String[] currency = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.CURRENCY); mapDropDown.put(11, currency); String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.SUPPLIER_TYPE); mapDropDown.put(13, type); String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); mapDropDown.put(14, available); - ExcelUtils.write(response, "供应商.xls", "数据", SupplierExcelVO.class, datas,mapDropDown); + // 导出 Excel + List resultList = SupplierConvert.INSTANCE.convertList02(list); + for(SupplierExcelVO vo : resultList) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return resultList; } @GetMapping("/get-import-template") @Operation(summary = "获得导入供应商模板") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/SupplieritemController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/SupplieritemController.java index 15e5ddfa..e0d9515b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/SupplieritemController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplieritem/SupplieritemController.java @@ -8,8 +8,13 @@ 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.itembasic.vo.ItembasicExcelVO; +import com.win.module.wms.controller.purchaseprice.vo.PurchasepriceRespVO; import com.win.module.wms.controller.supplieritem.vo.*; +import com.win.module.wms.convert.itembasic.ItembasicConvert; +import com.win.module.wms.convert.purchaseprice.PurchasepriceConvert; import com.win.module.wms.convert.supplieritem.SupplieritemConvert; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.supplieritem.SupplieritemService; @@ -78,21 +83,19 @@ public class SupplieritemController { return success(SupplieritemConvert.INSTANCE.convert(supplieritem)); } - @GetMapping("/list") - @Operation(summary = "获得供应商物品列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:supplieritem:query')") - public CommonResult> getSupplieritemList(@RequestParam("ids") Collection ids) { - List list = supplieritemService.getSupplieritemList(ids); - return success(SupplieritemConvert.INSTANCE.convertList(list)); - } @GetMapping("/page") @Operation(summary = "获得供应商物品分页") @PreAuthorize("@ss.hasPermission('wms:supplieritem:query')") public CommonResult> getSupplieritemPage(@Valid SupplieritemPageReqVO pageVO) { PageResult pageResult = supplieritemService.getSupplieritemPage(pageVO); - return success(SupplieritemConvert.INSTANCE.convertPage(pageResult)); + PageResult result = SupplieritemConvert.INSTANCE.convertPage(pageResult); + for(SupplieritemRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @@ -115,13 +118,21 @@ public class SupplieritemController { public void exportSupplieritemExcel(@Valid SupplieritemExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = supplieritemService.getSupplieritemList(exportReqVO); - // 导出 Excel - List datas = SupplieritemConvert.INSTANCE.convertList02(list); - for(SupplieritemExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } Map mapDropDown = new HashMap<>(); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "供应商物品.xlsx", "数据", SupplieritemExcelVO.class, resultList, mapDropDown); + } + @PostMapping("/export-excel-senior") + @Operation(summary = "导出供应商物品 Excel") + @PreAuthorize("@ss.hasPermission('wms:supplieritem:export')") + @OperateLog(type = EXPORT) + public void exportSupplieritemExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = supplieritemService.getSupplieritemList(conditions); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "供应商物品.xlsx", "数据", SupplieritemExcelVO.class, resultList, mapDropDown); + } + private List getExcelVo(List list, Map mapDropDown) { String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); mapDropDown.put(13, available); String[] supplierUom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); @@ -132,9 +143,15 @@ public class SupplieritemController { mapDropDown.put(7, altPackUnit); String[] settlementType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.SETTLEMENT_TYPE); mapDropDown.put(12, settlementType); - ExcelUtils.write(response, "供应商物品.xls", "数据", SupplieritemExcelVO.class, datas,mapDropDown); + // 导出 Excel + List resultList = SupplieritemConvert.INSTANCE.convertList02(list); + for(SupplieritemExcelVO vo : resultList) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return resultList; } - @GetMapping("/get-import-template") @Operation(summary = "获得导入供应商物品信息模板") public void importTemplate(HttpServletResponse response) throws IOException { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/SystemcalendarController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/SystemcalendarController.java index a5b0b432..274efd62 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/SystemcalendarController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/systemcalendar/SystemcalendarController.java @@ -8,8 +8,10 @@ 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.process.vo.ProcessRespVO; import com.win.module.wms.controller.systemcalendar.vo.*; import com.win.module.wms.controller.systemcalendar.vo.SystemcalendarImportExcelVo; +import com.win.module.wms.convert.process.ProcessConvert; import com.win.module.wms.convert.systemcalendar.SystemcalendarConvert; import com.win.module.wms.dal.dataobject.systemcalendar.SystemcalendarDO; import com.win.module.wms.enums.DictTypeConstants; @@ -91,7 +93,13 @@ public class SystemcalendarController { @PreAuthorize("@ss.hasPermission('wms:systemcalendar:query')") public CommonResult> getSystemcalendarPage(@Valid SystemcalendarPageReqVO pageVO) { PageResult pageResult = systemcalendarService.getSystemcalendarPage(pageVO); - return success(SystemcalendarConvert.INSTANCE.convertPage(pageResult)); + PageResult result = SystemcalendarConvert.INSTANCE.convertPage(pageResult); + for(SystemcalendarRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/TeamController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/TeamController.java index 8c75f4fb..f2804130 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/TeamController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/team/TeamController.java @@ -4,7 +4,9 @@ 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.shift.vo.ShiftRespVO; import com.win.module.wms.controller.team.vo.*; +import com.win.module.wms.convert.shift.ShiftConvert; import com.win.module.wms.enums.DictTypeConstants; import io.swagger.v3.oas.annotations.Parameters; import org.springframework.web.bind.annotation.*; @@ -95,7 +97,13 @@ public class TeamController { @PreAuthorize("@ss.hasPermission('wms:team:query')") public CommonResult> getTeamPage(@Valid TeamPageReqVO pageVO) { PageResult pageResult = teamService.getTeamPage(pageVO); - return success(TeamConvert.INSTANCE.convertPage(pageResult)); + PageResult result = TeamConvert.INSTANCE.convertPage(pageResult); + for(TeamRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/TransactionController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/TransactionController.java index d83492c6..e529d700 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/TransactionController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/TransactionController.java @@ -49,7 +49,7 @@ public class TransactionController { @Operation(summary = "创建库存事务并增加库存转运日志") @PreAuthorize("@ss.hasPermission('wms:transaction:create')") public CommonResult createTransactionAndTransferLog(@Valid @RequestBody TransactionCreateReqListVO transactionCreateReqListVO) { - return success(transactionService.createTransaction(transactionCreateReqListVO.getTransactionList(), transactionCreateReqListVO.getTransferlogList())); + return success(transactionService.createTransactionAndTransferlog(transactionCreateReqListVO.getTransactionList(), transactionCreateReqListVO.getTransferlogList())); } @PostMapping("/senior") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transactiontype/TransactiontypeController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transactiontype/TransactiontypeController.java index 56ba3c74..b52e7d2f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transactiontype/TransactiontypeController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transactiontype/TransactiontypeController.java @@ -107,7 +107,13 @@ public class TransactiontypeController { @PreAuthorize("@ss.hasPermission('wms:transactiontype:query')") public CommonResult> getTransactiontypePage(@Valid TransactiontypePageReqVO pageVO) { PageResult pageResult = transactiontypeService.getTransactiontypePage(pageVO); - return success(TransactiontypeConvert.INSTANCE.convertPage(pageResult)); + PageResult result = TransactiontypeConvert.INSTANCE.convertPage(pageResult); + for(TransactiontypeRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/warehouse/WarehouseController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/warehouse/WarehouseController.java index 07fbb235..013339f3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/warehouse/WarehouseController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/warehouse/WarehouseController.java @@ -9,10 +9,12 @@ 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.customer.vo.CustomerRespVO; import com.win.module.wms.controller.warehouse.vo.WarehouseImportExcelVo; import com.win.module.wms.controller.warehouse.vo.WarehouseRespVO; import com.win.module.wms.controller.warehouse.vo.*; +import com.win.module.wms.convert.customer.CustomerConvert; import com.win.module.wms.convert.warehouse.WarehouseConvert; import com.win.module.wms.dal.dataobject.warehouse.WarehouseDO; import com.win.module.wms.dal.mysql.warehouse.WarehouseMapper; @@ -97,7 +99,13 @@ public class WarehouseController { @PreAuthorize("@ss.hasPermission('wms:warehouse:query')") public CommonResult> getWarehousePage(@Valid WarehousePageReqVO pageVO) { PageResult pageResult = warehouseService.getWarehousePage(pageVO); - return success(WarehouseConvert.INSTANCE.convertPage(pageResult)); + PageResult result = WarehouseConvert.INSTANCE.convertPage(pageResult); + for(WarehouseRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/WorkDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/WorkDetailController.java index 9a9d0fb9..0faba201 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/WorkDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/WorkDetailController.java @@ -108,22 +108,4 @@ public class WorkDetailController { } return success(result); } - - @GetMapping("/export-excel") - @Operation(summary = "导出生产订单子 Excel") - @PreAuthorize("@ss.hasPermission('wms:work-detail:export')") - @OperateLog(type = EXPORT) - public void exportWorkDetailExcel(@Valid WorkDetailExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { - List list = workDetailService.getWorkDetailList(exportReqVO); - // 导出 Excel - List datas = WorkDetailConvert.INSTANCE.convertList02(list); - for(WorkDetailExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } - ExcelUtils.write(response, "生产订单子.xls", "数据", WorkDetailExcelVO.class, datas); - } - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/WorkMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/WorkMainController.java index f0e682b4..ab26fc4e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/WorkMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/WorkMainController.java @@ -3,14 +3,22 @@ package com.win.module.wms.controller.work; import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.excel.core.util.ConvertUtil; 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.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO; import com.win.module.wms.controller.work.vo.*; +import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; import com.win.module.wms.convert.work.WorkMainConvert; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; +import com.win.module.wms.dal.dataobject.work.WorkDetailDO; import com.win.module.wms.dal.dataobject.work.WorkMainDO; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.work.WorkDetailService; import com.win.module.wms.service.work.WorkMainService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -38,6 +46,8 @@ import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Validated public class WorkMainController { + @Resource + private WorkDetailService workDetailService; @Resource private WorkMainService workMainService; @@ -100,46 +110,75 @@ public class WorkMainController { PageResult pageResult = workMainService.getWorkMainSenior(conditions); PageResult result = WorkMainConvert.INSTANCE.convertPage(pageResult); for(WorkMainRespVO vo : result.getList()) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); + //后端创建个字段作为前端展示的虚拟字段 + vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); } return success(result); } @GetMapping("/export-excel") - @Operation(summary = "导出生产订单主 Excel") + @Operation(summary = "导出生产订单 Excel") @PreAuthorize("@ss.hasPermission('wms:work-main:export')") @OperateLog(type = EXPORT) public void exportWorkMainExcel(@Valid WorkMainExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { List list = workMainService.getWorkMainList(exportReqVO); - // 导出 Excel - List datas = WorkMainConvert.INSTANCE.convertList02(list); - for(WorkMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + for(WorkMainExcelVO vo : resultList) { //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); + //后端创建个字段作为前端展示的虚拟字段 + vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); + } + ExcelUtils.write(response, "生产订单.xls", "数据", WorkMainExcelVO.class, resultList, mapDropDown); + } + + @GetMapping("/export-excel-senior") + @Operation(summary = "导出生产订单 Excel") + @PreAuthorize("@ss.hasPermission('wms:work-main:export')") + @OperateLog(type = EXPORT) + public void exportWorkMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = workMainService.getWorkMainList(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + // 导出 Excel + ExcelUtils.write(response, "生产订单.xlsx", "数据", WorkMainExcelVO.class, resultList, mapDropDown); + } + + private List getExcelVo(List list, Map mapDropDown) { + String[] available = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); + mapDropDown.put(13, available); + List resultList = new ArrayList<>(); + // 导出 + for(WorkMainDO mainDO : list) { + List subList = workDetailService.selectList(mainDO.getId()); + for(WorkDetailDO detailDO : subList) { + WorkMainExcelVO vo = WorkMainConvert.INSTANCE.convert(mainDO, detailDO); + resultList.add(vo); + } } - ExcelUtils.write(response, "生产订单主.xls", "数据", WorkMainExcelVO.class, datas); + return resultList; } @GetMapping("/get-import-template") - @Operation(summary = "获得导入采购索赔信息模板") + @Operation(summary = "获得导入生产订单模板") public void importTemplate(HttpServletResponse response) throws IOException { // 手动创建导出 demo List list = new ArrayList<>(); Map mapDropDown = new HashMap<>(); -// String[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); -// mapDropDown.put(16, purchaseReturnReason); -// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); -// mapDropDown.put(25, uom); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(6, uom); // 输出 - ExcelUtils.write(response, "采购索赔信息导入模板.xlsx", "采购索赔信息列表", WorkMainImportVO.class, list, mapDropDown); + ExcelUtils.write(response, "生产订单导入模板.xlsx", "生产订单信息列表", WorkMainImportVO.class, list, mapDropDown); } @PostMapping("/import") - @Operation(summary = "导入要货计划") + @Operation(summary = "导入生产订单") @Parameters({ @Parameter(name = "file", description = "Excel 文件", required = true), @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainBaseVO.java index 2e1ea662..4ef25ebb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainBaseVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.work.vo; +import com.win.framework.excel.core.annotations.OnlyOne; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -44,6 +45,7 @@ public class WorkMainBaseVO { @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "单据号不能为空") + @OnlyOne private String number; @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainExcelVO.java index 6f2f829c..13e7782e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainExcelVO.java @@ -1,7 +1,10 @@ package com.win.module.wms.controller.work.vo; +import com.win.module.wms.enums.DictTypeConstants; 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 WorkMainExcelVO { + @ExcelProperty("单据号") + private String number; + @ExcelProperty("供应商代码") private String customerCode; @@ -37,9 +43,6 @@ public class WorkMainExcelVO { @ExcelProperty("版本") private String version; - @ExcelProperty("单据号") - private String number; - @ExcelProperty("业务类型") private String businessType; @@ -62,6 +65,31 @@ public class WorkMainExcelVO { private Integer currentStage; @ExcelProperty("是否可用") + @DictFormat(DictTypeConstants.TRUE_FALSE) private String available; + @ExcelProperty("行号") + private String lineNumber; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("完工数量") + private BigDecimal finishedQty; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("备注2") + private String remarkDetail; + + @ExcelProperty("订单数量") + private BigDecimal orderQty; + + @ExcelProperty("计量单位") + private String uom; + + @ExcelProperty("是否可用2") + @DictFormat(DictTypeConstants.TRUE_FALSE) + private String availableDetail; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainExportReqVO.java index b6999772..994cffb8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainExportReqVO.java @@ -1,5 +1,7 @@ package com.win.module.wms.controller.work.vo; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.module.wms.enums.DictTypeConstants; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -57,6 +59,7 @@ public class WorkMainExportReqVO { private Integer currentStage; @Schema(description = "是否可用") + @DictFormat(DictTypeConstants.TRUE_FALSE) private String available; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainImportVO.java index 17bacbf3..ba7a7098 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainImportVO.java @@ -1,6 +1,9 @@ package com.win.module.wms.controller.work.vo; import com.alibaba.excel.annotation.ExcelProperty; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.annotations.OnlyOne; +import com.win.module.wms.enums.DictTypeConstants; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -40,5 +43,6 @@ public class WorkMainImportVO { @ExcelProperty("订单数量") private BigDecimal orderQty; @ExcelProperty("计量单位") + @DictFormat(DictTypeConstants.UOM) private String uom; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workshop/WorkshopController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workshop/WorkshopController.java index 529b3e66..d2aeab62 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workshop/WorkshopController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workshop/WorkshopController.java @@ -8,8 +8,10 @@ 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.location.vo.LocationRespVO; import com.win.module.wms.controller.workshop.vo.WorkshopRespVO; import com.win.module.wms.controller.workshop.vo.*; +import com.win.module.wms.convert.location.LocationConvert; import com.win.module.wms.convert.workshop.WorkshopConvert; import com.win.module.wms.convert.workshop.WorkshopConvert; import com.win.module.wms.dal.dataobject.workshop.WorkshopDO; @@ -95,7 +97,13 @@ public class WorkshopController { @PreAuthorize("@ss.hasPermission('wms:workshop:query')") public CommonResult> getWorkshopPage(@Valid WorkshopPageReqVO pageVO) { PageResult pageResult = workshopService.getWorkshopPage(pageVO); - return success(WorkshopConvert.INSTANCE.convertPage(pageResult)); + PageResult result = WorkshopConvert.INSTANCE.convertPage(pageResult); + for(WorkshopRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @GetMapping("/export-excel") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workstation/WorkstationController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workstation/WorkstationController.java index f95a53bb..076d5d31 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workstation/WorkstationController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/workstation/WorkstationController.java @@ -8,8 +8,10 @@ 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.productionline.vo.ProductionlineRespVO; import com.win.module.wms.controller.workstation.vo.WorkstationRespVO; import com.win.module.wms.controller.workstation.vo.*; +import com.win.module.wms.convert.productionline.ProductionlineConvert; import com.win.module.wms.convert.workstation.WorkstationConvert;; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; import com.win.module.wms.enums.DictTypeConstants; @@ -91,7 +93,13 @@ public class WorkstationController { @PreAuthorize("@ss.hasPermission('wms:workstation:query')") public CommonResult> getWorkstationPage(@Valid WorkstationPageReqVO pageVO) { PageResult pageResult = workstationService.getWorkstationPage(pageVO); - return success(WorkstationConvert.INSTANCE.convertPage(pageResult)); + PageResult result = WorkstationConvert.INSTANCE.convertPage(pageResult); + for(WorkstationRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得工位信息分页") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverPlan/DeliverPlanDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverPlan/DeliverPlanDetailConvert.java index 54adbf99..5b698388 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverPlan/DeliverPlanDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverPlan/DeliverPlanDetailConvert.java @@ -35,6 +35,8 @@ public interface DeliverPlanDetailConvert { List convertList03(List list); + List convertList05(List list); + DeliverPlanDetailCreateReqVO convert1(DeliverPlanDetailDO bean); @Mappings({ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverPlan/DeliverPlanMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverPlan/DeliverPlanMainConvert.java index 802d735d..c2136b2c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverPlan/DeliverPlanMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverPlan/DeliverPlanMainConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.deliverPlan; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainCreateReqVO; -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainExcelVO; -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainRespVO; -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainUpdateReqVO; +import com.win.module.wms.controller.deliverPlan.vo.*; +import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanDetailDO; +import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO; + +import java.util.List; /** * 发货计划主 Convert @@ -24,6 +23,8 @@ public interface DeliverPlanMainConvert { DeliverPlanMainDO convert(DeliverPlanMainCreateReqVO bean); + DeliverPlanMainDO convert(DeliverPlanMainBaseVO bean); + DeliverPlanMainDO convert(DeliverPlanMainUpdateReqVO bean); DeliverPlanMainRespVO convert(DeliverPlanMainDO bean); @@ -34,4 +35,12 @@ public interface DeliverPlanMainConvert { List convertList02(List list); + DeliverPlanMainCreateReqVO convert1(DeliverPlanMainCreateReqVO createReqVO); + + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + DeliverPlanMainImportErrorVO convert(DeliverPlanMainCreateReqVO mainVo, DeliverPlanDetailDO detailDo); + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/demandforecasting/DemandforecastingDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/demandforecasting/DemandforecastingDetailConvert.java index 12b216ec..3cd97ab7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/demandforecasting/DemandforecastingDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/demandforecasting/DemandforecastingDetailConvert.java @@ -35,6 +35,8 @@ public interface DemandforecastingDetailConvert { List convertList03(List list); + List convertList05(List list); + DemandforecastingDetailCreateReqVO convert1(DemandforecastingDetailDO bean); @Mappings({ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/demandforecasting/DemandforecastingMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/demandforecasting/DemandforecastingMainConvert.java index 14340159..2da95267 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/demandforecasting/DemandforecastingMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/demandforecasting/DemandforecastingMainConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.demandforecasting; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainCreateReqVO; -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainExcelVO; -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainRespVO; -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainUpdateReqVO; +import com.win.module.wms.controller.demandforecasting.vo.*; +import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingDetailDO; +import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingMainDO; + +import java.util.List; /** * 要货预测主 Convert @@ -24,6 +23,8 @@ public interface DemandforecastingMainConvert { DemandforecastingMainDO convert(DemandforecastingMainCreateReqVO bean); + DemandforecastingMainDO convert(DemandforecastingMainBaseVO bean); + DemandforecastingMainDO convert(DemandforecastingMainUpdateReqVO bean); DemandforecastingMainRespVO convert(DemandforecastingMainDO bean); @@ -34,4 +35,5 @@ public interface DemandforecastingMainConvert { List convertList02(List list); + DemandforecastingImportErrorVO convert(DemandforecastingMainCreateReqVO mainVo, DemandforecastingDetailDO detailDo); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/expectin/ExpectinConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/expectin/ExpectinConvert.java index 5dcb0da6..7aca6811 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/expectin/ExpectinConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/expectin/ExpectinConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.expectin; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.expectin.vo.ExpectinExcelVO; import com.win.module.wms.controller.expectin.vo.ExpectinRespVO; import com.win.module.wms.controller.expectin.vo.ExpectinUpdateReqVO; +import com.win.module.wms.dal.dataobject.expectin.ExpectinDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.expectin.ExpectinDO; + +import java.util.List; /** * 预计入库存 Convert @@ -34,4 +33,5 @@ public interface ExpectinConvert { List convertList02(List list); + List convertList03(List list); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/expectout/ExpectoutConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/expectout/ExpectoutConvert.java index 92f93a16..72795111 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/expectout/ExpectoutConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/expectout/ExpectoutConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.expectout; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutExcelVO; import com.win.module.wms.controller.expectout.vo.ExpectoutRespVO; import com.win.module.wms.controller.expectout.vo.ExpectoutUpdateReqVO; +import com.win.module.wms.dal.dataobject.expectout.ExpectoutDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.expectout.ExpectoutDO; + +import java.util.List; /** * 预计出库存 Convert @@ -34,4 +33,5 @@ public interface ExpectoutConvert { List convertList02(List list); + List convertList03(List list); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestDetailConvert.java index 4f5c064a..d23a2bdd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestDetailConvert.java @@ -4,11 +4,11 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailCreateReqVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailExcelVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailRespVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailUpdateReqVO; +import com.win.module.wms.controller.inspectRequest.vo.*; +import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO; @@ -27,6 +27,7 @@ public interface InspectRequestDetailConvert { InspectRequestDetailDO convert(InspectRequestDetailUpdateReqVO bean); InspectRequestDetailRespVO convert(InspectRequestDetailDO bean); + InspectRequestDetailCreateReqVO convert1(InspectRequestDetailDO detailDO); List convertList(List list); @@ -34,4 +35,25 @@ public interface InspectRequestDetailConvert { List convertList02(List list); + List convertList03(List list); + + List convertList05(List subList); + + @Mappings({ + @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 = "mainDO.itemCode", target = "itemCode"), + @Mapping(source = "mainDO.uom", target = "uom"), + }) + InspectRequestDetailExcelVO convert(InspectRequestMainDO mainDO, InspectRequestDetailDO detailDO); + + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + @Mapping(source = "mainVo.itemCode", target = "itemCode"), + @Mapping(source = "mainVo.uom", target = "uom"), + }) + InspectRequestImportErrorVO convert(InspectRequestMainCreateReqVO mainVo, InspectRequestDetailCreateReqVO detailVo); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestMainConvert.java index 40e7d8fe..ca027c93 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inspectRequest/InspectRequestMainConvert.java @@ -4,10 +4,7 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainCreateReqVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainExcelVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainRespVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainUpdateReqVO; +import com.win.module.wms.controller.inspectRequest.vo.*; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; @@ -34,4 +31,5 @@ public interface InspectRequestMainConvert { List convertList02(List list); + InspectRequestMainDO convert(InspectRequestMainBaseVO baseVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorychangeRequest/InventorychangeRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorychangeRequest/InventorychangeRequestDetailConvert.java index 7727203b..f590e56c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorychangeRequest/InventorychangeRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorychangeRequest/InventorychangeRequestDetailConvert.java @@ -35,6 +35,8 @@ public interface InventorychangeRequestDetailConvert { List convertList03(List list); + List convertList05(List list); + InventorychangeRequestDetailCreateReqVO convert1(InventorychangeRequestDetailDO bean); @Mappings({ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorychangeRequest/InventorychangeRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorychangeRequest/InventorychangeRequestMainConvert.java index ab2c849c..795673df 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorychangeRequest/InventorychangeRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorychangeRequest/InventorychangeRequestMainConvert.java @@ -1,16 +1,13 @@ package com.win.module.wms.convert.inventorychangeRequest; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainCreateReqVO; -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainExcelVO; -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainRespVO; -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainUpdateReqVO; +import com.win.module.wms.controller.inventorychangeRequest.vo.*; +import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestDetailDO; +import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO; + +import java.util.List; /** * 库存修改申请主 Convert @@ -26,6 +23,8 @@ public interface InventorychangeRequestMainConvert { InventorychangeRequestMainDO convert(InventorychangeRequestMainUpdateReqVO bean); + InventorychangeRequestMainDO convert(InventorychangeRequestMainBaseVO bean); + InventorychangeRequestMainRespVO convert(InventorychangeRequestMainDO bean); List convertList(List list); @@ -34,4 +33,8 @@ public interface InventorychangeRequestMainConvert { List convertList02(List list); + InventorychangeRequestMainImportErrorVO convert(InventorychangeRequestMainCreateReqVO mainVo, InventorychangeRequestDetailDO detailDo); + + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java index 579e5dc2..32c27339 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestDetailConvert.java @@ -32,9 +32,11 @@ public interface IssueRequestDetailConvert { PageResult convertPage(PageResult page); - List convertList02(List list); + IssueRequestDetailCreateReqVO convert1(IssueRequestDetailDO detailDO); + List convertList02(List list); List convertList03(List list); + List convertList04(List list); List convertList05(List list); @@ -53,6 +55,4 @@ public interface IssueRequestDetailConvert { @Mapping(source = "mainVo.number", target = "number"), }) IssueRequestImportErrorVO convert(IssueRequestMainCreateReqVO mainVo, IssueRequestDetailCreateReqVO detailVo); - - IssueRequestDetailCreateReqVO convert1(IssueRequestDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java index f1146b97..29948fce 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRequest/IssueRequestMainConvert.java @@ -1,19 +1,15 @@ package com.win.module.wms.convert.issueRequest; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.issueRequest.vo.*; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; -import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; + +import java.util.List; /** * 发料申请主 Convert diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestDetailConvert.java index a1e149dc..0fcdabe1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRequest/ProductionreturnRequestDetailConvert.java @@ -34,4 +34,5 @@ public interface ProductionreturnRequestDetailConvert { List convertList02(List list); + List convertList03(List subList); } 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 30e4145b..ff6b47db 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 @@ -4,11 +4,11 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainCreateReqVO; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainExcelVO; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainRespVO; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainUpdateReqVO; +import com.win.module.wms.controller.productionreturnRequest.vo.*; +import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; @@ -22,9 +22,7 @@ public interface ProductionreturnRequestMainConvert { ProductionreturnRequestMainConvert INSTANCE = Mappers.getMapper(ProductionreturnRequestMainConvert.class); - ProductionreturnRequestMainDO convert(ProductionreturnRequestMainCreateReqVO bean); - - ProductionreturnRequestMainDO convert(ProductionreturnRequestMainUpdateReqVO bean); + ProductionreturnRequestMainDO convert(ProductionreturnRequestMainBaseVO baseVO); ProductionreturnRequestMainRespVO convert(ProductionreturnRequestMainDO bean); @@ -33,5 +31,8 @@ public interface ProductionreturnRequestMainConvert { PageResult convertPage(PageResult page); List convertList02(List list); - + @Mappings({ + @Mapping(source = "createReqVO.number", target = "number"), + }) + ProductionreturnRequestImportErrorVO convert(ProductionreturnRequestMainCreateReqVO createReqVO, ProductionreturnRequestDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestDetailConvert.java index 8ae161bb..e2f987d0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestDetailConvert.java @@ -4,11 +4,13 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailUpdateReqVO; import com.win.module.wms.controller.productputawayRequest.vo.*; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailExcelVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; @@ -41,6 +43,8 @@ public interface ProductputawayRequestDetailConvert { List convertList02(List list); List convertList03(List list); + List convertList05(List list); + @Mappings({ @Mapping(source = "mainDO.number", target = "number"), @Mapping(source = "mainDO.remark", target = "remark"), diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestMainConvert.java index f05c09a9..2f48cea1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRequest/ProductputawayRequestMainConvert.java @@ -4,9 +4,15 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainBaseVO; import com.win.module.wms.controller.productputawayRequest.vo.*; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestImportErrorVO; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainCreateReqVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.*; import com.win.module.wms.controller.workstation.vo.WorkstationImportExcelVo; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; +import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; @@ -28,6 +34,8 @@ public interface ProductputawayRequestMainConvert { ProductputawayRequestMainDO convert(ProductputawayRequestMainCreateReqVO bean); + ProductputawayRequestMainDO convert( ProductputawayRequestMainBaseVO bean); + ProductputawayRequestMainDO convert(ProductputawayRequestMainUpdateReqVO bean); ProductputawayRequestMainRespVO convert(ProductputawayRequestMainDO bean); @@ -40,6 +48,8 @@ public interface ProductputawayRequestMainConvert { ProductputawayRequestMainDO convert(ProductputawayImportExcelVO bean); + ProductputawayImportErrorVO convert(ProductputawayRequestMainCreateReqVO mainVo, ProductputawayRequestDetailDO detailDo); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRequest/ProductreceiptRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRequest/ProductreceiptRequestMainConvert.java index f1413a40..45438152 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRequest/ProductreceiptRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRequest/ProductreceiptRequestMainConvert.java @@ -4,10 +4,9 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainCreateReqVO; -import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainExcelVO; -import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainRespVO; -import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainUpdateReqVO; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainBaseVO; +import com.win.module.wms.controller.productreceiptRequest.vo.*; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO; @@ -22,6 +21,8 @@ public interface ProductreceiptRequestMainConvert { ProductreceiptRequestMainConvert INSTANCE = Mappers.getMapper(ProductreceiptRequestMainConvert.class); + ProductreceiptRequestMainDO convert (ProductreceiptRequestMainBaseVO bean); + ProductreceiptRequestMainDO convert(ProductreceiptRequestMainCreateReqVO bean); ProductreceiptRequestMainDO convert(ProductreceiptRequestMainUpdateReqVO bean); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java index 6f02c50c..e5445824 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestDetailConvert.java @@ -2,8 +2,11 @@ package com.win.module.wms.convert.purchaseclaimRequest; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.purchaseclaimRequest.vo.*; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; @@ -39,6 +42,8 @@ public interface PurchaseclaimRequestDetailConvert { List convertList04(List list); + List convertList05(List list); + @Mappings({ @Mapping(source = "mainDO.number", target = "number"), @Mapping(source = "mainDO.remark", target = "remark"), @@ -52,5 +57,5 @@ public interface PurchaseclaimRequestDetailConvert { @Mappings({ @Mapping(source = "mainVo.number", target = "number"), }) - PurchaseclaimRequestImportErrorVO convert(PurchaseclaimRequestMainCreateReqVO mainVo, PurchaseclaimRequestDetailCreateReqVO detailVo); + PurchaseclaimRequestImportErrorVO convert(PurchaseclaimRequestMainCreateReqVO mainVo, PurchaseclaimRequestDetailDO detailDo); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestMainConvert.java index f006aede..4c02ff8a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchaseclaimRequest/PurchaseclaimRequestMainConvert.java @@ -1,10 +1,12 @@ package com.win.module.wms.convert.purchaseclaimRequest; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainUpdateReqVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.*; +import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import java.util.List; @@ -31,4 +33,20 @@ public interface PurchaseclaimRequestMainConvert { List convertList02(List list); + PurchaseclaimRequestMainDO convert(PurchaseclaimRequestMainBaseVO baseVO); + + @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"), + }) + PurchaseclaimRequestMainExcelVO convert(PurchaseclaimRequestMainDO mainDO, PurchaseclaimRequestDetailDO detailDO); + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + PurchaseclaimRequestImportErrorVO convert(PurchaseclaimRequestMainCreateReqVO mainVo, PurchaseclaimRequestDetailDO detailDo); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRecord/PurchaseshortageDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRecord/PurchaseshortageDetailConvert.java new file mode 100644 index 00000000..75fc8f68 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRecord/PurchaseshortageDetailConvert.java @@ -0,0 +1,36 @@ +package com.win.module.wms.convert.purchasereceiptRecord; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchaseshortageDetailCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchaseshortageDetailExcelVO; +import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchaseshortageDetailRespVO; +import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchaseshortageDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchaseshortageDetailDO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 采购收货记录子 Convert + * + * @author 超级管理员 + */ +@Mapper +public interface PurchaseshortageDetailConvert { + + PurchaseshortageDetailConvert INSTANCE = Mappers.getMapper(PurchaseshortageDetailConvert.class); + + PurchaseshortageDetailDO convert(PurchaseshortageDetailCreateReqVO bean); + + PurchaseshortageDetailDO convert(PurchaseshortageDetailUpdateReqVO bean); + + PurchaseshortageDetailRespVO convert(PurchaseshortageDetailDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestDetailConvert.java index 93324092..d04277af 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestDetailConvert.java @@ -46,7 +46,9 @@ public interface PurchasereceiptRequestDetailConvert { @Mapping(source = "mainDO.updater", target = "updater"), }) PurchasereceiptRequestDetailExcelVO convert(PurchasereceiptRequestMainDO mainDO, PurchasereceiptRequestDetailDO detailDO); - + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) PurchasereceiptRequestMainImportErrorVO convert(PurchasereceiptRequestMainCreateReqVO mainVo, PurchasereceiptRequestDetailCreateReqVO detailVo); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestMainConvert.java index 03d55ddc..2c32bdf4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestMainConvert.java @@ -32,7 +32,9 @@ public interface PurchasereceiptRequestMainConvert { PageResult convertPage(PageResult page); List convertList02(List list); - + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) PurchasereceiptRequestMainImportErrorVO convert(PurchasereceiptRequestMainCreateReqVO mainVo, PurchasereceiptRequestDetailDO detailDo); @Mappings({ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java index a268cb66..7675b801 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestDetailConvert.java @@ -4,11 +4,13 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailCreateReqVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailExcelVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailRespVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestDetailUpdateReqVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO; +import com.win.module.wms.controller.purchasereturnRequest.vo.*; +import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO; @@ -28,10 +30,32 @@ public interface PurchasereturnRequestDetailConvert { PurchasereturnRequestDetailRespVO convert(PurchasereturnRequestDetailDO bean); + PurchasereturnRequestDetailCreateReqVO convert1(PurchasereturnRequestDetailDO bean); + List convertList(List list); PageResult convertPage(PageResult page); List convertList02(List list); + List convertList03(List list); + + List convertList04(List list); + List convertList05(List subList); + @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"), + }) + PurchasereturnRequestDetailExcelVO convert(PurchasereturnRequestMainDO mainDO, PurchasereturnRequestDetailDO detailDO); + + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + PurchasereturnRequestImportErrorVO convert(PurchasereturnRequestMainCreateReqVO mainVo, PurchasereturnRequestDetailCreateReqVO detailVo); + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java index 5dc65822..3d4e0743 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRequest/PurchasereturnRequestMainConvert.java @@ -4,11 +4,14 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainCreateReqVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExcelVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainRespVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainUpdateReqVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO; +import com.win.module.wms.controller.purchasereturnRequest.vo.*; +import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; @@ -33,5 +36,10 @@ public interface PurchasereturnRequestMainConvert { PageResult convertPage(PageResult page); List convertList02(List list); + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + PurchasereturnRequestImportErrorVO convert(PurchasereturnRequestMainCreateReqVO mainVo, PurchasereturnRequestDetailDO detailDo); + PurchasereturnRequestMainDO convert(PurchasereturnRequestMainBaseVO baseVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestDetailConvert.java index da877730..825546ce 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestDetailConvert.java @@ -4,11 +4,11 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailCreateReqVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailExcelVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailRespVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestDetailUpdateReqVO; +import com.win.module.wms.controller.putawayRequest.vo.*; +import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO; @@ -28,10 +28,31 @@ public interface PutawayRequestDetailConvert { PutawayRequestDetailRespVO convert(PutawayRequestDetailDO bean); + PutawayRequestDetailCreateReqVO convert1(PutawayRequestDetailDO detailDO); List convertList(List list); PageResult convertPage(PageResult page); List convertList02(List list); + List convertList03(List list); + + List convertList04(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.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + }) + PutawayRequestDetailExcelVO convert(PutawayRequestMainDO mainDO, PutawayRequestDetailDO detailDO); + + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + PutawayRequestImportErrorVO convert(PutawayRequestMainCreateReqVO mainVo, PutawayRequestDetailCreateReqVO detailVo); + + List convertList05(List subList); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestMainConvert.java index adb2acee..0bc4fb3e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/putawayRequest/PutawayRequestMainConvert.java @@ -4,11 +4,11 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainCreateReqVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainExcelVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainRespVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainUpdateReqVO; +import com.win.module.wms.controller.putawayRequest.vo.*; +import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO; @@ -34,4 +34,9 @@ public interface PutawayRequestMainConvert { List convertList02(List list); + PutawayRequestMainDO convert(PutawayRequestMainBaseVO baseVO); + @Mappings({ + @Mapping(source = "createReqVO.number", target = "number"), + }) + PutawayRequestImportErrorVO convert(PutawayRequestMainCreateReqVO createReqVO, PutawayRequestDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/work/WorkMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/work/WorkMainConvert.java index cc4140c4..99a87d16 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/work/WorkMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/work/WorkMainConvert.java @@ -4,11 +4,14 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.work.vo.WorkMainCreateReqVO; -import com.win.module.wms.controller.work.vo.WorkMainExcelVO; -import com.win.module.wms.controller.work.vo.WorkMainRespVO; -import com.win.module.wms.controller.work.vo.WorkMainUpdateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExcelVO; +import com.win.module.wms.controller.work.vo.*; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; +import com.win.module.wms.dal.dataobject.work.WorkDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.work.WorkMainDO; @@ -34,4 +37,21 @@ public interface WorkMainConvert { List convertList02(List list); + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + }) + WorkMainImportErrorVO convert(WorkMainCreateReqVO mainDO, WorkDetailDO 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 = "mainDO.available", target = "available"), + @Mapping(source = "detailDO.available", target = "availableDetail"), + @Mapping(source = "detailDO.remark", target = "remarkDetail"), + }) + WorkMainExcelVO convert(WorkMainDO mainDO, WorkDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java index 216a77dc..a8202580 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/deliverRequest/DeliverRequestDetailDO.java @@ -42,7 +42,7 @@ public class DeliverRequestDetailDO extends BaseDO { /** * 包装号 */ - @NotBlank + private String packingNumber; /** * 器具号 @@ -51,14 +51,14 @@ public class DeliverRequestDetailDO extends BaseDO { /** * 批次 */ - @NotBlank + private String batch; /** * 库存状态 * * 枚举 {@link TODO inventory_status 对应的类} */ - @NotBlank + private String inventoryStatus; /** * 到货主代码 @@ -67,7 +67,6 @@ public class DeliverRequestDetailDO extends BaseDO { /** * 到库位代码 */ - @NotBlank private String toLocationCode; /** * 主表ID 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 4c7427a2..0626c394 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 @@ -42,7 +42,6 @@ public class DeliverRequestMainDO extends BaseDO { /** * 客户月台代码 */ - @NotBlank private String customerDockCode; /** * 承运商 @@ -63,12 +62,11 @@ public class DeliverRequestMainDO extends BaseDO { /** * 从仓库代码 */ - @NotBlank + private String fromWarehouseCode; /** * 到仓库代码 */ - @NotBlank private String toWarehouseCode; /** * 从库位类型范围 @@ -117,7 +115,7 @@ public class DeliverRequestMainDO extends BaseDO { /** * 部门 */ - @NotBlank + private String departmentCode; /** * 状态 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/expectin/ExpectinDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/expectin/ExpectinDO.java index 744d1b98..530b4c8c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/expectin/ExpectinDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/expectin/ExpectinDO.java @@ -1,10 +1,13 @@ package com.win.module.wms.dal.dataobject.expectin; +import com.baomidou.mybatisplus.annotation.IdType; +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 com.baomidou.mybatisplus.annotation.*; -import com.win.framework.mybatis.core.dataobject.BaseDO; /** * 预计入库存 DO @@ -23,8 +26,8 @@ public class ExpectinDO extends BaseDO { /** * id */ - @TableId(type = IdType.INPUT) - private String id; + @TableId(type = IdType.AUTO) + private Long id; /** * 任务号 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/expectout/ExpectoutDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/expectout/ExpectoutDO.java index 483781b6..e1357108 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/expectout/ExpectoutDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/expectout/ExpectoutDO.java @@ -1,10 +1,13 @@ package com.win.module.wms.dal.dataobject.expectout; +import com.baomidou.mybatisplus.annotation.IdType; +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 com.baomidou.mybatisplus.annotation.*; -import com.win.framework.mybatis.core.dataobject.BaseDO; /** * 预计出库存 DO @@ -23,8 +26,8 @@ public class ExpectoutDO extends BaseDO { /** * id */ - @TableId(type = IdType.INPUT) - private String id; + @TableId(type = IdType.AUTO) + private Long id; /** * 任务号 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inspectRequest/InspectRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inspectRequest/InspectRequestMainDO.java index db28ec8a..e8aebf06 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inspectRequest/InspectRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inspectRequest/InspectRequestMainDO.java @@ -1,13 +1,13 @@ package com.win.module.wms.dal.dataobject.inspectRequest; +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.math.BigDecimal; import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import com.win.framework.mybatis.core.dataobject.BaseDO; /** * 检验申请主 DO @@ -143,11 +143,11 @@ public class InspectRequestMainDO extends BaseDO { /** * 收货数量 */ - private Integer receiveQty; + private BigDecimal receiveQty; /** * 样品数量 */ - private Integer sampleQty; + private BigDecimal sampleQty; /** * 货主代码 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestMainDO.java index f63dd4f3..bdd3eef7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productputawayRequest/ProductputawayRequestMainDO.java @@ -33,12 +33,10 @@ public class ProductputawayRequestMainDO extends BaseDO { /** * 从仓库代码 */ - @NotBlank private String fromWarehouseCode; /** * 到仓库代码 */ - @NotBlank private String toWarehouseCode; /** * 从库位类型范围 @@ -97,7 +95,6 @@ public class ProductputawayRequestMainDO extends BaseDO { /** * 部门 */ - @NotBlank private String departmentCode; /** * 状态 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereceiptRecord/PurchasereceiptRecordDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereceiptRecord/PurchasereceiptRecordDetailDO.java index 2acd887d..c941db03 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereceiptRecord/PurchasereceiptRecordDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereceiptRecord/PurchasereceiptRecordDetailDO.java @@ -1,19 +1,13 @@ package com.win.module.wms.dal.dataobject.purchasereceiptRecord; +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.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; + import java.math.BigDecimal; import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import com.win.framework.mybatis.core.dataobject.BaseDO; /** * 采购收货记录子 DO @@ -93,11 +87,11 @@ public class PurchasereceiptRecordDetailDO extends BaseDO { /** * 从库区代码 */ - private String fromAreaCodes; + private String fromAreaCode; /** * 到库区代码 */ - private String toAreaCodes; + private String toAreaCode; /** * 订单号 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereceiptRecord/PurchaseshortageDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereceiptRecord/PurchaseshortageDetailDO.java new file mode 100644 index 00000000..b7cb5b6d --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereceiptRecord/PurchaseshortageDetailDO.java @@ -0,0 +1,211 @@ +package com.win.module.wms.dal.dataobject.purchasereceiptRecord; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.win.framework.mybatis.core.dataobject.BaseDO; +import lombok.*; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 采购收货记录子 DO + * + * @author 超级管理员 + */ +@TableName("record_purchaseshortage_detail") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PurchaseshortageDetailDO extends BaseDO { + + /** + * id + */ + @TableId + private Long id; + /** + * 从包装号 + */ + private String fromPackingNumber; + /** + * 到包装号 + */ + private String toPackingNumber; + /** + * 从器具号 + */ + private String fromContainerNumber; + /** + * 到器具号 + */ + private String toContainerNumber; + /** + * 从批次 + */ + private String fromBatch; + /** + * 替代批次 + */ + private String altBatch; + /** + * 到货日期 + */ + private LocalDateTime arriveDate; + /** + * 生产日期 + */ + private LocalDateTime produceDate; + /** + * 过期日期 + */ + private LocalDateTime expireDate; + /** + * 库存状态 + */ + private String inventoryStatus; + /** + * 从库位代码 + */ + private String fromLocationCode; + /** + * 到库位代码 + */ + private String toLocationCode; + /** + * 从库位组代码 + */ + private String fromLocationGroupCode; + /** + * 到库位组代码 + */ + private String toLocationGroupCode; + /** + * 从库区代码 + */ + private String fromAreaCodes; + /** + * 到库区代码 + */ + private String toAreaCodes; + /** + * 订单号 + */ + private String poNumber; + /** + * 订单行 + */ + private String poLine; + /** + * 标包数量 + */ + private BigDecimal stdPackQty; + /** + * 标包单位 + */ + private String stdPackUnit; + /** + * 数量 + */ + private BigDecimal qty; + /** + * 单位 + */ + private String uom; + /** + * 供应商计量数量 + */ + private BigDecimal supplierQty; + /** + * 供应商计量单位 + */ + private String supplierUom; + /** + * 转换率 + */ + private BigDecimal convertRate; + /** + * 目检结果 + */ + private String visualInspectResult; + /** + * 目检照片 + */ + private String visualInspectPhotos; + /** + * 不合格原因 + */ + private String failedReason; + /** + * 单价 + */ + private BigDecimal singlePrice; + /** + * 金额 + */ + private BigDecimal amount; + /** + * 任务明细ID + */ + private String jobDetailId; + /** + * 物品代码 + */ + private String itemCode; + /** + * 物品名称 + */ + private String itemName; + /** + * 物品描述1 + */ + private String itemDesc1; + /** + * 物品描述2 + */ + private String itemDesc2; + /** + * 主表ID + */ + private Long masterId; + /** + * 单据号 + */ + private String number; + /** + * 备注 + */ + private String remark; + /** + * 地点ID + */ + private String siteId; + /** + * 项目代码 + */ + private String projectCode; + /** + * 代码 + */ + private String code; + /** + * 接口类型 + */ + private String interfaceType; + /** + * 从货主代码 + */ + private String fromOwnerCode; + /** + * 到货主代码 + */ + private String toOwnerCode; + /** + * 到批次 + */ + private String toBatch; + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereturnRequest/PurchasereturnRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereturnRequest/PurchasereturnRequestMainDO.java index 57ee6d77..fad48feb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereturnRequest/PurchasereturnRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchasereturnRequest/PurchasereturnRequestMainDO.java @@ -1,10 +1,7 @@ package com.win.module.wms.dal.dataobject.purchasereturnRequest; +import com.sun.xml.bind.v2.TODO; 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; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/work/WorkDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/work/WorkDetailDO.java index ba7a6001..8343335e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/work/WorkDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/work/WorkDetailDO.java @@ -43,7 +43,7 @@ public class WorkDetailDO 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/mysql/areabasic/AreabasicMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/areabasic/AreabasicMapper.java index f3c7b84a..c42e939e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/areabasic/AreabasicMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/areabasic/AreabasicMapper.java @@ -47,7 +47,6 @@ public interface AreabasicMapper extends BaseMapperX { return selectList(new LambdaQueryWrapperX() .eqIfPresent(AreabasicDO::getCode, reqVO.getCode()) .likeIfPresent(AreabasicDO::getName, reqVO.getName()) - .eqIfPresent(AreabasicDO::getDescription, reqVO.getDescription()) .eqIfPresent(AreabasicDO::getWarehouseCode, reqVO.getWarehouseCode()) .eqIfPresent(AreabasicDO::getType, reqVO.getType()) .eqIfPresent(AreabasicDO::getIsFunctional, reqVO.getIsFunctional()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/bom/BomMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/bom/BomMapper.java index c1ba720a..b6819590 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/bom/BomMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/bom/BomMapper.java @@ -62,5 +62,7 @@ public interface BomMapper extends BaseMapperX { .eqIfPresent(BomDO::getCreator, reqVO.getCreator()) .orderByDesc(BomDO::getId)); } - + default List 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/customerreturnRequest/CustomerreturnRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestDetailMapper.java index c6b9fa7b..1142b905 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 @@ -51,7 +51,6 @@ public interface CustomerreturnRequestDetailMapper extends BaseMapperX selectList(CustomerreturnRequestDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() - .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/deliverRequest/DeliverRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestDetailMapper.java index a3ca18cc..8d9c8f31 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/deliverRequest/DeliverRequestDetailMapper.java @@ -53,7 +53,6 @@ public interface DeliverRequestDetailMapper extends BaseMapperX selectList(DeliverRequestDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() - .eqIfPresent(DeliverRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(DeliverRequestDetailDO::getSoNumber, reqVO.getSoNumber()) .eqIfPresent(DeliverRequestDetailDO::getSoLine, reqVO.getSoLine()) .eqIfPresent(DeliverRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/expectin/ExpectinMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/expectin/ExpectinMapper.java index a3a25eeb..9b4e9edf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/expectin/ExpectinMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/expectin/ExpectinMapper.java @@ -1,17 +1,17 @@ package com.win.module.wms.dal.mysql.expectin; -import java.util.*; - import com.win.framework.common.pojo.CustomConditions; 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.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.expectin.vo.ExpectinExportReqVO; import com.win.module.wms.controller.expectin.vo.ExpectinPageReqVO; import com.win.module.wms.dal.dataobject.expectin.ExpectinDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 预计入库存 Mapper * @@ -52,4 +52,8 @@ public interface ExpectinMapper extends BaseMapperX { .orderByDesc(ExpectinDO::getId)); } + default List 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/expectout/ExpectoutMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/expectout/ExpectoutMapper.java index fbc257c1..d3b02f67 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/expectout/ExpectoutMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/expectout/ExpectoutMapper.java @@ -1,17 +1,17 @@ package com.win.module.wms.dal.mysql.expectout; -import java.util.*; - import com.win.framework.common.pojo.CustomConditions; 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.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.expectout.vo.ExpectoutExportReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutPageReqVO; import com.win.module.wms.dal.dataobject.expectout.ExpectoutDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 预计出库存 Mapper * @@ -54,4 +54,8 @@ public interface ExpectoutMapper extends BaseMapperX { .orderByDesc(ExpectoutDO::getId)); } + default List 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/inspectRequest/InspectRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectRequest/InspectRequestMainMapper.java index be64ad21..557e9982 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectRequest/InspectRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inspectRequest/InspectRequestMainMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainExportReqVO; import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainPageReqVO; import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; +import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import org.apache.ibatis.annotations.Mapper; /** @@ -94,4 +95,7 @@ public interface InspectRequestMainMapper extends BaseMapperX { .orderByDesc(ItembasicDO::getId)); } + default List 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/itempackaging/ItempackagingMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/itempackaging/ItempackagingMapper.java index 1c1512fb..916e6aba 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/itempackaging/ItempackagingMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/itempackaging/ItempackagingMapper.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.itempackaging.vo.ItempackagingExportReqVO; import com.win.module.wms.controller.itempackaging.vo.ItempackagingPageReqVO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; import org.apache.ibatis.annotations.Mapper; @@ -69,4 +70,7 @@ public interface ItempackagingMapper extends BaseMapperX { } default ItempackagingDO selectByItemCode(String itemCode){return selectOne(ItempackagingDO::getItemCode,itemCode);}; + default List 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/process/ProcessMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/process/ProcessMapper.java index 8d463244..4adacbc4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/process/ProcessMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/process/ProcessMapper.java @@ -46,7 +46,6 @@ public interface ProcessMapper extends BaseMapperX { return selectList(new LambdaQueryWrapperX() .eqIfPresent(ProcessDO::getCode, reqVO.getCode()) .likeIfPresent(ProcessDO::getName, reqVO.getName()) - .eqIfPresent(ProcessDO::getDescription, reqVO.getDescription()) .eqIfPresent(ProcessDO::getType, reqVO.getType()) .eqIfPresent(ProcessDO::getWorkshopCode, reqVO.getWorkshopCode()) .eqIfPresent(ProcessDO::getProductionLineCode, reqVO.getProductionLineCode()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionline/ProductionlineMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionline/ProductionlineMapper.java index 056c1faa..9158eb92 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionline/ProductionlineMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionline/ProductionlineMapper.java @@ -46,7 +46,6 @@ public interface ProductionlineMapper extends BaseMapperX { return selectList(new LambdaQueryWrapperX() .eqIfPresent(ProductionlineDO::getCode, reqVO.getCode()) .likeIfPresent(ProductionlineDO::getName, reqVO.getName()) - .eqIfPresent(ProductionlineDO::getDescription, reqVO.getDescription()) .eqIfPresent(ProductionlineDO::getType, reqVO.getType()) .eqIfPresent(ProductionlineDO::getWorkshopCode, reqVO.getWorkshopCode()) .eqIfPresent(ProductionlineDO::getRawLocationCode, reqVO.getRawLocationCode()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionlineitem/ProductionlineitemMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionlineitem/ProductionlineitemMapper.java index a474a028..c4b2efd3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionlineitem/ProductionlineitemMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionlineitem/ProductionlineitemMapper.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.productionlineitem.vo.ProductionlineitemExportReqVO; import com.win.module.wms.controller.productionlineitem.vo.ProductionlineitemPageReqVO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.productionlineitem.ProductionlineitemDO; import org.apache.ibatis.annotations.Mapper; @@ -51,5 +52,7 @@ public interface ProductionlineitemMapper 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/productionreturnRequest/ProductionreturnRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productionreturnRequest/ProductionreturnRequestDetailMapper.java index bc4d12f5..d4fba8f9 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 @@ -53,7 +53,6 @@ public interface ProductionreturnRequestDetailMapper extends BaseMapperX selectList(ProductionreturnRequestDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() - .eqIfPresent(ProductionreturnRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(ProductionreturnRequestDetailDO::getProductionLineCode, reqVO.getProductionLineCode()) .eqIfPresent(ProductionreturnRequestDetailDO::getWorkStationCode, reqVO.getWorkStationCode()) .eqIfPresent(ProductionreturnRequestDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) 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 3dcdfeb7..e76ef52a 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 @@ -76,4 +76,7 @@ public interface ProductionreturnRequestMainMapper extends BaseMapperX selectList(ProductputawayRequestDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() - .eqIfPresent(ProductputawayRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(ProductputawayRequestDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(ProductputawayRequestDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(ProductputawayRequestDetailDO::getBatch, reqVO.getBatch()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/project/ProjectMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/project/ProjectMapper.java index 49478d77..b8fd9a94 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/project/ProjectMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/project/ProjectMapper.java @@ -41,7 +41,6 @@ public interface ProjectMapper extends BaseMapperX { return selectList(new LambdaQueryWrapperX() .eqIfPresent(ProjectDO::getCode, reqVO.getCode()) .likeIfPresent(ProjectDO::getName, reqVO.getName()) - .eqIfPresent(ProjectDO::getDescription, reqVO.getDescription()) .eqIfPresent(ProjectDO::getCustomerCode, reqVO.getCustomerCode()) .eqIfPresent(ProjectDO::getAvailable, reqVO.getAvailable()) .betweenIfPresent(ProjectDO::getActiveTime, reqVO.getActiveTime()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanMainMapper.java index 62559d5b..20537c22 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanMainMapper.java @@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainExportReqVO; import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainPageReqVO; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO; +import com.win.module.wms.enums.order.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -47,6 +48,13 @@ public interface PurchasePlanMainMapper extends BaseMapperX default PageResult selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); } + + default Long selectBySonNumber(String number) { + return selectCount(new LambdaQueryWrapperX() + .eq(PurchasePlanMainDO::getNumber, number) + .ne(PurchasePlanMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + } + default List selectList(PurchasePlanMainExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(PurchasePlanMainDO::getSupplierCode, reqVO.getSupplierCode()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseprice/PurchasepriceMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseprice/PurchasepriceMapper.java index d93fdfe2..f3de7a4a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseprice/PurchasepriceMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseprice/PurchasepriceMapper.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.purchaseprice.vo.PurchasepriceExportReqVO; import com.win.module.wms.controller.purchaseprice.vo.PurchasepricePageReqVO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.purchaseprice.PurchasepriceDO; import org.apache.ibatis.annotations.Mapper; @@ -53,4 +54,7 @@ public interface PurchasepriceMapper extends BaseMapperX { } default PurchasepriceDO selectByItemCode(String itemCode){return selectOne(PurchasepriceDO::getItemCode,itemCode);}; + default List 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/purchasereceiptJob/PurchasereceiptJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java index 67b9103b..46de9edd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java @@ -74,10 +74,10 @@ public interface PurchasereceiptJobMainMapper extends BaseMapperX() - .eq(PurchasereceiptJobMainDO::getRequestNumber, requestNumbere) - .eq(PurchasereceiptJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + .eq(PurchasereceiptJobMainDO::getRequestNumber, requestNumber) + .ne(PurchasereceiptJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); } default List selectList(PurchasereceiptJobMainExportReqVO reqVO) { @@ -143,4 +143,17 @@ public interface PurchasereceiptJobMainMapper extends BaseMapperX types, String requestNumber) { + return selectCount(new LambdaQueryWrapperX() + .in(PurchasereceiptJobMainDO::getStatus, types) + .eq(PurchasereceiptJobMainDO::getRequestNumber, requestNumber)); + + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRecord/PurchasereceiptRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRecord/PurchasereceiptRecordDetailMapper.java index 13f2a460..62a31bd4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRecord/PurchasereceiptRecordDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRecord/PurchasereceiptRecordDetailMapper.java @@ -36,8 +36,8 @@ public interface PurchasereceiptRecordDetailMapper extends BaseMapperX { + + default PageResult selectPage(PurchaseshortageDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(PurchaseshortageDetailDO::getFromPackingNumber, reqVO.getFromPackingNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getToPackingNumber, reqVO.getToPackingNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getFromContainerNumber, reqVO.getFromContainerNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getToContainerNumber, reqVO.getToContainerNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getFromBatch, reqVO.getFromBatch()) + .eqIfPresent(PurchaseshortageDetailDO::getAltBatch, reqVO.getAltBatch()) + .betweenIfPresent(PurchaseshortageDetailDO::getArriveDate, reqVO.getArriveDate()) + .betweenIfPresent(PurchaseshortageDetailDO::getProduceDate, reqVO.getProduceDate()) + .betweenIfPresent(PurchaseshortageDetailDO::getExpireDate, reqVO.getExpireDate()) + .eqIfPresent(PurchaseshortageDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) + .eqIfPresent(PurchaseshortageDetailDO::getFromLocationCode, reqVO.getFromLocationCode()) + .eqIfPresent(PurchaseshortageDetailDO::getToLocationCode, reqVO.getToLocationCode()) + .eqIfPresent(PurchaseshortageDetailDO::getFromLocationGroupCode, reqVO.getFromLocationGroupCode()) + .eqIfPresent(PurchaseshortageDetailDO::getToLocationGroupCode, reqVO.getToLocationGroupCode()) + .eqIfPresent(PurchaseshortageDetailDO::getFromAreaCodes, reqVO.getFromAreaCodes()) + .eqIfPresent(PurchaseshortageDetailDO::getToAreaCodes, reqVO.getToAreaCodes()) + .eqIfPresent(PurchaseshortageDetailDO::getPoNumber, reqVO.getPoNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getPoLine, reqVO.getPoLine()) + .eqIfPresent(PurchaseshortageDetailDO::getStdPackQty, reqVO.getStdPackQty()) + .eqIfPresent(PurchaseshortageDetailDO::getStdPackUnit, reqVO.getStdPackUnit()) + .eqIfPresent(PurchaseshortageDetailDO::getQty, reqVO.getQty()) + .eqIfPresent(PurchaseshortageDetailDO::getUom, reqVO.getUom()) + .eqIfPresent(PurchaseshortageDetailDO::getSupplierQty, reqVO.getSupplierQty()) + .eqIfPresent(PurchaseshortageDetailDO::getSupplierUom, reqVO.getSupplierUom()) + .eqIfPresent(PurchaseshortageDetailDO::getConvertRate, reqVO.getConvertRate()) + .eqIfPresent(PurchaseshortageDetailDO::getVisualInspectResult, reqVO.getVisualInspectResult()) + .eqIfPresent(PurchaseshortageDetailDO::getVisualInspectPhotos, reqVO.getVisualInspectPhotos()) + .eqIfPresent(PurchaseshortageDetailDO::getFailedReason, reqVO.getFailedReason()) + .eqIfPresent(PurchaseshortageDetailDO::getSinglePrice, reqVO.getSinglePrice()) + .eqIfPresent(PurchaseshortageDetailDO::getAmount, reqVO.getAmount()) + .eqIfPresent(PurchaseshortageDetailDO::getJobDetailId, reqVO.getJobDetailId()) + .eqIfPresent(PurchaseshortageDetailDO::getItemCode, reqVO.getItemCode()) + .likeIfPresent(PurchaseshortageDetailDO::getItemName, reqVO.getItemName()) + .eqIfPresent(PurchaseshortageDetailDO::getItemDesc1, reqVO.getItemDesc1()) + .eqIfPresent(PurchaseshortageDetailDO::getItemDesc2, reqVO.getItemDesc2()) + .eqIfPresent(PurchaseshortageDetailDO::getMasterId, reqVO.getMasterId()) + .eqIfPresent(PurchaseshortageDetailDO::getNumber, reqVO.getNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(PurchaseshortageDetailDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(PurchaseshortageDetailDO::getSiteId, reqVO.getSiteId()) + .eqIfPresent(PurchaseshortageDetailDO::getProjectCode, reqVO.getProjectCode()) + .eqIfPresent(PurchaseshortageDetailDO::getCode, reqVO.getCode()) + .eqIfPresent(PurchaseshortageDetailDO::getInterfaceType, reqVO.getInterfaceType()) + .eqIfPresent(PurchaseshortageDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode()) + .eqIfPresent(PurchaseshortageDetailDO::getToOwnerCode, reqVO.getToOwnerCode()) + .eqIfPresent(PurchaseshortageDetailDO::getToBatch, reqVO.getToBatch()) + .orderByDesc(PurchaseshortageDetailDO::getId)); + } + + default List selectList(PurchaseshortageDetailExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(PurchaseshortageDetailDO::getFromPackingNumber, reqVO.getFromPackingNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getToPackingNumber, reqVO.getToPackingNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getFromContainerNumber, reqVO.getFromContainerNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getToContainerNumber, reqVO.getToContainerNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getFromBatch, reqVO.getFromBatch()) + .eqIfPresent(PurchaseshortageDetailDO::getAltBatch, reqVO.getAltBatch()) + .betweenIfPresent(PurchaseshortageDetailDO::getArriveDate, reqVO.getArriveDate()) + .betweenIfPresent(PurchaseshortageDetailDO::getProduceDate, reqVO.getProduceDate()) + .betweenIfPresent(PurchaseshortageDetailDO::getExpireDate, reqVO.getExpireDate()) + .eqIfPresent(PurchaseshortageDetailDO::getInventoryStatus, reqVO.getInventoryStatus()) + .eqIfPresent(PurchaseshortageDetailDO::getFromLocationCode, reqVO.getFromLocationCode()) + .eqIfPresent(PurchaseshortageDetailDO::getToLocationCode, reqVO.getToLocationCode()) + .eqIfPresent(PurchaseshortageDetailDO::getFromLocationGroupCode, reqVO.getFromLocationGroupCode()) + .eqIfPresent(PurchaseshortageDetailDO::getToLocationGroupCode, reqVO.getToLocationGroupCode()) + .eqIfPresent(PurchaseshortageDetailDO::getFromAreaCodes, reqVO.getFromAreaCodes()) + .eqIfPresent(PurchaseshortageDetailDO::getToAreaCodes, reqVO.getToAreaCodes()) + .eqIfPresent(PurchaseshortageDetailDO::getPoNumber, reqVO.getPoNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getPoLine, reqVO.getPoLine()) + .eqIfPresent(PurchaseshortageDetailDO::getStdPackQty, reqVO.getStdPackQty()) + .eqIfPresent(PurchaseshortageDetailDO::getStdPackUnit, reqVO.getStdPackUnit()) + .eqIfPresent(PurchaseshortageDetailDO::getQty, reqVO.getQty()) + .eqIfPresent(PurchaseshortageDetailDO::getUom, reqVO.getUom()) + .eqIfPresent(PurchaseshortageDetailDO::getSupplierQty, reqVO.getSupplierQty()) + .eqIfPresent(PurchaseshortageDetailDO::getSupplierUom, reqVO.getSupplierUom()) + .eqIfPresent(PurchaseshortageDetailDO::getConvertRate, reqVO.getConvertRate()) + .eqIfPresent(PurchaseshortageDetailDO::getVisualInspectResult, reqVO.getVisualInspectResult()) + .eqIfPresent(PurchaseshortageDetailDO::getVisualInspectPhotos, reqVO.getVisualInspectPhotos()) + .eqIfPresent(PurchaseshortageDetailDO::getFailedReason, reqVO.getFailedReason()) + .eqIfPresent(PurchaseshortageDetailDO::getSinglePrice, reqVO.getSinglePrice()) + .eqIfPresent(PurchaseshortageDetailDO::getAmount, reqVO.getAmount()) + .eqIfPresent(PurchaseshortageDetailDO::getJobDetailId, reqVO.getJobDetailId()) + .eqIfPresent(PurchaseshortageDetailDO::getItemCode, reqVO.getItemCode()) + .likeIfPresent(PurchaseshortageDetailDO::getItemName, reqVO.getItemName()) + .eqIfPresent(PurchaseshortageDetailDO::getItemDesc1, reqVO.getItemDesc1()) + .eqIfPresent(PurchaseshortageDetailDO::getItemDesc2, reqVO.getItemDesc2()) + .eqIfPresent(PurchaseshortageDetailDO::getMasterId, reqVO.getMasterId()) + .eqIfPresent(PurchaseshortageDetailDO::getNumber, reqVO.getNumber()) + .eqIfPresent(PurchaseshortageDetailDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(PurchaseshortageDetailDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(PurchaseshortageDetailDO::getSiteId, reqVO.getSiteId()) + .eqIfPresent(PurchaseshortageDetailDO::getProjectCode, reqVO.getProjectCode()) + .eqIfPresent(PurchaseshortageDetailDO::getCode, reqVO.getCode()) + .eqIfPresent(PurchaseshortageDetailDO::getInterfaceType, reqVO.getInterfaceType()) + .eqIfPresent(PurchaseshortageDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode()) + .eqIfPresent(PurchaseshortageDetailDO::getToOwnerCode, reqVO.getToOwnerCode()) + .eqIfPresent(PurchaseshortageDetailDO::getToBatch, reqVO.getToBatch()) + .orderByDesc(PurchaseshortageDetailDO::getId)); + } + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRequest/PurchasereceiptRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRequest/PurchasereceiptRequestMainMapper.java index 05418d7d..1abd85d4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRequest/PurchasereceiptRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptRequest/PurchasereceiptRequestMainMapper.java @@ -60,8 +60,8 @@ public interface PurchasereceiptRequestMainMapper extends BaseMapperX selectList(PurchasereceiptRequestMainExportReqVO reqVO) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereturnRequest/PurchasereturnRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereturnRequest/PurchasereturnRequestMainMapper.java index d33ce366..a1f4ba09 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereturnRequest/PurchasereturnRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereturnRequest/PurchasereturnRequestMainMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExportReqVO; import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainPageReqVO; +import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import org.apache.ibatis.annotations.Mapper; @@ -57,6 +58,11 @@ public interface PurchasereturnRequestMainMapper extends BaseMapperX selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); } + + default PurchasereturnRequestMainDO selectRecordNumberAndSupplierCode(String purchaseReceiptRecordNumber, String supplierCode) { + return selectOne(PurchasereturnRequestMainDO::getPurchaseReceiptRecordNumber, purchaseReceiptRecordNumber,PurchasereturnRequestMainDO::getSupplierCode,supplierCode); + } + default List selectList(PurchasereturnRequestMainExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(PurchasereturnRequestMainDO::getPurchaseReceiptRecordNumber, reqVO.getPurchaseReceiptRecordNumber()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayRequest/PutawayRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayRequest/PutawayRequestMainMapper.java index 38c9ff7b..916ee350 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayRequest/PutawayRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/putawayRequest/PutawayRequestMainMapper.java @@ -92,4 +92,7 @@ public interface PutawayRequestMainMapper extends BaseMapperX { return selectList(new LambdaQueryWrapperX() .eqIfPresent(ShiftDO::getCode, reqVO.getCode()) .likeIfPresent(ShiftDO::getName, reqVO.getName()) - .eqIfPresent(ShiftDO::getDescription, reqVO.getDescription()) .betweenIfPresent(ShiftDO::getBeginTime, reqVO.getBeginTime()) .betweenIfPresent(ShiftDO::getEntTime, reqVO.getEntTime()) .betweenIfPresent(ShiftDO::getActiveTime, reqVO.getActiveTime()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/stdcostprice/StdcostpriceMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/stdcostprice/StdcostpriceMapper.java index 1adc9721..6c3df105 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/stdcostprice/StdcostpriceMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/stdcostprice/StdcostpriceMapper.java @@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.stdcostprice.vo.StdcostpriceExportReqVO; import com.win.module.wms.controller.stdcostprice.vo.StdcostpricePageReqVO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO; import org.apache.ibatis.annotations.Mapper; @@ -56,5 +57,8 @@ public interface StdcostpriceMapper extends BaseMapperX { .eqIfPresent(StdcostpriceDO::getCreator, reqVO.getCreator()) .orderByDesc(StdcostpriceDO::getId)); } + default List 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/supplier/SupplierMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplier/SupplierMapper.java index 2b84aec5..790d22ba 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplier/SupplierMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplier/SupplierMapper.java @@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.supplier.vo.SupplierExportReqVO; import com.win.module.wms.controller.supplier.vo.SupplierPageReqVO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.supplier.SupplierDO; import org.apache.ibatis.annotations.Mapper; @@ -74,5 +75,8 @@ public interface SupplierMapper extends BaseMapperX { .eqIfPresent(SupplierDO::getCreator, reqVO.getCreator()) .orderByDesc(SupplierDO::getId)); } + default List 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/supplieritem/SupplieritemMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplieritem/SupplieritemMapper.java index ec7168d3..48c79016 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplieritem/SupplieritemMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplieritem/SupplieritemMapper.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.supplieritem.vo.SupplieritemExportReqVO; import com.win.module.wms.controller.supplieritem.vo.SupplieritemPageReqVO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import org.apache.ibatis.annotations.Mapper; @@ -75,4 +76,7 @@ public interface SupplieritemMapper extends BaseMapperX { } default SupplieritemDO selectByItemcodeCode(String itemcode){return selectOne(SupplieritemDO::getItemCode,itemcode);} + default List 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/work/WorkDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/work/WorkDetailMapper.java index 5e618e06..a2f9a231 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/work/WorkDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/work/WorkDetailMapper.java @@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.work.vo.WorkDetailExportReqVO; import com.win.module.wms.controller.work.vo.WorkDetailPageReqVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.work.WorkDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -41,22 +42,26 @@ public interface WorkDetailMapper extends BaseMapperX { .orderByDesc(WorkDetailDO::getId)); } - default List selectList(WorkDetailExportReqVO reqVO) { + default List selectList(Long masterId) { return selectList(new LambdaQueryWrapperX() - .eqIfPresent(WorkDetailDO::getLineNumber, reqVO.getLineNumber()) - .eqIfPresent(WorkDetailDO::getProjectCode, reqVO.getProjectCode()) - .eqIfPresent(WorkDetailDO::getFinishedQty, reqVO.getFinishedQty()) - .eqIfPresent(WorkDetailDO::getNumber, reqVO.getNumber()) - .eqIfPresent(WorkDetailDO::getItemCode, reqVO.getItemCode()) - .eqIfPresent(WorkDetailDO::getRemark, reqVO.getRemark()) - .betweenIfPresent(WorkDetailDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(WorkDetailDO::getCreator, reqVO.getCreator()) - .eqIfPresent(WorkDetailDO::getOrderQty, reqVO.getOrderQty()) - .eqIfPresent(WorkDetailDO::getUom, reqVO.getUom()) - .betweenIfPresent(WorkDetailDO::getUpdateTime, reqVO.getUpdateTime()) - .eqIfPresent(WorkDetailDO::getUpdater, reqVO.getUpdater()) - .eqIfPresent(WorkDetailDO::getAvailable, reqVO.getAvailable()) - .orderByDesc(WorkDetailDO::getId)); + .eq(WorkDetailDO::getMasterId, masterId)); } +// default List selectList(WorkDetailExportReqVO reqVO) { +// return selectList(new LambdaQueryWrapperX() +// .eqIfPresent(WorkDetailDO::getLineNumber, reqVO.getLineNumber()) +// .eqIfPresent(WorkDetailDO::getProjectCode, reqVO.getProjectCode()) +// .eqIfPresent(WorkDetailDO::getFinishedQty, reqVO.getFinishedQty()) +// .eqIfPresent(WorkDetailDO::getNumber, reqVO.getNumber()) +// .eqIfPresent(WorkDetailDO::getItemCode, reqVO.getItemCode()) +// .eqIfPresent(WorkDetailDO::getRemark, reqVO.getRemark()) +// .betweenIfPresent(WorkDetailDO::getCreateTime, reqVO.getCreateTime()) +// .eqIfPresent(WorkDetailDO::getCreator, reqVO.getCreator()) +// .eqIfPresent(WorkDetailDO::getOrderQty, reqVO.getOrderQty()) +// .eqIfPresent(WorkDetailDO::getUom, reqVO.getUom()) +// .betweenIfPresent(WorkDetailDO::getUpdateTime, reqVO.getUpdateTime()) +// .eqIfPresent(WorkDetailDO::getUpdater, reqVO.getUpdater()) +// .eqIfPresent(WorkDetailDO::getAvailable, reqVO.getAvailable()) +// .orderByDesc(WorkDetailDO::getId)); +// } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/work/WorkMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/work/WorkMainMapper.java index ffe8ac15..39e06e26 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/work/WorkMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/work/WorkMainMapper.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.work.vo.WorkMainExportReqVO; import com.win.module.wms.controller.work.vo.WorkMainPageReqVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.work.WorkMainDO; import org.apache.ibatis.annotations.Mapper; @@ -66,4 +67,7 @@ public interface WorkMainMapper extends BaseMapperX { .orderByDesc(WorkMainDO::getId)); } + default List 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/enums/request/RequestStatusState.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java index ca6c8137..da783e16 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java @@ -93,7 +93,7 @@ public class RequestStatusState { } /** - * 审批 + * 处理 * @return */ public boolean handle() { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomService.java index b745196b..2c6bc9ed 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomService.java @@ -53,7 +53,7 @@ public interface BomService { * @param ids 编号 * @return 物料清单列表 */ - List getBomList(Collection ids); + List getBomList(CustomConditions conditions); /** * 获得物料清单分页 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomServiceImpl.java index a7cbd781..529f6450 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/bom/BomServiceImpl.java @@ -73,10 +73,11 @@ public class BomServiceImpl implements BomService { } @Override - public List getBomList(Collection ids) { - return bomMapper.selectBatchIds(ids); + public List getBomList(CustomConditions conditions) { + return bomMapper.selectSeniorList(conditions); } + @Override public PageResult getBomPage(BomPageReqVO pageReqVO) { return bomMapper.selectPage(pageReqVO); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customeritem/CustomeritemServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customeritem/CustomeritemServiceImpl.java index 1bdb7cb5..08c8ebbc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customeritem/CustomeritemServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customeritem/CustomeritemServiceImpl.java @@ -242,7 +242,7 @@ public class CustomeritemServiceImpl implements CustomeritemService { public CustomeritemDO selectCustomeritemExist(String pcustomerCode,String pitemCode){ QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("customer_code",pcustomerCode); - queryWrapper.eq("itemcode",pitemCode); + queryWrapper.eq("item_code",pitemCode); CustomeritemDO customeritemDO = customeritemMapper.selectOne(queryWrapper); if(customeritemDO != null && "TRUE".equals(customeritemDO.getAvailable())){ return customeritemDO; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java index ea6145f8..4301ef10 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java @@ -5,6 +5,8 @@ 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.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.deliverPlan.vo.*; @@ -15,20 +17,22 @@ import com.win.module.wms.dal.dataobject.customer.CustomerDO; import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanDetailDO; import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.sale.SaleDetailDO; import com.win.module.wms.dal.mysql.deliverPlan.DeliverPlanDetailMapper; import com.win.module.wms.dal.mysql.deliverPlan.DeliverPlanMainMapper; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.businesstype.BusinesstypeService; import com.win.module.wms.service.customer.CustomerService; import com.win.module.wms.service.deliverJob.DeliverJobMainService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; +import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -37,8 +41,7 @@ import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.DELIVER_PLAN_MAIN_NOT_EXISTS; -import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 发货计划主 Service 实现类 @@ -71,25 +74,34 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { private DeliverJobMainService deliverJobMainService; @Resource private SerialNumberApi serialNumberApi; - + @Resource + private TrendsApi trendsApi; + @Resource + private RequestsettingService requestsettingService; @Override public Long createDeliverPlanMain(DeliverPlanMainCreateReqVO createReqVO) { - // 插入 - DeliverPlanMainDO deliverPlanMain = DeliverPlanMainConvert.INSTANCE.convert(createReqVO); - deliverPlanMainMapper.insert(deliverPlanMain); - // 返回 - return deliverPlanMain.getId(); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverPlan"); + DeliverPlanMainDO deliverPlanMainDO = validatorToCreate(createReqVO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(deliverPlanMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "DeliverPlan", "增加了发货计划", TrendsTypeEnum.CREATE); + return deliverPlanMainDO.getId(); } @Override public void updateDeliverPlanMain(DeliverPlanMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverPlan"); // 校验存在 validateDeliverPlanMainExists(updateReqVO.getId()); - // 更新 - DeliverPlanMainDO updateObj = DeliverPlanMainConvert.INSTANCE.convert(updateReqVO); - deliverPlanMainMapper.updateById(updateObj); + DeliverPlanMainDO deliverPlanMainDO = validatorToUpdate(updateReqVO); + if(RequestStatusEnum.HANDLING.getCode().equals(deliverPlanMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "DeliverPlan", "修改了发货计划", TrendsTypeEnum.CREATE); } @Override @@ -134,125 +146,172 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { @Override public List importDeliverPlanMainList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { - throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); + throw exception(DELIVERPLAN_MAIN_IMPORT_LIST_IS_EMPTY); } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList - String messageMain = ""; - //主表的验证 - //校验客户代码 - try { - CustomerDO customerDO = customerService.selectCustomerExist(createReqVO.getCustomerCode()); - if (customerDO == null) { - messageMain += "客户代码" + createReqVO.getCustomerCode() + "无效" + ","; + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + DeliverPlanMainDO mainDo = DeliverPlanMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validateDeliverPlanMainImport(mainDo, businesstypeDO); + List subList = createReqVO.getSubList(); + List subDOList = DeliverPlanDetailConvert.INSTANCE.convertList03(subList); + // 是否有错误数据 + boolean flag = true; + for (DeliverPlanDetailDO detailDO : subDOList) { + String messageDetail = validateDeliverPlanDetailImport(detailDO, mainDo, businesstypeDO); + if (!messageMain.isEmpty() || messageDetail.isEmpty()) { + DeliverPlanMainImportErrorVO importErrorVO = DeliverPlanMainConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; } - } catch (ServiceException ex) { - messageMain += ex.getMessage() + ","; } - //校验业务类型相关属性 - try { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverPlan"); + //写入数据 + if (flag) { + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequestRequest"); if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); + mainDo.setBusinessType(businesstypeDO.getCode()); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_REQUEST.getCode()); + mainDo.setNumber(number); + deliverPlanMainMapper.insert(mainDo); + for (DeliverPlanDetailDO detailDO : subDOList) { + detailDO.setNumber(mainDo.getNumber()); + detailDO.setMasterId(mainDo.getId()); + detailDO.setCustomerDockCode(null); } -// createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); -// createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes()); -// createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); -// createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes()); - } catch (ServiceException ex) { - messageMain += ex.getMessage() + ","; + deliverPlanDetailMapper.insertBatch(subDOList); } + }); + return errorList; + } - //子表的验证 - List subList = createReqVO.getSubList(); - List subDOList = DeliverPlanDetailConvert.INSTANCE.convertList03(subList); - for (DeliverPlanDetailDO purchaseDetailDO : subDOList) { - String messageDetail = ""; - // 校验物品基础信息 - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(purchaseDetailDO.getItemCode()); - if (itembasicDO.getUom() != purchaseDetailDO.getUom()) { - messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ","; - } else { -// purchaseDetailDO.setItemDesc1(itembasicDO.getDesc1()); -// purchaseDetailDO.setItemDesc2(itembasicDO.getDesc2()); -// purchaseDetailDO.setItemName(itembasicDO.getName()); - purchaseDetailDO.setProject(itembasicDO.getProject()); - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } + /** + * 主表校验导入,并赋值一些参数 + * + * @param mainDo + * @return + */ + private String validateDeliverPlanMainImport(DeliverPlanMainDO mainDo, BusinesstypeDO businesstypeDO) { + // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList + String messageMain = ""; + //主表的验证 + //校验客户代码 + try { + CustomerDO customerDO = customerService.selectCustomerExist(mainDo.getCustomerCode()); + if (customerDO == null) { + messageMain += "客户代码" + mainDo.getCustomerCode() + "无效" + ","; + } + } catch (ServiceException ex) { + messageMain += ex.getMessage() + ","; + } + //校验业务类型相关属性 + try { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverPlan"); + if (businesstypeDO != null) { + mainDo.setBusinessType(businesstypeDO.getCode()); + } + } catch (ServiceException ex) { + messageMain += ex.getMessage() + ","; + } + return messageMain; + } - // 校验物品标包信息 - try { - SaleDetailDO saleDetailDO = deliverJobMainService.saleDetailExist(purchaseDetailDO.getSoNumber(), purchaseDetailDO.getSoLine(), purchaseDetailDO.getItemCode()); - if (saleDetailDO != null) { -// createReqVO.setBusinessType(saleDetailDO.getCode()); - } -// jobUtils.ifInToLocationType(from_location_code,saleDetailDO); -// createReqVO.setFromLocationTypes(saleDetailDO.getOutLocationTypes()); -// createReqVO.setToLocationTypes(saleDetailDO.getInLocationTypes()); -// createReqVO.setFromAreaCodes(saleDetailDO.getOutAreaCodes()); -// createReqVO.setToAreaCodes(saleDetailDO.getInAreaCodes()); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } + /** + * 子表校验导入,并赋值一些参数 + * + * @param detailDo + * @return + */ + private String validateDeliverPlanDetailImport(DeliverPlanDetailDO detailDo, DeliverPlanMainDO mainDo, BusinesstypeDO businesstypeDO) { + String messageDetail = ""; + // 校验物品基础信息 + try { + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + if ( !detailDo.getUom().equals(itembasicDO.getUom())) { + messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ","; + } + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + // 校验物品标包信息 + try { + SaleDetailDO saleDetailDO = deliverJobMainService.saleDetailExist(detailDo.getSoNumber(), detailDo.getSoLine(), detailDo.getItemCode()); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + return messageDetail; + } - DeliverPlanDetailCreateReqVO purchaseDetailCreateReqVO = DeliverPlanDetailConvert.INSTANCE.convert1(purchaseDetailDO); - DeliverPlanMainImportErrorVO importVO = DeliverPlanDetailConvert.INSTANCE.convert(createReqVO, purchaseDetailCreateReqVO); - //进行子表的错误统计 - //主表没有错误 写入库里 - if (!messageMain.equals("") || !messageDetail.equals("")) { - importVO.setImportStatus("失败"); - messageMain = messageMain + messageDetail; - importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); - errorList.add(importVO); - } else { - purchaseDetailDO.setNumber(createReqVO.getNumber()); - purchaseDetailDO.setMasterId(createReqVO.getId()); - purchaseDetailDO.setCustomerDockCode(null); - purchaseDetailDO.setNumber(createReqVO.getNumber()); - } - } + //新增方法(主和子) + private DeliverPlanMainDO validatorToCreate(DeliverPlanMainCreateReqVO createReqVO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverPlan"); + DeliverPlanMainDO deliverPlanMainDO = validateMainMethod(createReqVO,businesstypeDO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = DeliverPlanDetailConvert.INSTANCE.convertList03(subList); + for (DeliverPlanDetailDO deliverPlanDetailDO : subDOList) { + validateDetailMethod(deliverPlanDetailDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_REQUEST.getCode()); + deliverPlanMainDO.setNumber(number); + deliverPlanMainMapper.insert(deliverPlanMainDO); + for (DeliverPlanDetailDO deliverPlanDetailDO : subDOList) { + deliverPlanDetailDO.setNumber(deliverPlanMainDO.getNumber()); + deliverPlanDetailDO.setMasterId(deliverPlanMainDO.getId()); + deliverPlanDetailDO.setCustomerDockCode(null); + } + deliverPlanDetailMapper.insertBatch(subDOList); + return deliverPlanMainDO; + } - if (errorList.isEmpty()) { - // 判断如果不存在,在进行插入 - DeliverPlanMainDO existPurchaseclaimRequestMainDO = deliverPlanMainMapper.selectByNumber(createReqVO.getNumber()); - if (existPurchaseclaimRequestMainDO == null && mode != 3) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequestRequest"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - createReqVO.setStatus(null); - String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_REQUEST.getCode()); - createReqVO.setNumber(number); - DeliverPlanMainDO createObj = DeliverPlanMainConvert.INSTANCE.convert(createReqVO); - deliverPlanMainMapper.insert(createObj); - deliverPlanDetailMapper.insertBatch(subDOList); - } else if (existPurchaseclaimRequestMainDO != null && mode != 2) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequestRequest"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - createReqVO.setStatus(null); - String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_REQUEST.getCode()); - createReqVO.setNumber(number); - DeliverPlanMainDO createObj = DeliverPlanMainConvert.INSTANCE.convert(createReqVO); - deliverPlanMainMapper.updateById(createObj); - deliverPlanDetailMapper.updateBatch(subDOList); - } - } - }); - //错误不为空并非部分更新,手工回滚 - if (!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + //修改方法(主和子) + private DeliverPlanMainDO validatorToUpdate(DeliverPlanMainUpdateReqVO updateReqVO) { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + DeliverPlanMainDO deliverPlanMainDO = validateMainMethod(updateReqVO,businesstypeDO); + //子表校验 + List subList = updateReqVO.getSubList(); + List subDOList = DeliverPlanDetailConvert.INSTANCE.convertList05(subList); + for (DeliverPlanDetailDO deliverPlanDetailDO : subDOList) { + validateDetailMethod(deliverPlanDetailDO); } - return errorList; + deliverPlanMainMapper.updateById(deliverPlanMainDO); + deliverPlanDetailMapper.updateBatch(subDOList); + return deliverPlanMainDO; } + //校验主表公共方法(适用于新增/修改) + private DeliverPlanMainDO validateMainMethod(DeliverPlanMainBaseVO baseVO, BusinesstypeDO businesstypeDO){ + DeliverPlanMainDO deliverPlanMainDO = DeliverPlanMainConvert.INSTANCE.convert(baseVO); + this.validatorCustomerExist(deliverPlanMainDO.getCustomerCode()); + deliverPlanMainDO.setBusinessType(businesstypeDO.getCode()); + return deliverPlanMainDO; + } + + //校验子表公共方法(适用于新增/修改) + private void validateDetailMethod(DeliverPlanDetailDO deliverPlanDetailDO) { + ItembasicDO itembasicDO = this.validatorItembasic(deliverPlanDetailDO.getItemCode()); + if ( !deliverPlanDetailDO.getUom().equals(itembasicDO.getUom())) { + throw exception(UOM_ERROR, deliverPlanDetailDO.getUom()); + } + this.validatorDetailExist(deliverPlanDetailDO.getSoNumber(), deliverPlanDetailDO.getSoLine(), deliverPlanDetailDO.getItemCode()); + } + + //主表校验客户代码 + private void validatorCustomerExist(String customerCode) { + customerService.selectCustomerExist(customerCode); + } + //子表校验物品基础信息 + private ItembasicDO validatorItembasic(String itemCode) { + return itembasicService.selectItembasic(itemCode); + } + //子表校验客户代码 + private void validatorDetailExist(String soNumber, String soLine, String itemCode) { + deliverJobMainService.saleDetailExist(soNumber, soLine, itemCode); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java index b8759838..1630dcaf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java @@ -81,46 +81,49 @@ public class DeliverRecordMainServiceImpl implements DeliverRecordMainService { public DeliverRecordDetailDO selectDeliverRecordExist(String pnumber,String pitemCode,String psoNumber,String psoLine){ QueryWrapper queryWrapperMain = new QueryWrapper(); queryWrapperMain.eq("number",pnumber); + queryWrapperMain.eq("available","TRUE"); DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainMapper.selectOne(queryWrapperMain); - if(deliverRecordMainDO != null && "TRUE".equals(deliverRecordMainDO)){ + if(deliverRecordMainDO != null){ QueryWrapper queryWrapperDetail = new QueryWrapper(); queryWrapperDetail.eq("itemcode",pitemCode); queryWrapperDetail.eq("so_number",psoNumber); queryWrapperDetail.eq("so_line",psoLine); + queryWrapperDetail.eq("available","TRUE"); DeliverRecordDetailDO deliverRecordDetailDO = deliverRecordDetailMapper.selectOne(queryWrapperDetail); - if(deliverRecordDetailDO != null && "TRUE".equals(deliverRecordDetailDO.getAvailable())){ + if(deliverRecordDetailDO != null){ return deliverRecordDetailDO; }else { - throw new UtilException( "采购收货记录明细:销售订单号" + psoNumber + "、销售订单行、" + psoLine + "、物品代码" + pitemCode + "无效"); + throw exception(PURCHASERECEIPT_RECORD_DETAIL_EXCEPTION, "销售订单号" + psoNumber + "、销售订单行、" + psoLine + "、物品代码" + pitemCode + "无效"); } }else { - throw new UtilException( "发货订单无效" + pnumber + "无效"); - + throw exception(DELIVER_ORDER_DETAIL_EXCEPTION, "发货订单" + pnumber + "无效"); } } @Override public DeliverRecordMainDO selectsMainRecordExist(String pnumber){ QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("number",pnumber); + queryWrapper.eq("available","TRUE"); DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainMapper.selectOne(queryWrapper); - if(deliverRecordMainDO != null && "TRUE".equals(deliverRecordMainDO.getAvailable())){ + if(deliverRecordMainDO != null){ return deliverRecordMainDO; } else{ - throw new UtilException( "发货记录无效"+pnumber+"无效"); + throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"单据号" + pnumber + "无效"); } } @Override public List selectsDeliverRecordExist(String pnumber) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.in("number",pnumber); + queryWrapper.eq("available","TRUE"); List deliverRecordDetailDO = deliverRecordDetailMapper.selectList(queryWrapper); if(!deliverRecordDetailDO.isEmpty()) { for (DeliverRecordDetailDO detail : deliverRecordDetailDO) { - if (detail != null && "TRUE".equals(detail.getAvailable())) { + if (detail != null) { return deliverRecordDetailDO; } else { - throw new UtilException("发货记录明细:单据号" + pnumber + "无效"); + throw exception(DELIVER_RECORD_DETAIL_EXCEPTION,"单据号" + pnumber + "无效"); } } } 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 ed5e4320..7c7f6351 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 @@ -90,15 +90,14 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService @Override public Long createDeliverRequestMain(DeliverRequestMainCreateReqVO createReqVO) { // 插入 - RequestsettingDO requestsettingDO = new RequestsettingDO(); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest"); DeliverRequestMainDO deliverRequestMain = validatorToCreate(createReqVO,requestsettingDO); //调用自动执行方法 if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMain.getStatus())) { } - trendsApi.createTrends(requestsettingDO.getId(), "IssueRequest", "增加了发料申请", TrendsTypeEnum.CREATE); + trendsApi.createTrends(requestsettingDO.getId(), "DeliverRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE); return deliverRequestMain.getId(); - } private DeliverRequestMainDO validatorToCreate(DeliverRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { @@ -136,7 +135,6 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService deliverRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); deliverRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); return deliverRequestMainDO; - } private DeliverRequestDetailDO validateDetailMethod(DeliverRequestDetailDO deliverRequestDetailDO) { @@ -151,29 +149,32 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService Isqty(saleDetailDO.getShippedQty(), deliverRequestDetailDO.getQty(), saleDetailDO.getOrderQty(), deliverRequestDetailDO.getSoNumber(), deliverRequestDetailDO.getSoLine(), deliverRequestDetailDO.getItemCode()); } return deliverRequestDetailDO; - } @Override public void updateDeliverRequestMain(DeliverRequestMainUpdateReqVO updateReqVO) { - RequestsettingDO requestsettingDO = new RequestsettingDO(); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest"); // 校验存在 validateDeliverRequestMainExists(updateReqVO.getId()); // 更新 DeliverRequestMainDO deliverRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); - DeliverRequestMainDO updateObj = DeliverRequestMainConvert.INSTANCE.convert(updateReqVO); - deliverRequestMainMapper.updateById(updateObj); + if(RequestStatusEnum.HANDLING.getCode().equals(deliverRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "DeliverRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE); } private DeliverRequestMainDO validatorToUpdate(DeliverRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { BusinesstypeDO businesstypeDO = new BusinesstypeDO(); DeliverRequestMainDO deliverRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); //子表校验 List subList = updateReqVO.getSubList(); - List subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList); - for (DeliverRequestDetailDO issueRequestDetailDO : subDOList) { - validateDetailMethod(issueRequestDetailDO); + if(subList!=null){ + List subDOList = DeliverRequestDetailConvert.INSTANCE.convertList03(subList); + for (DeliverRequestDetailDO issueRequestDetailDO : subDOList) { + validateDetailMethod(issueRequestDetailDO); + deliverRequestDetailMapper.updateBatch(subDOList); + } } deliverRequestMainMapper.updateById(deliverRequestMainDO); - deliverRequestDetailMapper.updateBatch(subDOList); return deliverRequestMainDO; } @@ -298,7 +299,6 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService try{ Isuom(itembasicDO.getUom(),detailDo.getUom()); }catch (Exception ex) { - message.append(ex.getMessage()).append(","); } }catch (Exception ex) { @@ -306,12 +306,10 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService } try{ SaleDetailDO saleDetailDO =validatorSale(detailDo.getSoNumber(),detailDo.getSoLine(),detailDo.getItemCode()); - if(saleDetailDO!=null) { try { Isqty(saleDetailDO.getShippedQty(), detailDo.getQty(), saleDetailDO.getOrderQty(), detailDo.getSoNumber(), detailDo.getSoLine(), detailDo.getItemCode()); } catch (Exception ex) { - message.append(ex.getMessage()).append(","); } } @@ -337,7 +335,6 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - BusinesstypeDO businesstypeDO = new BusinesstypeDO(); DeliverRequestMainDO mainDo = DeliverRequestMainConvert.INSTANCE.convert(createReqVO); String messageMain = validateDeliverRequestMainImport(mainDo, businesstypeDO); @@ -347,7 +344,7 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService boolean flag = true; for (DeliverRequestDetailDO detailDO : subDOList) { String messageDetail = validateIssueRequestDetailImport(detailDO, mainDo, businesstypeDO); - if (!messageMain.isEmpty() || messageDetail.isEmpty()) { + if (!messageMain.isEmpty() || !messageDetail.isEmpty()) { DeliverRequestImportErrorVO importErrorVO = DeliverRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); importErrorVO.setImportStatus("失败"); messageMain = messageMain + messageDetail; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainServiceImpl.java index 864cfbc0..f8bd6430 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainServiceImpl.java @@ -1,11 +1,12 @@ package com.win.module.wms.service.demandforecasting; import cn.hutool.core.collection.CollUtil; -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.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.demandforecasting.vo.*; @@ -16,11 +17,13 @@ import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingDeta import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.supplier.SupplierDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import com.win.module.wms.dal.mysql.demandforecasting.DemandforecastingDetailMapper; import com.win.module.wms.dal.mysql.demandforecasting.DemandforecastingMainMapper; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.purchase.PurchaseMainService; import com.win.module.wms.service.requestsetting.RequestsettingService; @@ -29,7 +32,6 @@ import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -68,24 +70,29 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe private SupplieritemService supplieritemService; @Resource private SerialNumberApi serialNumberApi; - + private TrendsApi trendsApi; @Override public Long createDemandforecastingMain(DemandforecastingMainCreateReqVO createReqVO) { - // 插入 - DemandforecastingMainDO demandforecastingMain = DemandforecastingMainConvert.INSTANCE.convert(createReqVO); - demandforecastingMainMapper.insert(demandforecastingMain); - // 返回 - return demandforecastingMain.getId(); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("Demandforecasting"); + DemandforecastingMainDO demandforecastingMainDO = validatorToCreate(createReqVO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(demandforecastingMainDO.getStatus())) { + } + trendsApi.createTrends(requestsettingDO.getId(), "Demandforecasting", "增加了要货预测", TrendsTypeEnum.CREATE); + return demandforecastingMainDO.getId(); } @Override public void updateDemandforecastingMain(DemandforecastingMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("Demandforecasting"); // 校验存在 validateDemandforecastingMainExists(updateReqVO.getId()); - // 更新 - DemandforecastingMainDO updateObj = DemandforecastingMainConvert.INSTANCE.convert(updateReqVO); - demandforecastingMainMapper.updateById(updateObj); + DemandforecastingMainDO demandforecastingMainDO = validatorToUpdate(updateReqVO); + if(RequestStatusEnum.HANDLING.getCode().equals(demandforecastingMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "Demandforecasting", "修改了要货预测", TrendsTypeEnum.CREATE); } @Override @@ -135,113 +142,173 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - String messageMain = ""; - //主表校验方法 - if (mode != null) { - //校验供应商基础信息 - try { - SupplierDO supplierDO = supplierService.selectSupplier(createReqVO.getSupplierCode()); - if (supplierDO == null) { - messageMain += "未查找到供应商" + createReqVO.getSupplierCode() + "信息" + ","; - } - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; + + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + DemandforecastingMainDO mainDo = DemandforecastingMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validateDemandforecastingMainImport(mainDo, businesstypeDO); + List subList = createReqVO.getSubList(); + List subDOList = DemandforecastingDetailConvert.INSTANCE.convertList03(subList); + // 是否有错误数据 + boolean flag = true; + for (DemandforecastingDetailDO detailDO : subDOList) { + String messageDetail = validateDemandforecastingDetailImport(detailDO, mainDo, businesstypeDO); + if (!messageMain.isEmpty() || messageDetail.isEmpty()) { + DemandforecastingImportErrorVO importErrorVO = DemandforecastingMainConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; } - List subList = createReqVO.getSubList(); - List subDOList = DemandforecastingDetailConvert.INSTANCE.convertList03(subList); - // 新增子表数据 - for (DemandforecastingDetailDO detailDO : subDOList) { - String messageDetail = ""; - //校验物品基础信息 - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); - if (itembasicDO == null) { - messageDetail += "物品" + detailDO.getItemCode() + "无效" + ","; - } else { - if (!detailDO.getUom().equals(itembasicDO.getUom())) { - messageDetail += "计量单位" + detailDO.getItemCode() + "错误," + "应该是" + itembasicDO.getUom() + ","; - } - } - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - //校验采购订单 - try { - PurchaseDetailDO purchaseDetailDO = purchaseMainService.selectPurchaseDetailDoExist(detailDO.getPoNumber(), createReqVO.getSupplierCode(), detailDO.getItemCode(), detailDO.getPoLine()); - if ((purchaseDetailDO.getShippedQty().add(detailDO.getPlanQty())).compareTo(purchaseDetailDO.getOrderQty()) == 1) { - messageDetail += "订单行" + detailDO.getPoLine() + "的已收货数量" + purchaseDetailDO.getReceivedQty() + "+计划数量" + detailDO.getPlanQty() + "大于订单数量" + purchaseDetailDO.getOrderQty() + ","; - } - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - // 校验供应商物品 - try { - SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(createReqVO.getSupplierCode(), detailDO.getItemCode()); - if (supplieritemDO == null) { - messageDetail += "未查找到物品" + detailDO.getItemCode() + "供应商" + createReqVO.getSupplierCode() + "信息" + ","; - } - - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - DemandforecastingDetailCreateReqVO demandforecastingDetailCreateReqVO = DemandforecastingDetailConvert.INSTANCE.convert1(detailDO); - DemandforecastingImportErrorVO importVO = DemandforecastingDetailConvert.INSTANCE.convert(createReqVO, demandforecastingDetailCreateReqVO); - //进行子表的错误统计 - //主表没有错误 写入库里 - if (!messageMain.equals("") || !messageDetail.equals("")) { - importVO.setImportStatus("失败"); - messageMain = messageMain + messageDetail; - importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); - errorList.add(importVO); - } else { - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_PREDICTION.getCode()); - createReqVO.setNumber(number); - } + } + //写入数据 + if (flag) { + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchasePrediction"); + if (businesstypeDO != null) { + mainDo.setBusinessType(businesstypeDO.getCode()); } - if (errorList.isEmpty()) { - // 判断如果不存在,在进行插入 - DemandforecastingMainDO demandforecastingMainDO = demandforecastingMainMapper.selectByNumber(createReqVO.getSupplierCode()); - if (demandforecastingMainDO == null && mode != 3) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchasePrediction"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - DemandforecastingMainDO createObj = DemandforecastingMainConvert.INSTANCE.convert(createReqVO); - //根据版本默认作废之前版本 - QueryWrapper demandforecastingMainDOQueryWrapper = new QueryWrapper<>(); - demandforecastingMainDOQueryWrapper.eq("supplier_code", createReqVO.getSupplierCode()); - List doList = demandforecastingMainMapper.selectList(demandforecastingMainDOQueryWrapper); - for (DemandforecastingMainDO mainDO : doList) { - mainDO.setAvailable("FALSE"); - } - demandforecastingMainMapper.insert(createObj); - demandforecastingDetailMapper.insertBatch(subDOList); - } else if (demandforecastingMainDO != null && mode != 2) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchasePrediction"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - DemandforecastingMainDO createObj = DemandforecastingMainConvert.INSTANCE.convert(createReqVO); - //根据版本默认作废之前版本 - QueryWrapper demandforecastingMainDOQueryWrapper = new QueryWrapper<>(); - demandforecastingMainDOQueryWrapper.eq("supplier_code", createReqVO.getSupplierCode()); - List doList = demandforecastingMainMapper.selectList(demandforecastingMainDOQueryWrapper); - for (DemandforecastingMainDO mainDO : doList) { - mainDO.setAvailable("FALSE"); - } - demandforecastingMainMapper.updateById(createObj); - demandforecastingDetailMapper.updateBatch(subDOList); - } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_PREDICTION.getCode()); + mainDo.setNumber(number); + demandforecastingMainMapper.insert(mainDo); + for (DemandforecastingDetailDO detailDO : subDOList) { + detailDO.setNumber(number); } + demandforecastingDetailMapper.insertBatch(subDOList); } }); - //错误不为空并非部分更新,手工回滚 - if (!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } return errorList; } + /** + * 主表校验导入,并赋值一些参数 + * + * @param mainDo + * @return + */ + private String validateDemandforecastingMainImport(DemandforecastingMainDO mainDo, BusinesstypeDO businesstypeDO) { + // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList + String messageMain = ""; + //主表的验证 + //校验供应商基础信息 + try { + SupplierDO supplierDO = supplierService.selectSupplier(mainDo.getSupplierCode()); + if (supplierDO == null) { + messageMain += "未查找到供应商" + mainDo.getSupplierCode() + "信息" + ","; + } + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + return messageMain; + } + + /** + * 子表校验导入,并赋值一些参数 + * + * @param detailDo + * @return + */ + private String validateDemandforecastingDetailImport(DemandforecastingDetailDO detailDo, DemandforecastingMainDO mainDo, BusinesstypeDO businesstypeDO) { + String messageDetail = ""; + //校验物品基础信息 + try { + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + if (itembasicDO == null) { + messageDetail += "物品" + detailDo.getItemCode() + "无效" + ","; + } else { + if (!detailDo.getUom().equals(itembasicDO.getUom())) { + messageDetail += "计量单位" + detailDo.getItemCode() + "错误," + "应该是" + itembasicDO.getUom() + ","; + } + } + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + //校验采购订单 + try { + PurchaseDetailDO purchaseDetailDO = purchaseMainService.selectPurchaseDetailDoExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine()); + if ((purchaseDetailDO.getShippedQty().add(detailDo.getPlanQty())).compareTo(purchaseDetailDO.getOrderQty()) == 1) { + messageDetail += "订单行" + detailDo.getPoLine() + "的已收货数量" + purchaseDetailDO.getReceivedQty() + "+计划数量" + detailDo.getPlanQty() + "大于订单数量" + purchaseDetailDO.getOrderQty() + ","; + } + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + // 校验供应商物品 + try { + SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode()); + if (supplieritemDO == null) { + messageDetail += "未查找到物品" + detailDo.getItemCode() + "供应商" + mainDo.getSupplierCode() + "信息" + ","; + } + + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + return messageDetail; + } + + + //新增方法(主和子) + private DemandforecastingMainDO validatorToCreate(DemandforecastingMainCreateReqVO createReqVO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("Demandforecasting"); + DemandforecastingMainDO demandforecastingMainDO = validateMainMethod(createReqVO,businesstypeDO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = DemandforecastingDetailConvert.INSTANCE.convertList03(subList); + for (DemandforecastingDetailDO demandforecastingDetailDO : subDOList) { + validateDetailMethod(demandforecastingMainDO,demandforecastingDetailDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_REQUEST.getCode()); + demandforecastingMainDO.setNumber(number); + demandforecastingMainMapper.insert(demandforecastingMainDO); + for (DemandforecastingDetailDO DemandforecastingDetailDO : subDOList) { + DemandforecastingDetailDO.setNumber(demandforecastingMainDO.getNumber()); + DemandforecastingDetailDO.setMasterId(demandforecastingMainDO.getId()); + } + demandforecastingDetailMapper.insertBatch(subDOList); + return demandforecastingMainDO; + } + + //修改方法(主和子) + private DemandforecastingMainDO validatorToUpdate(DemandforecastingMainUpdateReqVO updateReqVO) { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + DemandforecastingMainDO demandforecastingMainDO = validateMainMethod(updateReqVO,businesstypeDO); + //子表校验 + List subList = updateReqVO.getSubList(); + List subDOList = DemandforecastingDetailConvert.INSTANCE.convertList05(subList); + for (DemandforecastingDetailDO demandforecastingDetailDO : subDOList) { + validateDetailMethod(demandforecastingMainDO,demandforecastingDetailDO); + } + demandforecastingMainMapper.updateById(demandforecastingMainDO); + demandforecastingDetailMapper.updateBatch(subDOList); + return demandforecastingMainDO; + } + + //校验主表公共方法(适用于新增/修改) + private DemandforecastingMainDO validateMainMethod(DemandforecastingMainBaseVO baseVO, BusinesstypeDO businesstypeDO){ + DemandforecastingMainDO demandforecastingMainDO = DemandforecastingMainConvert.INSTANCE.convert(baseVO); + this.validatorSupplier(demandforecastingMainDO.getSupplierCode()); + return demandforecastingMainDO; + } + + //校验子表公共方法(适用于新增/修改) + private void validateDetailMethod(DemandforecastingMainDO demandforecastingMainDO,DemandforecastingDetailDO demandforecastingDetailDO) { + itembasicService.selectItembasic(demandforecastingDetailDO.getItemCode()); + purchaseMainService.selectPurchaseDetailDoExist(demandforecastingDetailDO.getPoNumber(), demandforecastingMainDO.getSupplierCode(), demandforecastingDetailDO.getItemCode(), demandforecastingDetailDO.getPoLine()); + supplieritemService.selectSupplierItemExist(demandforecastingMainDO.getSupplierCode(), demandforecastingDetailDO.getItemCode()); + } + + + //主表校验客户代码 + private void validatorSupplier(String supplierCode) { + supplierService.selectSupplier(supplierCode); + } + + //子表校验物品基础信息 + private void validatorItembasic(String itemCode) { + itembasicService.selectItembasic(itemCode); + } + + //子表校验物品基础信息 + private void validatorItembasic(String poNumber, String supplierCode, String itemCode, String poLine) { + purchaseMainService.selectPurchaseDetailDoExist(poNumber, supplierCode, itemCode, poLine); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectin/ExpectinService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectin/ExpectinService.java index 3fe7abbc..62a47e97 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectin/ExpectinService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectin/ExpectinService.java @@ -1,15 +1,14 @@ package com.win.module.wms.service.expectin; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.expectin.vo.ExpectinExportReqVO; import com.win.module.wms.controller.expectin.vo.ExpectinPageReqVO; -import com.win.module.wms.controller.expectin.vo.ExpectinUpdateReqVO; import com.win.module.wms.dal.dataobject.expectin.ExpectinDO; -import com.win.framework.common.pojo.PageResult; + +import javax.validation.Valid; +import java.util.List; /** * 预计入库存 Service 接口 @@ -20,25 +19,24 @@ public interface ExpectinService { /** * 创建预计入库存 - * - * @param createReqVO 创建信息 - * @return 编号 + * @param createReqVOList 预计入 + * @return */ - String createExpectin(@Valid ExpectinCreateReqVO createReqVO); + void createExpectin(@Valid List createReqVOList); /** - * 更新预计入库存 + * 删除预计入库存 * - * @param updateReqVO 更新信息 + * @param id 编号 */ - void updateExpectin(@Valid ExpectinUpdateReqVO updateReqVO); + Integer deleteExpectin(Long id); /** * 删除预计入库存 * - * @param id 编号 + * @param jobNumber 任务号 */ - void deleteExpectin(Long id); + Integer deleteExpectinByJobNumber(String jobNumber); /** * 获得预计入库存 @@ -48,14 +46,6 @@ public interface ExpectinService { */ ExpectinDO getExpectin(String id); - /** - * 获得预计入库存列表 - * - * @param ids 编号 - * @return 预计入库存列表 - */ - List getExpectinList(Collection ids); - /** * 获得预计入库存分页 * @@ -81,4 +71,10 @@ public interface ExpectinService { */ List getExpectinList(ExpectinExportReqVO exportReqVO); + /** + * 获得预计入库存列表, 用于 Excel 导出 + * @param conditions + * @return + */ + List getExpectinList(CustomConditions conditions); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectin/ExpectinServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectin/ExpectinServiceImpl.java index de1e270b..d3d6b479 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectin/ExpectinServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectin/ExpectinServiceImpl.java @@ -1,24 +1,24 @@ package com.win.module.wms.service.expectin; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.expectin.vo.ExpectinExportReqVO; import com.win.module.wms.controller.expectin.vo.ExpectinPageReqVO; -import com.win.module.wms.controller.expectin.vo.ExpectinUpdateReqVO; +import com.win.module.wms.convert.expectin.ExpectinConvert; +import com.win.module.wms.dal.dataobject.expectin.ExpectinDO; +import com.win.module.wms.dal.mysql.expectin.ExpectinMapper; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; -import java.util.*; - -import com.win.module.wms.dal.dataobject.expectin.ExpectinDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.expectin.ExpectinConvert; -import com.win.module.wms.dal.mysql.expectin.ExpectinMapper; +import javax.annotation.Resource; +import javax.validation.Validator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.*; +import static com.win.module.wms.enums.ErrorCodeConstants.EXPECTIN_NOT_EXISTS; /** * 预计入库存 Service 实现类 @@ -31,31 +31,28 @@ public class ExpectinServiceImpl implements ExpectinService { @Resource private ExpectinMapper expectinMapper; + @Resource + private Validator validator; @Override - public String createExpectin(ExpectinCreateReqVO createReqVO) { - // 插入 - ExpectinDO expectin = ExpectinConvert.INSTANCE.convert(createReqVO); - expectinMapper.insert(expectin); - // 返回 - return expectin.getId(); + public void createExpectin(List createReqVOList) { + List expectinDOList = ExpectinConvert.INSTANCE.convertList03(createReqVOList); + expectinMapper.insertBatch(expectinDOList); } @Override - public void updateExpectin(ExpectinUpdateReqVO updateReqVO) { + public Integer deleteExpectin(Long id) { // 校验存在 - validateExpectinExists(updateReqVO.getId()); - // 更新 - ExpectinDO updateObj = ExpectinConvert.INSTANCE.convert(updateReqVO); - expectinMapper.updateById(updateObj); + validateExpectinExists(id); + // 删除 + return expectinMapper.deleteById(id); } @Override - public void deleteExpectin(Long id) { - // 校验存在 - validateExpectinExists(id); - // 删除 - expectinMapper.deleteById(id); + public Integer deleteExpectinByJobNumber(String jobNumber) { + Map map = new HashMap<>(); + map.put("job_number", jobNumber); + return expectinMapper.deleteByMap(map); } private void validateExpectinExists(Long id) { @@ -69,11 +66,6 @@ public class ExpectinServiceImpl implements ExpectinService { return expectinMapper.selectById(id); } - @Override - public List getExpectinList(Collection ids) { - return expectinMapper.selectBatchIds(ids); - } - @Override public PageResult getExpectinPage(ExpectinPageReqVO pageReqVO) { return expectinMapper.selectPage(pageReqVO); @@ -89,4 +81,9 @@ public class ExpectinServiceImpl implements ExpectinService { return expectinMapper.selectList(exportReqVO); } + @Override + public List getExpectinList(CustomConditions conditions) { + return expectinMapper.selectSeniorList(conditions); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutService.java index 526740f2..0453b9ca 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutService.java @@ -1,15 +1,14 @@ package com.win.module.wms.service.expectout; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutExportReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutPageReqVO; -import com.win.module.wms.controller.expectout.vo.ExpectoutUpdateReqVO; import com.win.module.wms.dal.dataobject.expectout.ExpectoutDO; -import com.win.framework.common.pojo.PageResult; + +import javax.validation.Valid; +import java.util.List; /** * 预计出库存 Service 接口 @@ -21,24 +20,24 @@ public interface ExpectoutService { /** * 创建预计出库存 * - * @param createReqVO 创建信息 + * @param createReqVOList 预计出 * @return 编号 */ - String createExpectout(@Valid ExpectoutCreateReqVO createReqVO); + void createExpectout(@Valid List createReqVOList); /** - * 更新预计出库存 + * 删除预计出库存 * - * @param updateReqVO 更新信息 + * @param id 编号 */ - void updateExpectout(@Valid ExpectoutUpdateReqVO updateReqVO); + int deleteExpectout(Long id); /** * 删除预计出库存 * - * @param id 编号 + * @param jobNumber 任务号 */ - void deleteExpectout(Long id); + int deleteExpectoutByJobNumber(String jobNumber); /** * 获得预计出库存 @@ -48,14 +47,6 @@ public interface ExpectoutService { */ ExpectoutDO getExpectout(String id); - /** - * 获得预计出库存列表 - * - * @param ids 编号 - * @return 预计出库存列表 - */ - List getExpectoutList(Collection ids); - /** * 获得预计出库存分页 * @@ -124,4 +115,10 @@ public interface ExpectoutService { */ public List selectUniqeIdNew(String packingnumber, String locationcode, List inventorystatus); + /** + * 获得预计入库存列表, 用于 Excel 导出 + * @param conditions + * @return + */ + List getExpectoutList(CustomConditions conditions); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutServiceImpl.java index 6e69b849..ecf541df 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/expectout/ExpectoutServiceImpl.java @@ -2,25 +2,25 @@ package com.win.module.wms.service.expectout; 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.expectout.vo.ExpectoutCreateReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutExportReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutPageReqVO; -import com.win.module.wms.controller.expectout.vo.ExpectoutUpdateReqVO; +import com.win.module.wms.convert.expectout.ExpectoutConvert; +import com.win.module.wms.dal.dataobject.expectout.ExpectoutDO; +import com.win.module.wms.dal.mysql.expectout.ExpectoutMapper; import com.win.module.wms.service.rule.RuleService; import org.springframework.stereotype.Service; -import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; -import java.util.*; - -import com.win.module.wms.dal.dataobject.expectout.ExpectoutDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.expectout.ExpectoutConvert; -import com.win.module.wms.dal.mysql.expectout.ExpectoutMapper; +import javax.annotation.Resource; +import javax.validation.Validator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.*; +import static com.win.module.wms.enums.ErrorCodeConstants.EXPECTOUT_NOT_EXISTS; /** * 预计出库存 Service 实现类 @@ -36,31 +36,28 @@ public class ExpectoutServiceImpl implements ExpectoutService { @Resource private RuleService ruleService; + @Resource + private Validator validator; @Override - public String createExpectout(ExpectoutCreateReqVO createReqVO) { - // 插入 - ExpectoutDO expectout = ExpectoutConvert.INSTANCE.convert(createReqVO); - expectoutMapper.insert(expectout); - // 返回 - return expectout.getId(); + public void createExpectout(List createReqVOList) { + List expectoutDOList = ExpectoutConvert.INSTANCE.convertList03(createReqVOList); + expectoutMapper.insertBatch(expectoutDOList); } @Override - public void updateExpectout(ExpectoutUpdateReqVO updateReqVO) { + public int deleteExpectout(Long id) { // 校验存在 - validateExpectoutExists(updateReqVO.getId()); - // 更新 - ExpectoutDO updateObj = ExpectoutConvert.INSTANCE.convert(updateReqVO); - expectoutMapper.updateById(updateObj); + validateExpectoutExists(id); + // 删除 + return expectoutMapper.deleteById(id); } @Override - public void deleteExpectout(Long id) { - // 校验存在 - validateExpectoutExists(id); - // 删除 - expectoutMapper.deleteById(id); + public int deleteExpectoutByJobNumber(String jobNumber) { + Map map = new HashMap<>(); + map.put("job_number", jobNumber); + return expectoutMapper.deleteByMap(map); } private void validateExpectoutExists(Long id) { @@ -74,11 +71,6 @@ public class ExpectoutServiceImpl implements ExpectoutService { return expectoutMapper.selectById(id); } - @Override - public List getExpectoutList(Collection ids) { - return expectoutMapper.selectBatchIds(ids); - } - @Override public PageResult getExpectoutPage(ExpectoutPageReqVO pageReqVO) { return expectoutMapper.selectPage(pageReqVO); @@ -97,7 +89,7 @@ public class ExpectoutServiceImpl implements ExpectoutService { //按数量查找 BY_BATCH @Override public List selectNumberNew(String itemcode, List inventorystatus, String locationcode) { - QueryWrapper queryWrapper = new QueryWrapper(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("item_code", itemcode); queryWrapper.eq("inventory_status", inventorystatus); queryWrapper.eq("location_code", locationcode); @@ -112,7 +104,7 @@ public class ExpectoutServiceImpl implements ExpectoutService { //按批次查询 BY_BATCH @Override public List selectBatchNew(String itemcode, String batch, List inventorystatus, String locationcode) { - QueryWrapper queryWrapper = new QueryWrapper(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("item_code", itemcode); queryWrapper.eq("batch", batch); queryWrapper.eq("inventory_status", inventorystatus); @@ -128,7 +120,7 @@ public class ExpectoutServiceImpl implements ExpectoutService { //按包裝 BY_PACKAGING @Override public List selectPackingNew(String itemcode, String packingnumber, String batch, List inventorystatus, String locationcode) { - QueryWrapper queryWrapper = new QueryWrapper(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("item_code", itemcode); queryWrapper.eq("batch", batch); queryWrapper.eq("packing_number", packingnumber); @@ -145,7 +137,7 @@ public class ExpectoutServiceImpl implements ExpectoutService { //按唯一码查询 BY_UNIQUE_ID @Override public List selectUniqeIdNew(String packingnumber, String locationcode, List inventorystatus) { - QueryWrapper queryWrapper = new QueryWrapper(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("packing_number", packingnumber); queryWrapper.eq("inventory_status", inventorystatus); queryWrapper.eq("location_code", locationcode); @@ -156,4 +148,10 @@ public class ExpectoutServiceImpl implements ExpectoutService { return null; } } + + @Override + public List getExpectoutList(CustomConditions conditions) { + return expectoutMapper.selectSeniorList(conditions); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java index 8976d42c..914724c5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java @@ -1,15 +1,15 @@ package com.win.module.wms.service.inspectRequest; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainCreateReqVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainExportReqVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainPageReqVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.inspectRequest.vo.*; +import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; + +import javax.validation.Valid; +import java.math.BigDecimal; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; /** * 检验申请主 Service 接口 @@ -31,14 +31,14 @@ public interface InspectRequestMainService { * * @param updateReqVO 更新信息 */ - void updateInspectRequestMain(@Valid InspectRequestMainUpdateReqVO updateReqVO); + Integer updateInspectRequestMain(@Valid InspectRequestMainUpdateReqVO updateReqVO); /** * 删除检验申请主 * * @param id 编号 */ - void deleteInspectRequestMain(Long id); + Integer deleteInspectRequestMain(Long id); /** * 获得检验申请主 @@ -80,4 +80,28 @@ public interface InspectRequestMainService { */ List getInspectRequestMainList(InspectRequestMainExportReqVO exportReqVO); + /** + * @author chenfang + * @param datas 主子表数据 + * @param mode 导入模式 1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return + */ + List importInspectRequestList(List datas, Integer mode, boolean updatePart); + + /** + * 获取规则 + * @param supplierCode + * @param itemCode + * @return + */ + HashMap selectRule(String supplierCode, String itemCode); + + /** + * 查询检验物品数量 + * @param sampleQty + * @param ruleAll + * @return + */ + BigDecimal selectInspectType(BigDecimal sampleQty, HashMap ruleAll); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java index ee28b26f..b7a3b091 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java @@ -1,24 +1,56 @@ package com.win.module.wms.service.inspectRequest; -import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainCreateReqVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainExportReqVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainPageReqVO; -import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainUpdateReqVO; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import java.util.*; - -import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.exceptions.UtilException; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; - +import com.win.framework.common.util.validation.ValidationUtils; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; +import com.win.module.system.api.dict.DictDataApi; +import com.win.module.system.api.dict.dto.DictDataRespDTO; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.inspectRequest.vo.*; +import com.win.module.wms.controller.rule.vo.RuleRespVO; +import com.win.module.wms.convert.inspectRequest.InspectRequestDetailConvert; import com.win.module.wms.convert.inspectRequest.InspectRequestMainConvert; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestDetailDO; +import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestDetailMapper; import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestMainMapper; +import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordMainService; +import com.win.module.wms.service.requestsetting.RequestsettingService; +import com.win.module.wms.service.rule.RuleService; +import com.win.module.wms.util.JobUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import javax.validation.Validator; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.*; +import static com.win.module.wms.enums.ErrorCodeConstants.INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY; +import static com.win.module.wms.enums.ErrorCodeConstants.INSPECT_REQUEST_MAIN_NOT_EXISTS; /** * 检验申请主 Service 实现类 @@ -31,37 +63,75 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService @Resource private InspectRequestMainMapper inspectRequestMainMapper; + @Resource + private InspectRequestDetailMapper inspectRequestDetailMapper; + @Resource + private PurchasereceiptRecordMainService purchasereceiptRecordMainService; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private DictDataApi dictDataApi; + @Resource + private ItembasicService itembasicService; + @Resource + private Validator validator; + @Resource + private LocationService locationService; + @Resource + private JobUtils jobUtils; + @Resource + private RuleService ruleService; + @Resource + private RequestsettingService requestsettingService; + @Resource + private TrendsApi trendsApi; @Override + @Transactional public Long createInspectRequestMain(InspectRequestMainCreateReqVO createReqVO) { - // 插入 - InspectRequestMainDO inspectRequestMain = InspectRequestMainConvert.INSTANCE.convert(createReqVO); - inspectRequestMainMapper.insert(inspectRequestMain); - // 返回 - return inspectRequestMain.getId(); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); + InspectRequestMainDO mainDO = this.validatorMain(createReqVO, businesstypeDO, requestsettingDO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList); + for (InspectRequestDetailDO detailDO : subDOList) { + this.validatorDetail(detailDO, mainDO, businesstypeDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode()); + mainDO.setNumber(number); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + mainDO.setStatus(requestStatusState.getState().getCode()); + inspectRequestMainMapper.insert(mainDO); + inspectRequestDetailMapper.insertBatch(subDOList); + //调用自动执行方法 + if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, subDOList); + } + trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE); + return mainDO.getId(); } @Override - public void updateInspectRequestMain(InspectRequestMainUpdateReqVO updateReqVO) { - // 校验存在 + @Transactional + public Integer updateInspectRequestMain(InspectRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); validateInspectRequestMainExists(updateReqVO.getId()); - // 更新 - InspectRequestMainDO updateObj = InspectRequestMainConvert.INSTANCE.convert(updateReqVO); - inspectRequestMainMapper.updateById(updateObj); + InspectRequestMainDO mainDO = this.validatorMain(updateReqVO, businesstypeDO, requestsettingDO); + trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE); + // 更新主表 + return inspectRequestMainMapper.updateById(mainDO); } @Override - public void deleteInspectRequestMain(Long id) { + @Transactional + public Integer deleteInspectRequestMain(Long id) { // 校验存在 validateInspectRequestMainExists(id); // 删除 - inspectRequestMainMapper.deleteById(id); - } - - private void validateInspectRequestMainExists(Long id) { - if (inspectRequestMainMapper.selectById(id) == null) { - throw exception(INSPECT_REQUEST_MAIN_NOT_EXISTS); - } + return inspectRequestMainMapper.deleteById(id); } @Override @@ -78,13 +148,333 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService public PageResult getInspectRequestMainPage(InspectRequestMainPageReqVO pageReqVO) { return inspectRequestMainMapper.selectPage(pageReqVO); } + @Override public PageResult getInspectRequestMainSenior(CustomConditions conditions) { return inspectRequestMainMapper.selectSenior(conditions); } + @Override public List getInspectRequestMainList(InspectRequestMainExportReqVO exportReqVO) { return inspectRequestMainMapper.selectList(exportReqVO); } + @Override + @Transactional + public List importInspectRequestList(List datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY); + } + List errorList = new ArrayList<>(); + datas.forEach(createReqVO -> { + //主表校验方法 + InspectRequestMainDO mainDO = InspectRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = this.validatorInspectRequestMainImport(mainDO); + List subList = createReqVO.getSubList(); + List subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); + for (InspectRequestDetailDO detailDO : subDOList) { + String messageDetail = this.validatorInspectRequestDetailImport(detailDO, mainDO, businesstypeDO); + InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = InspectRequestDetailConvert.INSTANCE.convert1(detailDO); + InspectRequestImportErrorVO importVO = InspectRequestDetailConvert.INSTANCE.convert(createReqVO, inspectRequestDetailCreateReqVO); + if (!messageMain.isEmpty() || !messageDetail.isEmpty()) { + importVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importVO); + } + } + mainDO.setBusinessType(businesstypeDO.getCode()); + mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); + mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + mainDO.setStatus(requestStatusState.getState().getCode()); + if (errorList.isEmpty()) { + InspectRequestMainDO existInspectRequestMainDO = inspectRequestMainMapper.selectPurchaseReceiptNumber(createReqVO.getPurchaseReceiptRecordNumber()); + if (existInspectRequestMainDO == null && mode != 3) { + String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode()); + mainDO.setNumber(number); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, subDOList); + } + inspectRequestMainMapper.insert(mainDO); + for(InspectRequestDetailDO inspectRequestDetailDO : subDOList) { + inspectRequestDetailDO.setMasterId(mainDO.getId()); + } + inspectRequestDetailMapper.insertBatch(subDOList); + } else if (existInspectRequestMainDO != null && mode != 2) { + inspectRequestMainMapper.updateById(mainDO); + inspectRequestDetailMapper.updateBatch(subDOList); + } + } + }); + //错误不为空并非部分更新,手工回滚 + if (!errorList.isEmpty() && !updatePart) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + return errorList; + } + + /** + * 生成收货检验任务,不要改动事务传播方式,否则会有事务问题 + * @param mainDO 收货检验主 + * @param detailDOList 收货检验子 + */ + private void generateJob(InspectRequestMainDO mainDO, List detailDOList) { + + } + + //判断导入单位是否正确 + private void ifUomSuccess(String itemUom, String uom) { + DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(uom); + if (dictDataRespDTO != null) { + if (!itemUom.equals(dictDataRespDTO.getLabel())) { + throw new UtilException("提示单位" + uom + "错误,应该是" + itemUom); + } + } + } + + //查询检验类型 + @Override + public BigDecimal selectInspectType(BigDecimal sampleQty, HashMap ruleAll) { + String inspectType = ruleAll.get("InspectType"); + if ("FULL".equals(inspectType)) { + return sampleQty; + } else if ("SAMPLING".equals(inspectType)) { + return selectSampleMethod(ruleAll, sampleQty); + } else { + return BigDecimal.ZERO; + } + } + + //查询抽检方式 计算抽检数量并返回 + private BigDecimal selectSampleMethod(HashMap ruleAll, BigDecimal sampleQty) { + String sampleMethod = ruleAll.get("SampleMethod"); + JSONArray aplList = JSONUtil.parseArray(ruleAll.get("AplList")); + //获取最大校验规则范围 + BigDecimal maxFloorQty = BigDecimal.ZERO; + BigDecimal maxCeilingQty = BigDecimal.ZERO; + BigDecimal maxSampleValue = BigDecimal.ZERO; + BigDecimal result = BigDecimal.ZERO; + for (Object o : aplList) { + JSONObject parse = JSONUtil.parseObj(o); + BigDecimal floorQty = new BigDecimal(String.valueOf(parse.get("FloorQty"))); + BigDecimal ceilingQty = new BigDecimal(String.valueOf(parse.get("CeilingQty"))); + BigDecimal sampleValue = new BigDecimal(String.valueOf(parse.get("SampleValue"))); + if (maxFloorQty.compareTo(floorQty) < 0) { + maxFloorQty = floorQty; + } + if (maxCeilingQty.compareTo(ceilingQty) < 0) { + maxCeilingQty = ceilingQty; + } + if (maxSampleValue.compareTo(sampleValue) < 0) { + maxSampleValue = sampleValue; + } + //根据校验规则计算出抽样数量 + if (sampleQty != null && sampleQty.compareTo(BigDecimal.ZERO) != 0) { + if(floorQty.compareTo(sampleQty) <= 0 && sampleQty.compareTo(ceilingQty) <= 0) { + if ("QTY".equals(sampleMethod)) { + result = sampleValue; + } else if ("PERCENT".equals(sampleMethod)) { + result = sampleQty.multiply(sampleValue).multiply(new BigDecimal("0.01")); + } + } + } else { + throw new UtilException("当前到货数量为空,不能进行校验"); + } + } + if (maxCeilingQty.compareTo(sampleQty) < 0) { + throw new UtilException("当前到货数量已超出校验规则范围"); + } else { + return result; + } + } + + //获取策略里的参数进行字段对应 + public HashMap selectRule(String supplierCode, String itemCode) { + RuleRespVO inspect = ruleService.inspect(supplierCode, itemCode); + if (inspect == null) { + throw new UtilException("未找到该策略"); + } + JSONArray configuration = JSONUtil.parseArray(inspect.getConfiguration()); + HashMap mapRule = new HashMap<>(); + for (Object o : configuration) { + JSONObject entries = JSONUtil.parseObj(o); + mapRule.put(entries.get("ParamCode").toString(), entries.get("Value").toString()); + } + String aqlList = mapRule.get("AqlList"); + if (aqlList != null) { + JSONArray objects = JSONUtil.parseArray(aqlList); + for (int i = 0; i < objects.size(); i++) { + JSONObject entries = JSONUtil.parseObj(objects.getObj(i)); + mapRule.put("FloorQty" + (i + 1), entries.get("FloorQty").toString()); + mapRule.put("CeilingQty" + (i + 1), entries.get("CeilingQty").toString()); + mapRule.put("SampleValue" + (i + 1), entries.get("SampleValue").toString()); + } + } + return mapRule; + } + + private PurchasereceiptRecordDetailDO validatorPurchasereceiptExist(String purchaseReceiptRecordNumber, String poNumber, String poLine, String itemCode) { + return purchasereceiptRecordMainService.selectPurchasereceiptExist(poNumber, null, purchaseReceiptRecordNumber, poLine, itemCode); + } + + private void validatorRule(InspectRequestMainDO mainDO) { + HashMap rule = selectRule(null, mainDO.getItemCode()); + mainDO.setSampleQty(selectInspectType(mainDO.getReceiveQty(), rule)); + } + + private void validateInspectRequestMainExists(Long id) { + if (inspectRequestMainMapper.selectById(id) == null) { + throw exception(INSPECT_REQUEST_MAIN_NOT_EXISTS); + } + } + + //校验主表公共方法(适用于新增/修改) + private InspectRequestMainDO validatorMain(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { + InspectRequestMainDO mainDo = InspectRequestMainConvert.INSTANCE.convert(baseVO); + PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = this.validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode()); + mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty()); + this.validatorRule(mainDo); + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + return mainDo; + } + + //校验子表公共方法(适用于新增/修改) + private void validatorDetail(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); + validatorIfInType(itembasicDO.getType(), businesstypeDO); + validatorLocation(detailDo.getFromLocationCode()); + validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); + validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO); + validatorLocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus()); + } + + /** + * 校验主表导入,并赋值一些参数 + * + * @param mainDo + * @return + */ + private String validatorInspectRequestMainImport(InspectRequestMainDO mainDo) { + StringBuilder message = new StringBuilder(); + try { + PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode()); + mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + validatorRule(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 validatorInspectRequestDetailImport(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + ItembasicDO itembasicDO = null; + try { + itembasicDO = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + validatorIfInType(itembasicDO.getType(), businesstypeDO); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + this.validatorLocation(detailDo.getFromLocationCode()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + validatorLocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ValidationUtils.validate(validator, detailDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + private ItembasicDO validatorItembasic(String itemCode) { + return itembasicService.selectItembasic(itemCode); + } + + private void validatorLocation(String fromLocationCode) { + locationService.selectLocation(fromLocationCode); + } + + private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO) { + jobUtils.ifInType(itemType, businesstypeDO); + } + + private void validatorIfOutInventoryStatuses(String inventoryStatus, BusinesstypeDO businesstypeDO) { + jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO); + } + + private void validatorIfInFromLocationType(String fromLocationCode, BusinesstypeDO businesstypeDO) { + jobUtils.ifInFromLocationType(fromLocationCode, businesstypeDO); + } + + private void validatorLocationReturnManagementAccuracy(String itemCode, String packingNumber, String batch, String fromLocationCode, String inventoryStatu) { + ArrayList inventoryStatus = new ArrayList<>(); + inventoryStatus.add(inventoryStatu); + jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber, batch, fromLocationCode, inventoryStatus); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java index 36db240b..21d770b9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java @@ -5,6 +5,8 @@ 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.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.inventorychangeRequest.vo.*; @@ -20,6 +22,7 @@ import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.mysql.inventorychangeRequest.InventorychangeRequestDetailMapper; import com.win.module.wms.dal.mysql.inventorychangeRequest.InventorychangeRequestMainMapper; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.location.LocationService; @@ -27,7 +30,6 @@ import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -36,8 +38,7 @@ import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.INVENTORYCHANGE_REQUEST_MAIN_NOT_EXISTS; -import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 库存修改申请主 Service 实现类 @@ -64,25 +65,33 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq private LocationService locationService; @Resource private SerialNumberApi serialNumberApi; - + @Resource + private TrendsApi trendsApi; @Resource private RequestsettingService requestsettingService; + @Override public Long createInventorychangeRequestMain(InventorychangeRequestMainCreateReqVO createReqVO) { - // 插入 - InventorychangeRequestMainDO inventorychangeRequestMain = InventorychangeRequestMainConvert.INSTANCE.convert(createReqVO); - inventorychangeRequestMainMapper.insert(inventorychangeRequestMain); - // 返回 - return inventorychangeRequestMain.getId(); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventorychangeRequest"); + InventorychangeRequestMainDO inventorychangeRequestMainDO = validatorToCreate(createReqVO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(inventorychangeRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "DeliverPlan", "增加了发货计划", TrendsTypeEnum.CREATE); + return inventorychangeRequestMainDO.getId(); } @Override public void updateInventorychangeRequestMain(InventorychangeRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverPlan"); // 校验存在 validateInventorychangeRequestMainExists(updateReqVO.getId()); - // 更新 - InventorychangeRequestMainDO updateObj = InventorychangeRequestMainConvert.INSTANCE.convert(updateReqVO); - inventorychangeRequestMainMapper.updateById(updateObj); + InventorychangeRequestMainDO inventorychangeRequestMainDO = validatorToUpdate(updateReqVO); + if(RequestStatusEnum.HANDLING.getCode().equals(inventorychangeRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "DeliverPlan", "修改了发货计划", TrendsTypeEnum.CREATE); } @Override @@ -131,312 +140,448 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList - String messageMain = ""; - //主表的验证 - - - //子表的验证 + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + InventorychangeRequestMainDO mainDo = InventorychangeRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validateInventorychangeRequestMainImport(mainDo, businesstypeDO); List subList = createReqVO.getSubList(); List subDOList = InventorychangeRequestDetailConvert.INSTANCE.convertList03(subList); - for (InventorychangeRequestDetailDO purchaseDetailDO : subDOList) { - String messageDetail = ""; - //校验来源库位基础信息 - try { - LocationDO locationDO = locationService.selectLocation(purchaseDetailDO.getLocationCode()); - if (locationDO != null) { - purchaseDetailDO.setLocationCode(locationDO.getCode()); - purchaseDetailDO.setAreaCode(locationDO.getAreaCode()); - purchaseDetailDO.setLocationGroupCode(locationDO.getLocationGroupCode()); - } - } catch (ServiceException ex) { - messageMain += ex.getMessage() + ","; + // 是否有错误数据 + boolean flag = true; + for (InventorychangeRequestDetailDO detailDO : subDOList) { + String messageDetail = validateInventorychangeRequestDetailImport(detailDO, mainDo, businesstypeDO); + if (!messageMain.isEmpty() || messageDetail.isEmpty()) { + InventorychangeRequestMainImportErrorVO importErrorVO = InventorychangeRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; } - // 校验物品基础信息 - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(purchaseDetailDO.getItemCode()); - if (itembasicDO.getUom() != purchaseDetailDO.getUom()) { - messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ","; - } else { - purchaseDetailDO.setItemDesc1(itembasicDO.getDesc1()); - purchaseDetailDO.setItemDesc2(itembasicDO.getDesc2()); - purchaseDetailDO.setItemName(itembasicDO.getName()); - purchaseDetailDO.setProjectCode(itembasicDO.getProject()); - } - purchaseDetailDO.setProjectCode(itembasicDO.getCode()); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; + } + //写入数据 + if (flag) { + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryChangeRequest"); + if (businesstypeDO != null) { + mainDo.setBusinessType(businesstypeDO.getCode()); } - // 校验业务类型 - try { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOk"); - jobUtils.selectItembasicExist(purchaseDetailDO.getItemCode(), businesstypeDO); - jobUtils.ifOutInventoryStatuses(purchaseDetailDO.getFromInventoryStatus(), businesstypeDO); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; + String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_CHANGE_REQUEST.getCode()); + mainDo.setNumber(number); + inventorychangeRequestMainMapper.insert(mainDo); + for (InventorychangeRequestDetailDO detailDO : subDOList) { + detailDO.setNumber(mainDo.getNumber()); + detailDO.setMasterId(mainDo.getId()); } + inventorychangeRequestDetailMapper.insertBatch(subDOList); + } + }); + return errorList; + } - //隔离转合格申请 - if ("Hold".equals(purchaseDetailDO.getFromInventoryStatus())) { - // 校验库存余额是否存在 - try { - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add("Hold"); - List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(purchaseDetailDO.getItemCode(), purchaseDetailDO.getFromPackingNumber() - , purchaseDetailDO.getFromBatch(), purchaseDetailDO.getLocationCode(), inventoryStatus); - if (balanceDOList != null) { - BalanceDO balanceDO = balanceDOList.get(0); - purchaseDetailDO.setFromQty(balanceDO.getQty()); - purchaseDetailDO.setToQty(balanceDO.getQty()); - purchaseDetailDO.setQty(balanceDO.getQty()); - - purchaseDetailDO.setToArrivdAte(balanceDO.getArriveDate()); - purchaseDetailDO.setFromProduceDate(balanceDO.getProduceDate()); - purchaseDetailDO.setFromExpireDate(balanceDO.getExpireDate()); - purchaseDetailDO.setToArrivdAte(balanceDO.getArriveDate()); - purchaseDetailDO.setToProduceDate(balanceDO.getProduceDate()); - purchaseDetailDO.setToExpireDate(balanceDO.getExpireDate()); - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - purchaseDetailDO.setToInventoryStatus("OK"); - String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode()); - createReqVO.setNumber(number); - - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRequest"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("HoldToScrapRequest"); - if (requestsettingDO != null) { - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - } + /** + * 主表校验导入,并赋值一些参数 + * + * @param mainDo + * @return + */ + private String validateInventorychangeRequestMainImport(InventorychangeRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList + String messageMain = ""; + //主表的验证 + return messageMain; + } - //合格转隔离申请 - if ("OK".equals(purchaseDetailDO.getFromInventoryStatus())) { - // 校验库存余额是否存在 - try { - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add("OK"); - List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(purchaseDetailDO.getItemCode(), purchaseDetailDO.getFromPackingNumber() - , purchaseDetailDO.getFromBatch(), purchaseDetailDO.getLocationCode(), inventoryStatus); - if (balanceDOList != null) { - BalanceDO balanceDO = balanceDOList.get(0); - purchaseDetailDO.setFromQty(balanceDO.getQty()); - purchaseDetailDO.setToQty(balanceDO.getQty()); - purchaseDetailDO.setQty(balanceDO.getQty()); - - purchaseDetailDO.setToArrivdAte(balanceDO.getArriveDate()); - purchaseDetailDO.setFromProduceDate(balanceDO.getProduceDate()); - purchaseDetailDO.setFromExpireDate(balanceDO.getExpireDate()); - purchaseDetailDO.setToArrivdAte(balanceDO.getArriveDate()); - purchaseDetailDO.setToProduceDate(balanceDO.getProduceDate()); - purchaseDetailDO.setToExpireDate(balanceDO.getExpireDate()); - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - purchaseDetailDO.setToInventoryStatus("Hold"); - String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_REQUEST.getCode()); - createReqVO.setNumber(number); - - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRequest"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToHoldRequest"); - if (requestsettingDO != null) { - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - - purchaseDetailDO.setToPackingNumber(null); - purchaseDetailDO.setToBatch(null); - purchaseDetailDO.setToContainerNumber(null); - } + /** + * 子表校验导入,并赋值一些参数 + * + * @param detailDo + * @return + */ + private String validateInventorychangeRequestDetailImport(InventorychangeRequestDetailDO detailDo, InventorychangeRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + String messageDetail = ""; + //校验来源库位基础信息 + try { + LocationDO locationDO = locationService.selectLocation(detailDo.getLocationCode()); + if (locationDO != null) { + detailDo.setLocationCode(locationDO.getCode()); + detailDo.setAreaCode(locationDO.getAreaCode()); + detailDo.setLocationGroupCode(locationDO.getLocationGroupCode()); + } + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + // 校验物品基础信息 + try { + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + if (itembasicDO.getUom() != detailDo.getUom()) { + messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ","; + } else { + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + } + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + // 校验业务类型 + try { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOk"); + jobUtils.selectItembasicExist(detailDo.getItemCode(), businesstypeDO); + jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } - //隔离转报废申请 - if ("Hold".equals(purchaseDetailDO.getFromInventoryStatus())) { - // 校验库存余额是否存在 - try { - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add("Hold"); - List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(purchaseDetailDO.getItemCode(), purchaseDetailDO.getFromPackingNumber() - , purchaseDetailDO.getFromBatch(), purchaseDetailDO.getLocationCode(), inventoryStatus); - if (balanceDOList != null) { - BalanceDO balanceDO = balanceDOList.get(0); - purchaseDetailDO.setFromQty(balanceDO.getQty()); - purchaseDetailDO.setToQty(balanceDO.getQty()); - purchaseDetailDO.setQty(balanceDO.getQty()); - - purchaseDetailDO.setToArrivdAte(balanceDO.getArriveDate()); - purchaseDetailDO.setFromProduceDate(balanceDO.getProduceDate()); - purchaseDetailDO.setFromExpireDate(balanceDO.getExpireDate()); - purchaseDetailDO.setToArrivdAte(balanceDO.getArriveDate()); - purchaseDetailDO.setToProduceDate(balanceDO.getProduceDate()); - purchaseDetailDO.setToExpireDate(balanceDO.getExpireDate()); - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - purchaseDetailDO.setToInventoryStatus("Scrap"); - String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_REQUEST.getCode()); - createReqVO.setNumber(number); - - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRequest"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToHoldRequest"); - if (requestsettingDO != null) { - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - - purchaseDetailDO.setFromPackingNumber(null); - purchaseDetailDO.setFromBatch(null); - purchaseDetailDO.setFromContainerNumber(null); + //隔离转合格申请 + if ("Hold".equals(detailDo.getFromInventoryStatus())) { + // 校验库存余额是否存在 + try { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("Hold"); + List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber() + , detailDo.getFromBatch(), detailDo.getLocationCode(), inventoryStatus); + if (balanceDOList != null) { + BalanceDO balanceDO = balanceDOList.get(0); + detailDo.setFromQty(balanceDO.getQty()); + detailDo.setToQty(balanceDO.getQty()); + detailDo.setQty(balanceDO.getQty()); + + detailDo.setToArrivdAte(balanceDO.getArriveDate()); + detailDo.setFromProduceDate(balanceDO.getProduceDate()); + detailDo.setFromExpireDate(balanceDO.getExpireDate()); + detailDo.setToArrivdAte(balanceDO.getArriveDate()); + detailDo.setToProduceDate(balanceDO.getProduceDate()); + detailDo.setToExpireDate(balanceDO.getExpireDate()); } + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + detailDo.setToInventoryStatus("OK"); + String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode()); + detailDo.setNumber(number); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRequest"); + if (businesstypeDO != null) { + mainDo.setBusinessType(businesstypeDO.getCode()); + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("HoldToScrapRequest"); + if (requestsettingDO != null) { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + } - //报废转隔离申请 - if ("Scrap".equals(purchaseDetailDO.getFromInventoryStatus())) { - // 校验库存余额是否存在 - try { - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add("Scrap"); - List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(purchaseDetailDO.getItemCode(), purchaseDetailDO.getFromPackingNumber() - , purchaseDetailDO.getFromBatch(), purchaseDetailDO.getLocationCode(), inventoryStatus); - if (balanceDOList != null) { - BalanceDO balanceDO = balanceDOList.get(0); - purchaseDetailDO.setFromQty(balanceDO.getQty()); - purchaseDetailDO.setToQty(balanceDO.getQty()); - purchaseDetailDO.setQty(balanceDO.getQty()); - - purchaseDetailDO.setToArrivdAte(balanceDO.getArriveDate()); - purchaseDetailDO.setFromProduceDate(balanceDO.getProduceDate()); - purchaseDetailDO.setFromExpireDate(balanceDO.getExpireDate()); - purchaseDetailDO.setToArrivdAte(balanceDO.getArriveDate()); - purchaseDetailDO.setToProduceDate(balanceDO.getProduceDate()); - purchaseDetailDO.setToExpireDate(balanceDO.getExpireDate()); - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - purchaseDetailDO.setToInventoryStatus("Scrap"); - String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_REQUEST.getCode()); - createReqVO.setNumber(number); - - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRequest"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapToHoldRequest"); - if (requestsettingDO != null) { - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - - purchaseDetailDO.setFromPackingNumber(null); - purchaseDetailDO.setFromBatch(null); - purchaseDetailDO.setFromContainerNumber(null); + //合格转隔离申请 + if ("OK".equals(detailDo.getFromInventoryStatus())) { + // 校验库存余额是否存在 + try { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("OK"); + List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber() + , detailDo.getFromBatch(), detailDo.getLocationCode(), inventoryStatus); + if (balanceDOList != null) { + BalanceDO balanceDO = balanceDOList.get(0); + detailDo.setFromQty(balanceDO.getQty()); + detailDo.setToQty(balanceDO.getQty()); + detailDo.setQty(balanceDO.getQty()); + + detailDo.setToArrivdAte(balanceDO.getArriveDate()); + detailDo.setFromProduceDate(balanceDO.getProduceDate()); + detailDo.setFromExpireDate(balanceDO.getExpireDate()); + detailDo.setToArrivdAte(balanceDO.getArriveDate()); + detailDo.setToProduceDate(balanceDO.getProduceDate()); + detailDo.setToExpireDate(balanceDO.getExpireDate()); } + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + detailDo.setToInventoryStatus("Hold"); + String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_REQUEST.getCode()); + mainDo.setNumber(number); + + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRequest"); + if (businesstypeDO != null) { + mainDo.setBusinessType(businesstypeDO.getCode()); + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToHoldRequest"); + if (requestsettingDO != null) { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } - //合格转报废 - if ("Ok".equals(purchaseDetailDO.getFromInventoryStatus())) { - // 校验库存余额是否存在 - try { - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add("Scrap"); - List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(purchaseDetailDO.getItemCode(), purchaseDetailDO.getFromPackingNumber() - , purchaseDetailDO.getFromBatch(), purchaseDetailDO.getLocationCode(), inventoryStatus); - if (balanceDOList != null) { - BalanceDO balanceDO = balanceDOList.get(0); - purchaseDetailDO.setFromQty(balanceDO.getQty()); - purchaseDetailDO.setToQty(balanceDO.getQty()); - purchaseDetailDO.setQty(balanceDO.getQty()); - - purchaseDetailDO.setToArrivdAte(balanceDO.getArriveDate()); - purchaseDetailDO.setFromProduceDate(balanceDO.getProduceDate()); - purchaseDetailDO.setFromExpireDate(balanceDO.getExpireDate()); - purchaseDetailDO.setToArrivdAte(balanceDO.getArriveDate()); - purchaseDetailDO.setToProduceDate(balanceDO.getProduceDate()); - purchaseDetailDO.setToExpireDate(balanceDO.getExpireDate()); - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - purchaseDetailDO.setToInventoryStatus("Scrap"); - String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_REQUEST.getCode()); - createReqVO.setNumber(number); - - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToScrapRequest"); - if (requestsettingDO != null) { - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - - purchaseDetailDO.setFromPackingNumber(null); - purchaseDetailDO.setFromBatch(null); - purchaseDetailDO.setFromContainerNumber(null); + detailDo.setToPackingNumber(null); + detailDo.setToBatch(null); + detailDo.setToContainerNumber(null); + } + + //隔离转报废申请 + if ("Hold".equals(detailDo.getFromInventoryStatus())) { + // 校验库存余额是否存在 + try { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("Hold"); + List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber() + , detailDo.getFromBatch(), detailDo.getLocationCode(), inventoryStatus); + if (balanceDOList != null) { + BalanceDO balanceDO = balanceDOList.get(0); + detailDo.setFromQty(balanceDO.getQty()); + detailDo.setToQty(balanceDO.getQty()); + detailDo.setQty(balanceDO.getQty()); + + detailDo.setToArrivdAte(balanceDO.getArriveDate()); + detailDo.setFromProduceDate(balanceDO.getProduceDate()); + detailDo.setFromExpireDate(balanceDO.getExpireDate()); + detailDo.setToArrivdAte(balanceDO.getArriveDate()); + detailDo.setToProduceDate(balanceDO.getProduceDate()); + detailDo.setToExpireDate(balanceDO.getExpireDate()); } + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + detailDo.setToInventoryStatus("Scrap"); + String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_REQUEST.getCode()); + mainDo.setNumber(number); + + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRequest"); + if (businesstypeDO != null) { + mainDo.setBusinessType(businesstypeDO.getCode()); + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToHoldRequest"); + if (requestsettingDO != null) { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + detailDo.setFromPackingNumber(null); + detailDo.setFromBatch(null); + detailDo.setFromContainerNumber(null); + } - InventorychangeRequestDetailCreateReqVO purchaseDetailCreateReqVO = InventorychangeRequestDetailConvert.INSTANCE.convert1(purchaseDetailDO); - InventorychangeRequestMainImportErrorVO importVO = InventorychangeRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseDetailCreateReqVO); - //进行子表的错误统计 - //主表没有错误 写入库里 - if (!messageMain.equals("") || !messageDetail.equals("")) { - importVO.setImportStatus("失败"); - messageMain = messageMain + messageDetail; - importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); - errorList.add(importVO); - } else { - purchaseDetailDO.setNumber(createReqVO.getNumber()); - purchaseDetailDO.setMasterId(createReqVO.getId()); + //报废转隔离申请 + if ("Scrap".equals(detailDo.getFromInventoryStatus())) { + // 校验库存余额是否存在 + try { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("Scrap"); + List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber() + , detailDo.getFromBatch(), detailDo.getLocationCode(), inventoryStatus); + if (balanceDOList != null) { + BalanceDO balanceDO = balanceDOList.get(0); + detailDo.setFromQty(balanceDO.getQty()); + detailDo.setToQty(balanceDO.getQty()); + detailDo.setQty(balanceDO.getQty()); + + detailDo.setToArrivdAte(balanceDO.getArriveDate()); + detailDo.setFromProduceDate(balanceDO.getProduceDate()); + detailDo.setFromExpireDate(balanceDO.getExpireDate()); + detailDo.setToArrivdAte(balanceDO.getArriveDate()); + detailDo.setToProduceDate(balanceDO.getProduceDate()); + detailDo.setToExpireDate(balanceDO.getExpireDate()); } + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; } + detailDo.setToInventoryStatus("Scrap"); + String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_REQUEST.getCode()); + mainDo.setNumber(number); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRequest"); + if (businesstypeDO != null) { + mainDo.setBusinessType(businesstypeDO.getCode()); + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapToHoldRequest"); + if (requestsettingDO != null) { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } - if (errorList.isEmpty()) { - if (mode != 3) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - - InventorychangeRequestMainDO createObj = InventorychangeRequestMainConvert.INSTANCE.convert(createReqVO); - inventorychangeRequestMainMapper.insert(createObj); - inventorychangeRequestDetailMapper.insertBatch(subDOList); - } else if (mode != 2) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + detailDo.setFromPackingNumber(null); + detailDo.setFromBatch(null); + detailDo.setFromContainerNumber(null); + } - InventorychangeRequestMainDO createObj = InventorychangeRequestMainConvert.INSTANCE.convert(createReqVO); - inventorychangeRequestMainMapper.updateById(createObj); - inventorychangeRequestDetailMapper.updateBatch(subDOList); + //合格转报废 + if ("Ok".equals(detailDo.getFromInventoryStatus())) { + // 校验库存余额是否存在 + try { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("Scrap"); + List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber() + , detailDo.getFromBatch(), detailDo.getLocationCode(), inventoryStatus); + if (balanceDOList != null) { + BalanceDO balanceDO = balanceDOList.get(0); + detailDo.setFromQty(balanceDO.getQty()); + detailDo.setToQty(balanceDO.getQty()); + detailDo.setQty(balanceDO.getQty()); + + detailDo.setToArrivdAte(balanceDO.getArriveDate()); + detailDo.setFromProduceDate(balanceDO.getProduceDate()); + detailDo.setFromExpireDate(balanceDO.getExpireDate()); + detailDo.setToArrivdAte(balanceDO.getArriveDate()); + detailDo.setToProduceDate(balanceDO.getProduceDate()); + detailDo.setToExpireDate(balanceDO.getExpireDate()); } + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; } - }); - //错误不为空并非部分更新,手工回滚 - if (!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + detailDo.setToInventoryStatus("Scrap"); + String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_REQUEST.getCode()); + mainDo.setNumber(number); + + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest"); + if (businesstypeDO != null) { + mainDo.setBusinessType(businesstypeDO.getCode()); + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToScrapRequest"); + if (requestsettingDO != null) { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + + detailDo.setFromPackingNumber(null); + detailDo.setFromBatch(null); + detailDo.setFromContainerNumber(null); } - return errorList; + return messageDetail; + } + + + //新增方法(主和子) + private InventorychangeRequestMainDO validatorToCreate(InventorychangeRequestMainCreateReqVO createReqVO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverPlan"); + InventorychangeRequestMainDO inventorychangeRequestMainDO = validateMainMethod(createReqVO, businesstypeDO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = InventorychangeRequestDetailConvert.INSTANCE.convertList03(subList); + for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) { + validateDetailMethod(inventorychangeRequestDetailDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode()); + inventorychangeRequestMainDO.setNumber(number); + inventorychangeRequestMainMapper.insert(inventorychangeRequestMainDO); + for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) { + inventorychangeRequestDetailDO.setNumber(inventorychangeRequestMainDO.getNumber()); + inventorychangeRequestDetailDO.setMasterId(inventorychangeRequestMainDO.getId()); + } + inventorychangeRequestDetailMapper.insertBatch(subDOList); + return inventorychangeRequestMainDO; + } + + //修改方法(主和子) + private InventorychangeRequestMainDO validatorToUpdate(InventorychangeRequestMainUpdateReqVO updateReqVO) { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + InventorychangeRequestMainDO deliverPlanMainDO = validateMainMethod(updateReqVO, businesstypeDO); + //子表校验 + List subList = updateReqVO.getSubList(); + List subDOList = InventorychangeRequestDetailConvert.INSTANCE.convertList05(subList); + for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) { + validateDetailMethod(inventorychangeRequestDetailDO); + } + inventorychangeRequestMainMapper.updateById(deliverPlanMainDO); + inventorychangeRequestDetailMapper.updateBatch(subDOList); + return deliverPlanMainDO; + } + + + //校验主表公共方法(适用于新增/修改) + private InventorychangeRequestMainDO validateMainMethod(InventorychangeRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO) { + InventorychangeRequestMainDO InventorychangeRequestMainDO = InventorychangeRequestMainConvert.INSTANCE.convert(baseVO); + return InventorychangeRequestMainDO; + } + + //校验子表公共方法(适用于新增/修改) + private void validateDetailMethod(InventorychangeRequestDetailDO inventorychangeRequestDetailDO) { + LocationDO locationDO = this.validatorLocation(inventorychangeRequestDetailDO.getLocationCode()); + if (locationDO != null) { + inventorychangeRequestDetailDO.setLocationCode(locationDO.getCode()); + inventorychangeRequestDetailDO.setAreaCode(locationDO.getAreaCode()); + inventorychangeRequestDetailDO.setLocationGroupCode(locationDO.getLocationGroupCode()); + } + + ItembasicDO itembasicDO = this.validatorItembasic(inventorychangeRequestDetailDO.getItemCode()); + if (!inventorychangeRequestDetailDO.getUom().equals(itembasicDO.getUom())) { + throw exception(UOM_ERROR, inventorychangeRequestDetailDO.getUom()); + } else { + inventorychangeRequestDetailDO.setItemDesc1(itembasicDO.getDesc1()); + inventorychangeRequestDetailDO.setItemDesc2(itembasicDO.getDesc2()); + inventorychangeRequestDetailDO.setItemName(itembasicDO.getName()); + inventorychangeRequestDetailDO.setProjectCode(itembasicDO.getProject()); + } + //校验库存余额是否存在 + List inventoryStatus = new ArrayList<>(); + //隔离转合格申请 + if ("Hold".equals(inventorychangeRequestDetailDO.getFromInventoryStatus())) { + + inventoryStatus.add("Hold"); + } + //合格转隔离申请 + if ("HOKold".equals(inventorychangeRequestDetailDO.getFromInventoryStatus())) { + inventoryStatus.add("OK"); + } + //隔离转报废申请 + if ("Hold".equals(inventorychangeRequestDetailDO.getFromInventoryStatus())) { + inventoryStatus.add("Hold"); + } + //报废转隔离申请 + if ("Scrap".equals(inventorychangeRequestDetailDO.getFromInventoryStatus())) { + inventoryStatus.add("Scrap"); + } + //合格转报废申请 + if ("Ok".equals(inventorychangeRequestDetailDO.getFromInventoryStatus())) { + inventoryStatus.add("Scrap"); + } + List balanceDOList = this.validatorLocationReturnManagementAccuracy(inventorychangeRequestDetailDO.getItemCode(), inventorychangeRequestDetailDO.getFromPackingNumber() + , inventorychangeRequestDetailDO.getFromBatch(), inventorychangeRequestDetailDO.getLocationCode(), inventoryStatus); + if (balanceDOList != null) { + BalanceDO balanceDO = balanceDOList.get(0); + inventorychangeRequestDetailDO.setFromQty(balanceDO.getQty()); + inventorychangeRequestDetailDO.setToQty(balanceDO.getQty()); + inventorychangeRequestDetailDO.setQty(balanceDO.getQty()); + + inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate()); + inventorychangeRequestDetailDO.setFromProduceDate(balanceDO.getProduceDate()); + inventorychangeRequestDetailDO.setFromExpireDate(balanceDO.getExpireDate()); + inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate()); + inventorychangeRequestDetailDO.setToProduceDate(balanceDO.getProduceDate()); + inventorychangeRequestDetailDO.setToExpireDate(balanceDO.getExpireDate()); + } + + } + + //子表校验来源库位基础信息 + private LocationDO validatorLocation(String locationCode) { + LocationDO locationDO = locationService.selectLocation(locationCode); + return locationDO; + } + + //子表校验物品基础信息 + private ItembasicDO validatorItembasic(String itemCode) { + return itembasicService.selectItembasic(itemCode); + } + + //子表校验业务类型 + private void validatorItembasic(String itemCode, String fromInventoryStatus) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOk"); + jobUtils.selectItembasicExist(itemCode, businesstypeDO); + jobUtils.ifOutInventoryStatuses(fromInventoryStatus, businesstypeDO); + } + + private List validatorLocationReturnManagementAccuracy(String itemCode, String fromPackingNumber, String fromBatch, String locationCode, List inventoryStatus) { + List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(itemCode, fromPackingNumber + , fromBatch, locationCode, inventoryStatus); + return balanceDOList; } } 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 7a048721..43af6e44 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 @@ -5,6 +5,7 @@ import cn.hutool.core.exceptions.UtilException; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.framework.common.util.validation.ValidationUtils; import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.infra.api.trends.TrendsApi; @@ -14,13 +15,16 @@ import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.issueRequest.vo.*; import com.win.module.wms.controller.rule.vo.RuleRespVO; import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert; +import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; 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.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; import com.win.module.wms.dal.mysql.issueRequest.IssueRequestDetailMapper; +import com.win.module.wms.dal.mysql.issueRequest.IssueRequestMainMapper; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.itembasic.ItembasicService; @@ -32,21 +36,15 @@ 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.stereotype.Service; - -import javax.annotation.Resource; -import javax.validation.Validator; - import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import javax.annotation.Resource; +import javax.validation.Validator; import java.time.LocalDateTime; -import java.util.*; - -import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; -import com.win.module.wms.dal.mysql.issueRequest.IssueRequestMainMapper; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.module.wms.enums.ErrorCodeConstants.*; @@ -175,6 +173,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { return request; } + //导入的主方法 @Override @Transactional public List importIssueRequestList(List datas, Integer mode, boolean updatePart) { @@ -217,106 +216,8 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { return errorList; } - private void validatorWorkshop(String workshopCode) { - workshopService.selectWorkshopExist(workshopCode); - } - - private ItembasicDO validatorItembasic(String itemCode) { - return itembasicService.selectItembasic(itemCode); - } - - //接口调用后throw的错误需要进行修改形式 code需要统一一下 - private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO) { - jobUtils.ifInType(itemType, businesstypeDO); - } - - private ProductionlineDO validatorProductionLineCode(String productionLineCode) { - return productionlineService.productionLineCodeExist(productionLineCode); - } - - private WorkstationDO validatorWorkstation(String workStationCode, String workshopCode, String productionLineCode) { - return workstationService.selectWorkstationExist(workStationCode, workshopCode, productionLineCode); - } - - private void validatorProductionLineCodeAndpItemCodeExist(String productionLineCode, String itemCode) { - productionlineitemService.productionLineCodeAndpItemCodeExist(productionLineCode, itemCode); - } - - //新增校验 - private IssueRequestMainDO validatorToCreate(IssueRequestMainCreateReqVO createReqVO,RequestsettingDO requestsettingDO) { - BusinesstypeDO businesstypeDO = new BusinesstypeDO(); - IssueRequestMainDO issueRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); - //子表校验 - List subList = createReqVO.getSubList(); - List subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList); - for (IssueRequestDetailDO issueRequestDetailDO : subDOList) { - validateDetailMethod(issueRequestDetailDO,businesstypeDO,issueRequestMainDO); - } - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); - issueRequestMainDO.setNumber(number); - issueRequestMainMapper.insert(issueRequestMainDO); - for (IssueRequestDetailDO issueRequestDetailDO : subDOList) { - issueRequestDetailDO.setMasterId(issueRequestMainDO.getId()); - issueRequestDetailDO.setNumber(issueRequestMainDO.getNumber()); - } - issueRequestDetailMapper.insertBatch(subDOList); - return issueRequestMainDO; - } - - //修改校验 - private IssueRequestMainDO validatorToUpdate(IssueRequestMainUpdateReqVO updateReqVO,RequestsettingDO requestsettingDO) { - BusinesstypeDO businesstypeDO = new BusinesstypeDO(); - IssueRequestMainDO issueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); - //子表校验 - List subList = updateReqVO.getSubList(); - List subDOList = IssueRequestDetailConvert.INSTANCE.convertList05(subList); - for (IssueRequestDetailDO issueRequestDetailDO : subDOList) { - validateDetailMethod(issueRequestDetailDO,businesstypeDO,issueRequestMainDO); - } - issueRequestMainMapper.updateById(issueRequestMainDO); - issueRequestDetailMapper.updateBatch(subDOList); - return issueRequestMainDO; - } - //校验主表公共方法(适用于新增/修改) - private IssueRequestMainDO validateMainMethod(IssueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO){ - IssueRequestMainDO issueRequestMainDO = IssueRequestMainConvert.INSTANCE.convert(baseVO); - this.validatorWorkshop(issueRequestMainDO.getWorkshopCode()); - issueRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - issueRequestMainDO.setRequestTime(LocalDateTime.now()); - requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); - issueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); - issueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); - issueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); - issueRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); - issueRequestMainDO.setBusinessType(businesstypeDO.getCode()); - issueRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); - issueRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); - issueRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); - issueRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); - return issueRequestMainDO; - } - //校验子表公共方法(适用于新增/修改) - private void validateDetailMethod(IssueRequestDetailDO issueRequestDetailDO,BusinesstypeDO businesstypeDO,IssueRequestMainDO issueRequestMainDO) { - ItembasicDO itembasicDO = validatorItembasic(issueRequestDetailDO.getItemCode()); - this.validatorIfInType(itembasicDO.getType(), businesstypeDO); - this.ifUomSuccess(itembasicDO.getUom(), issueRequestDetailDO.getUom()); - ProductionlineDO productionlineDO = validatorProductionLineCode(issueRequestDetailDO.getProductionLineCode()); - issueRequestDetailDO.setToLocationCode(productionlineDO.getRawLocationCode()); - WorkstationDO workstationDO = validatorWorkstation(issueRequestDetailDO.getWorkStationCode(), issueRequestMainDO.getWorkshopCode(), issueRequestDetailDO.getProductionLineCode()); - issueRequestDetailDO.setToLocationCode(workstationDO.getRawLocationCode()); - this.validatorProductionLineCodeAndpItemCodeExist(issueRequestDetailDO.getProductionLineCode(), issueRequestDetailDO.getItemCode()); - RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, issueRequestDetailDO.getItemCode(), null, null, null, null, null, null); - if (grounding == null) { - throw exception(555, "未查找到该条上架策略"); - } else { - JSONObject json = JSONUtil.parseObj(grounding); - String locationCode = json.get("LocationCode").toString(); - this.ifLocationCodeInRule(issueRequestDetailDO.getItemCode(), issueRequestDetailDO.getToLocationCode(), locationCode); - } - } /** - * 校验导入,并赋值一些参数 + * 主表校验导入,并赋值一些参数 * * @param mainDo * @return @@ -358,7 +259,7 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { } /** - * 校验导入,并赋值一些参数 + * 子表校验导入,并赋值一些参数 * * @param detailDo * @return @@ -416,4 +317,104 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { } return message.toString(); } + + //新增方法(主和子) + private IssueRequestMainDO validatorToCreate(IssueRequestMainCreateReqVO createReqVO,RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + IssueRequestMainDO issueRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = IssueRequestDetailConvert.INSTANCE.convertList03(subList); + for (IssueRequestDetailDO issueRequestDetailDO : subDOList) { + validateDetailMethod(issueRequestDetailDO,businesstypeDO,issueRequestMainDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); + issueRequestMainDO.setNumber(number); + issueRequestMainMapper.insert(issueRequestMainDO); + for (IssueRequestDetailDO issueRequestDetailDO : subDOList) { + issueRequestDetailDO.setMasterId(issueRequestMainDO.getId()); + issueRequestDetailDO.setNumber(issueRequestMainDO.getNumber()); + } + issueRequestDetailMapper.insertBatch(subDOList); + return issueRequestMainDO; + } + + //修改方法(主和子) + private IssueRequestMainDO validatorToUpdate(IssueRequestMainUpdateReqVO updateReqVO,RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + IssueRequestMainDO issueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = updateReqVO.getSubList(); + List subDOList = IssueRequestDetailConvert.INSTANCE.convertList05(subList); + for (IssueRequestDetailDO issueRequestDetailDO : subDOList) { + validateDetailMethod(issueRequestDetailDO,businesstypeDO,issueRequestMainDO); + } + issueRequestMainMapper.updateById(issueRequestMainDO); + issueRequestDetailMapper.updateBatch(subDOList); + return issueRequestMainDO; + } + + //校验主表公共方法(适用于新增/修改) + private IssueRequestMainDO validateMainMethod(IssueRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO){ + IssueRequestMainDO issueRequestMainDO = IssueRequestMainConvert.INSTANCE.convert(baseVO); + this.validatorWorkshop(issueRequestMainDO.getWorkshopCode()); + issueRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + issueRequestMainDO.setRequestTime(LocalDateTime.now()); + requestsettingDO = requestsettingService.selectRequestsettingExist("IssueRequest"); + issueRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + issueRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + issueRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + issueRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("IssueRequest"); + issueRequestMainDO.setBusinessType(businesstypeDO.getCode()); + issueRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + issueRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + issueRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + issueRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + return issueRequestMainDO; + } + //校验子表公共方法(适用于新增/修改) + private void validateDetailMethod(IssueRequestDetailDO issueRequestDetailDO,BusinesstypeDO businesstypeDO,IssueRequestMainDO issueRequestMainDO) { + ItembasicDO itembasicDO = validatorItembasic(issueRequestDetailDO.getItemCode()); + this.validatorIfInType(itembasicDO.getType(), businesstypeDO); + this.ifUomSuccess(itembasicDO.getUom(), issueRequestDetailDO.getUom()); + ProductionlineDO productionlineDO = validatorProductionLineCode(issueRequestDetailDO.getProductionLineCode()); + issueRequestDetailDO.setToLocationCode(productionlineDO.getRawLocationCode()); + WorkstationDO workstationDO = validatorWorkstation(issueRequestDetailDO.getWorkStationCode(), issueRequestMainDO.getWorkshopCode(), issueRequestDetailDO.getProductionLineCode()); + issueRequestDetailDO.setToLocationCode(workstationDO.getRawLocationCode()); + this.validatorProductionLineCodeAndpItemCodeExist(issueRequestDetailDO.getProductionLineCode(), issueRequestDetailDO.getItemCode()); + RuleRespVO grounding = ruleService.grounding(null, null, null, null, null, null, issueRequestDetailDO.getItemCode(), null, null, null, null, null, null); + if (grounding == null) { + throw exception(555, "未查找到该条上架策略"); + } else { + JSONObject json = JSONUtil.parseObj(grounding); + String locationCode = json.get("LocationCode").toString(); + this.ifLocationCodeInRule(issueRequestDetailDO.getItemCode(), issueRequestDetailDO.getToLocationCode(), locationCode); + } + } + + private void validatorWorkshop(String workshopCode) { + workshopService.selectWorkshopExist(workshopCode); + } + + private ItembasicDO validatorItembasic(String itemCode) { + return itembasicService.selectItembasic(itemCode); + } + + //接口调用后throw的错误需要进行修改形式 code需要统一一下 + private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO) { + jobUtils.ifInType(itemType, businesstypeDO); + } + + private ProductionlineDO validatorProductionLineCode(String productionLineCode) { + return productionlineService.productionLineCodeExist(productionLineCode); + } + + private WorkstationDO validatorWorkstation(String workStationCode, String workshopCode, String productionLineCode) { + return workstationService.selectWorkstationExist(workStationCode, workshopCode, productionLineCode); + } + + private void validatorProductionLineCodeAndpItemCodeExist(String productionLineCode, String itemCode) { + productionlineitemService.productionLineCodeAndpItemCodeExist(productionLineCode, itemCode); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java index 9bf63653..6f1c187d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java @@ -56,10 +56,10 @@ public interface ItembasicService { /** * 获得物品基本信息列表 * - * @param ids 编号 + * @param conditions 条件 * @return 物品基本信息列表 */ - List getItembasicList(Collection ids); + List getItembasicList(CustomConditions conditions); /** * 获得物品基本信息分页 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java index 9ef4aa32..60432365 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java @@ -89,8 +89,8 @@ public class ItembasicServiceImpl implements ItembasicService { } @Override - public List getItembasicList(Collection ids) { - return itembasicMapper.selectBatchIds(ids); + public List getItembasicList(CustomConditions conditions) { + return itembasicMapper.selectSeniorList(conditions); } @Override @@ -341,16 +341,13 @@ public class ItembasicServiceImpl implements ItembasicService { public ItembasicDO selectItembasic(String code) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("code",code); + queryWrapper.eq("available","TRUE"); + queryWrapper.eq("status","ENABLE"); ItembasicDO itembasicDO = itembasicMapper.selectOne(queryWrapper); if(itembasicDO != null){ - if("ENABLE".equals(itembasicDO.getStatus())){ - return itembasicDO; - }else { - throw exception(ITEMBASIC_NOT_EXISTS); - } + return itembasicDO; }else { throw exception(ITEMBASIC_NOT_EXISTS); } } - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingService.java index fbcfdd28..9b69898a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingService.java @@ -52,7 +52,7 @@ public interface ItempackagingService { * @param ids 编号 * @return 物品包装信息 列表 */ - List getItempackagingList(Collection ids); + List getItempackagingList(CustomConditions conditions); /** * 获得物品包装信息 分页 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingServiceImpl.java index e1f586fc..0d1d6667 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itempackaging/ItempackagingServiceImpl.java @@ -71,8 +71,8 @@ public class ItempackagingServiceImpl implements ItempackagingService { } @Override - public List getItempackagingList(Collection ids) { - return itempackagingMapper.selectBatchIds(ids); + public List getItempackagingList(CustomConditions conditions) { + return itempackagingMapper.selectSeniorList(conditions); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java index 380a2a8a..9912c10e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionline/ProductionlineServiceImpl.java @@ -201,8 +201,9 @@ public class ProductionlineServiceImpl implements ProductionlineService { public ProductionlineDO productionLineCodeExist(String pproductionLineCode){ QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("code",pproductionLineCode); + queryWrapper.eq("available","TRUE"); ProductionlineDO productionlineDO = productionlineMapper.selectOne(queryWrapper); - if(productionlineDO != null && "TRUE".equals(productionlineDO.getAvailable())){ + if(productionlineDO != null){ return productionlineDO; }else { throw exception(PRODUCTIONLINE_NOT_EXISTS); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemService.java index a2a3dc3f..da24f266 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemService.java @@ -52,7 +52,7 @@ public interface ProductionlineitemService { * @param ids 编号 * @return 生产线物料关系列表 */ - List getProductionlineitemList(Collection ids); + List getProductionlineitemList(CustomConditions conditions); /** * 获得生产线物料关系分页 @@ -79,7 +79,7 @@ public interface ProductionlineitemService { * @param pitemCode 物品代码 * @return 生产线物料关系 */ - public List productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode); + public ProductionlineitemDO productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode); /** * 获得用高级搜索户分页列表 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java index 8002809b..7c174301 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java @@ -72,8 +72,8 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService } @Override - public List getProductionlineitemList(Collection ids) { - return productionlineitemMapper.selectBatchIds(ids); + public List getProductionlineitemList(CustomConditions conditions) { + return productionlineitemMapper.selectSeniorList(conditions); } @Override @@ -169,21 +169,17 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService } //零件生产线关系有效 @Override - public List productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode) { + public ProductionlineitemDO productionLineCodeAndpItemCodeExist(String pproductionLineCode,String pitemCode) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("production_line_code",pproductionLineCode); queryWrapper.eq("item_code",pitemCode); - List productionlineitemDO = productionlineitemMapper.selectList(queryWrapper); + queryWrapper.eq("available","TRUE"); + ProductionlineitemDO productionlineitemDO = productionlineitemMapper.selectOne(queryWrapper); if( productionlineitemDO != null){ - for (ProductionlineitemDO aDo : productionlineitemDO) { - if("TRUE".equals(aDo.getAvailable())){ - return productionlineitemDO; - } - } + return productionlineitemDO; }else { - throw new UtilException( "生产线" + pproductionLineCode + "与零件" + pitemCode + "关系无效"); + throw exception(PRODUCTIONLINEITEM_NOT_EXIST, "生产线" + pproductionLineCode + "与零件" + pitemCode + "关系无效"); } - return productionlineitemDO; } @Override 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 2ec6f4e6..5fd0c936 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 @@ -2,11 +2,9 @@ package com.win.module.wms.service.productionreturnRequest; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailCreateReqVO; -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.controller.productionreturnRequest.vo.*; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestDetailDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import javax.validation.Valid; import java.util.Collection; @@ -25,14 +23,14 @@ public interface ProductionreturnRequestDetailService { * @param createReqVO 创建信息 * @return 编号 */ - Long createProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailCreateReqVO createReqVO); + Long createProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO); /** * 更新生产退料申请子 * * @param updateReqVO 更新信息 */ - void updateProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailUpdateReqVO updateReqVO); + void updateProductionreturnRequestDetail(@Valid ProductionreturnRequestDetailUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO); /** * 删除生产退料申请子 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 de560561..333c7fb5 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 @@ -2,22 +2,36 @@ package com.win.module.wms.service.productionreturnRequest; 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.wms.controller.productionreturnRequest.vo.ProductionreturnRequestDetailCreateReqVO; 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.productionreturnRequest.ProductionreturnRequestDetailConvert; -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.productionline.ProductionlineDO; 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.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.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.module.wms.enums.ErrorCodeConstants.ITEMBASIC_CODE_EXISTS; import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTIONRETURN_REQUEST_DETAIL_NOT_EXISTS; /** @@ -31,22 +45,39 @@ public class ProductionreturnRequestDetailServiceImpl implements Productionretur @Resource private ProductionreturnRequestDetailMapper productionreturnRequestDetailMapper; - + @Resource + private ProductionreturnRequestMainService productionreturnRequestMainService; + @Resource + private ItembasicService itembasicService; + @Resource + private ProductionlineService productionlineService; + @Resource + private ProductionlineitemService productionlineitemService; + @Resource + private WorkstationService workstationService; + @Resource + private JobUtils jobUtils; + @Resource + private TrendsApi trendsApi; @Override - public Long createProductionreturnRequestDetail(ProductionreturnRequestDetailCreateReqVO createReqVO) { + public Long createProductionreturnRequestDetail(ProductionreturnRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { // 插入 ProductionreturnRequestDetailDO productionreturnRequestDetail = ProductionreturnRequestDetailConvert.INSTANCE.convert(createReqVO); productionreturnRequestDetailMapper.insert(productionreturnRequestDetail); + trendsApi.createTrends(productionreturnRequestDetail.getId(), requestsettingDO.getCode(), "修改了生产退料申请", TrendsTypeEnum.CREATE); // 返回 return productionreturnRequestDetail.getId(); } @Override - public void updateProductionreturnRequestDetail(ProductionreturnRequestDetailUpdateReqVO updateReqVO) { + 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); + trendsApi.createTrends(updateObj.getId(), requestsettingDO.getCode(), "修改了生产退料申请", TrendsTypeEnum.UPDATE); productionreturnRequestDetailMapper.updateById(updateObj); } @@ -88,4 +119,53 @@ public class ProductionreturnRequestDetailServiceImpl implements Productionretur public PageResult getProductionreturnRequestDetailSenior(CustomConditions conditions) { return productionreturnRequestDetailMapper.selectSenior(conditions); } + + //校验子表公共方法(适用于新增/修改) + private void validatorDetailMethod(ProductionreturnRequestDetailDO detailDo, ProductionreturnRequestMainDO mainDo) { + ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); + 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); + } + + private ItembasicDO validatorItembasic(String itemCode){ + return itembasicService.selectItembasic(itemCode); + } + + private void ifUomSuccess(String itemUom,String uom) { + if(!itemUom.equals(uom)){ + throw exception(ITEMBASIC_CODE_EXISTS,"提示单位"+ uom + "错误,应该是" + itemUom); + } + } + + private ProductionlineDO validatorProductionline(String pproductionLineCode){ + return productionlineService.productionLineCodeExist(pproductionLineCode); + } + private void validatorProductionlineitem(String productionLineCode,String itemCode) { + productionlineitemService.productionLineCodeAndpItemCodeExist(productionLineCode, itemCode); + } + + private WorkstationDO validatorWorkStation(String workshopCode,String productionLineCode,String workStationCode){ + if(workStationCode != ""){ + return workstationService.selectWorkstationExist(workshopCode, productionLineCode, workStationCode); + }else { + return null; + } + } + + private void validatorManagementAccuracy(String itemCode,String packingNumber,String batch,String locationCode,List inventoryStatus){ + jobUtils.selectlocationReturnManagementAccuracy(itemCode,packingNumber,batch,locationCode,inventoryStatus); + } } 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 835ced58..926b9640 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 @@ -2,11 +2,10 @@ package com.win.module.wms.service.productionreturnRequest; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainCreateReqVO; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainExportReqVO; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainPageReqVO; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainUpdateReqVO; +import com.win.module.wms.controller.productionreturnRequest.vo.*; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import javax.validation.Valid; import java.util.Collection; @@ -25,14 +24,14 @@ public interface ProductionreturnRequestMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createProductionreturnRequestMain(@Valid ProductionreturnRequestMainCreateReqVO createReqVO); + Long createProductionreturnRequestMain(@Valid ProductionreturnRequestMainCreateReqVO createReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO); /** * 更新生产退料申请主 * * @param updateReqVO 更新信息 */ - void updateProductionreturnRequestMain(@Valid ProductionreturnRequestMainUpdateReqVO updateReqVO); + void updateProductionreturnRequestMain(@Valid ProductionreturnRequestMainUpdateReqVO updateReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO); /** * 删除生产退料申请主 @@ -48,6 +47,7 @@ public interface ProductionreturnRequestMainService { * @return 生产退料申请主 */ ProductionreturnRequestMainDO getProductionreturnRequestMain(Long id); + ProductionreturnRequestMainDO getProductionreturnRequestMainToNumber(String number); /** * 获得生产退料申请主列表 @@ -80,4 +80,6 @@ public interface ProductionreturnRequestMainService { * @return 分页列表 */ PageResult getProductionreturnRequestMainSenior(CustomConditions conditions); + + List importProductionreturnRequestList(List createReqVOList, Integer mode, Boolean updatePart, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO); } 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 3cfbb134..e71b316d 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,24 +1,54 @@ package com.win.module.wms.service.productionreturnRequest; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainCreateReqVO; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainExportReqVO; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainPageReqVO; -import com.win.module.wms.controller.productionreturnRequest.vo.ProductionreturnRequestMainUpdateReqVO; +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.productionreturnRequest.vo.*; +import com.win.module.wms.controller.productionreturnRequest.vo.*; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert; -import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; +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.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.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.workshop.WorkshopDO; +import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; +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.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.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.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import javax.validation.Validator; +import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTIONRETURN_REQUEST_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 生产退料申请主 Service 实现类 @@ -31,26 +61,58 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR @Resource private ProductionreturnRequestMainMapper productionreturnRequestMainMapper; - + @Resource + private ProductionreturnRequestDetailMapper productionreturnRequestDetailMapper; + @Resource + private ItembasicService itembasicService; + @Resource + private WorkshopService workshopService; + @Resource + private ProductionlineService productionlineService; + @Resource + private ProductionlineitemService productionlineitemService; + @Resource + private WorkstationService workstationService; + @Resource + private JobUtils jobUtils; + @Resource + private Validator validator; + @Resource + private RequestsettingService requestsettingService; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private TrendsApi trendsApi; @Override - public Long createProductionreturnRequestMain(ProductionreturnRequestMainCreateReqVO createReqVO) { + @Transactional + public Long createProductionreturnRequestMain(ProductionreturnRequestMainCreateReqVO createReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) { // 插入 - ProductionreturnRequestMainDO productionreturnRequestMain = ProductionreturnRequestMainConvert.INSTANCE.convert(createReqVO); - productionreturnRequestMainMapper.insert(productionreturnRequestMain); + ProductionreturnRequestMainDO productionreturnRequestMainDO = validatorToCreate(createReqVO, businesstypeDO, requestsettingDO); + if(RequestStatusEnum.HANDLING.getCode().equals(productionreturnRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), requestsettingDO.getCode(), "增加了生产退料申请", TrendsTypeEnum.CREATE); // 返回 - return productionreturnRequestMain.getId(); + return createReqVO.getId(); } @Override - public void updateProductionreturnRequestMain(ProductionreturnRequestMainUpdateReqVO updateReqVO) { + @Transactional + public void updateProductionreturnRequestMain(ProductionreturnRequestMainUpdateReqVO updateReqVO,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) { // 校验存在 validateProductionreturnRequestMainExists(updateReqVO.getId()); + ProductionreturnRequestMainDO productionreturnRequestMainDO = validatorMainMethod(updateReqVO, businesstypeDO, requestsettingDO); + if(RequestStatusEnum.HANDLING.getCode().equals(productionreturnRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), requestsettingDO.getCode(), "修改了生产退料申请", TrendsTypeEnum.UPDATE); // 更新 ProductionreturnRequestMainDO updateObj = ProductionreturnRequestMainConvert.INSTANCE.convert(updateReqVO); productionreturnRequestMainMapper.updateById(updateObj); } @Override + @Transactional public void deleteProductionreturnRequestMain(Long id) { // 校验存在 validateProductionreturnRequestMainExists(id); @@ -69,6 +131,11 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR return productionreturnRequestMainMapper.selectById(id); } + @Override + public ProductionreturnRequestMainDO getProductionreturnRequestMainToNumber(String number) { + return productionreturnRequestMainMapper.selectByNumber(number); + } + @Override public List getProductionreturnRequestMainList(Collection ids) { return productionreturnRequestMainMapper.selectBatchIds(ids); @@ -88,4 +155,227 @@ public class ProductionreturnRequestMainServiceImpl implements ProductionreturnR public PageResult getProductionreturnRequestMainSenior(CustomConditions conditions) { return productionreturnRequestMainMapper.selectSenior(conditions); } + + @Override + public List importProductionreturnRequestList(List createReqVOList + , Integer mode, Boolean updatePart,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) { + if (CollUtil.isEmpty(createReqVOList)) { + throw exception(PRODUCTIONRETURN_REQUEST_IMPORT_LIST_IS_EMPTY); + } + List errorList = new ArrayList<>(); + createReqVOList.forEach(createReqVO -> { + ProductionreturnRequestMainDO mainDo = ProductionreturnRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validatorProductionreturnRequestMainImport(mainDo,businesstypeDO,requestsettingDO); + List subList = createReqVO.getSubList(); + List subDOList = ProductionreturnRequestDetailConvert.INSTANCE.convertList03(subList); + // 是否有错误数据 + boolean flag = true; + for (ProductionreturnRequestDetailDO detailDO : subDOList) { + String messageDetail = validatorProductionreturnRequestDetailImport(detailDO, mainDo,businesstypeDO); + if (!messageMain.isEmpty() || messageDetail.isEmpty()) { + ProductionreturnRequestImportErrorVO importErrorVO = ProductionreturnRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; + } + } + //写入数据 + if (flag) { + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); + mainDo.setNumber(number); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + mainDo.setRequestTime(LocalDateTime.now()); + productionreturnRequestMainMapper.insert(mainDo); + for (ProductionreturnRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(number); + } + productionreturnRequestDetailMapper.insertBatch(subDOList); + } + }); + return errorList; + } + + // 新增校验 + private ProductionreturnRequestMainDO validatorToCreate(ProductionreturnRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) { + ProductionreturnRequestMainDO mainDo = validatorMainMethod(createReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = ProductionreturnRequestDetailConvert.INSTANCE.convertList03(subList); + 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, "新增")); + productionreturnRequestMainMapper.insert(mainDo); + for (ProductionreturnRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(mainDo.getNumber()); + } + productionreturnRequestDetailMapper.insertBatch(subDOList); + return mainDo; + } + + //校验主表公共方法(适用于新增/修改) + private ProductionreturnRequestMainDO validatorMainMethod(ProductionreturnRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO){ + ProductionreturnRequestMainDO mainDo = ProductionreturnRequestMainConvert.INSTANCE.convert(baseVO); + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + return mainDo; + } + //校验子表公共方法(适用于新增/修改) + private void validatorDetailMethod(ProductionreturnRequestDetailDO detailDo,ProductionreturnRequestMainDO mainDo) { + ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + 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()); + } + ArrayList inventoryStatus = new ArrayList<>(); + inventoryStatus.set(0,detailDo.getInventoryStatus()); + validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus); + } + + /** + * 校验主表导入,并赋值一些参数 + * + * @param mainDo + * @return + */ + private String validatorProductionreturnRequestMainImport(ProductionreturnRequestMainDO mainDo,BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) { + StringBuilder message = new StringBuilder(); + try { + validatorWorkshop(mainDo.getWorkshopCode()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + if (businesstypeDO == null) { + message.append("根据业务类型设置未查找到采购退货申请的相关业务类型"); + } + else { + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); + } + if (requestsettingDO == null) { + message.append("根据申请单设置未查找到采购退货申请的相关业务类型"); + } + else { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + try { + ValidationUtils.validate(validator, mainDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + /** + * 校验子表导入,并赋值一些参数 + * + * @param detailDo + * @return + */ + private String validatorProductionreturnRequestDetailImport(ProductionreturnRequestDetailDO detailDo, ProductionreturnRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + try { + ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + try { + this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + this.validatorProductionline(detailDo.getProductionLineCode()); + + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + ProductionlineitemDO productionlineitemDO = validatorProductionlineitem(detailDo.getProductionLineCode(), detailDo.getItemCode()); + detailDo.setFromLocationCode(productionlineitemDO.getRawLocationCode()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + WorkstationDO workstationDO = validatorWorkStation(mainDo.getWorkshopCode(), detailDo.getProductionLineCode(), detailDo.getWorkStationCode()); + if(workstationDO != null){ + detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); + } + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ArrayList inventoryStatus = new ArrayList<>(); + inventoryStatus.set(0,detailDo.getInventoryStatus()); + validatorManagementAccuracy(detailDo.getItemCode(), null, null, detailDo.getFromLocationCode(), inventoryStatus); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ValidationUtils.validate(validator, detailDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + private ItembasicDO validatorItembasic(String itemCode){ + return itembasicService.selectItembasic(itemCode); + } + + private void ifUomSuccess(String itemUom,String uom) { + if(!itemUom.equals(uom)){ + throw exception(ITEMBASIC_CODE_EXISTS,"提示单位"+ uom + "错误,应该是" + itemUom); + } + } + + private WorkshopDO validatorWorkshop(String workshopCode){ + return workshopService.selectWorkshopExist(workshopCode); + } + private void validatorProductionline(String pproductionLineCode){ + productionlineService.productionLineCodeExist(pproductionLineCode); + } + private ProductionlineitemDO validatorProductionlineitem(String productionLineCode,String itemCode) { + return productionlineitemService.productionLineCodeAndpItemCodeExist(productionLineCode, itemCode); + } + + private WorkstationDO validatorWorkStation(String workshopCode,String productionLineCode,String workStationCode){ + if(workStationCode != ""){ + return workstationService.selectWorkstationExist(workshopCode, productionLineCode, workStationCode); + }else { + return null; + } + } + private void validatorManagementAccuracy(String itemCode,String packingNumber,String batch,String locationCode,List inventoryStatus){ + jobUtils.selectlocationReturnManagementAccuracy(itemCode,packingNumber,batch,locationCode,inventoryStatus); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java index 0e902492..e2cd2c45 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java @@ -4,14 +4,32 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.exceptions.UtilException; import cn.hutool.core.util.StrUtil; import com.google.common.annotations.VisibleForTesting; +import com.win.framework.common.util.validation.ValidationUtils; import com.win.framework.datapermission.core.util.DataPermissionUtils; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.dict.DictDataApi; import com.win.module.system.api.dict.dto.DictDataRespDTO; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainUpdateReqVO; +import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainBaseVO; +import com.win.module.wms.controller.productreceiptRequest.vo.ProductreceiptRequestMainCreateReqVO; +import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestImportErrorVO; +import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; +import com.win.module.wms.convert.productreceiptRequest.ProductreceiptRequestMainConvert; +import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; 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.location.LocationDO; +import com.win.module.wms.dal.dataobject.productreceiptRequest.ProductreceiptRequestMainDO; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.mysql.productputawayRequest.ProductputawayRequestDetailMapper; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.util.*; import com.win.framework.common.pojo.CustomConditions; @@ -32,7 +50,9 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import com.win.module.wms.convert.productputawayRequest.*; import javax.annotation.Resource; +import javax.validation.Validator; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -69,7 +89,8 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque @Resource private BusinesstypeService businesstypeService; - + @Resource + private Validator validator; @Resource private LocationService locationService; @@ -79,24 +100,108 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque @Resource private DictDataApi dictDataApi; + @Resource + private TrendsApi trendsApi; + @Override public Long createProductputawayRequestMain(ProductputawayRequestMainCreateReqVO createReqVO) { - // 插入 - ProductputawayRequestMainDO productputawayRequestMain = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO); - productputawayRequestMainMapper.insert(productputawayRequestMain); - // 返回 - return productputawayRequestMain.getId(); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); + ProductputawayRequestMainDO productputawayRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(productputawayRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "ProductputawayRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE); + return productputawayRequestMainDO.getId(); + } + private ProductputawayRequestMainDO validatorToCreate( ProductputawayRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); + ProductputawayRequestMainDO productputawayRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = ProductputawayRequestDetailConvert.INSTANCE.convertList03(subList); + for(ProductputawayRequestDetailDO productputawayRequestDetailDO: subDOList){ + validateDetailMethod(productputawayRequestDetailDO,businesstypeDO,productputawayRequestMainDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); + productputawayRequestMainDO.setNumber(number); + productputawayRequestMainMapper.insert(productputawayRequestMainDO); + for (ProductputawayRequestDetailDO productputawayRequestDetailDO : subDOList) { + productputawayRequestDetailDO.setMasterId(productputawayRequestMainDO.getId()); + productputawayRequestDetailDO.setNumber(productputawayRequestMainDO.getNumber()); + } + productputawayRequestDetailMapper.insertBatch(subDOList); + return productputawayRequestMainDO; + } + private void validateDetailMethod(ProductputawayRequestDetailDO productputawayRequestDetailDO, BusinesstypeDO businesstypeDO, ProductputawayRequestMainDO productputawayRequestMainDO) { + ItembasicDO itembasicDO = validatorItembasic(productputawayRequestDetailDO.getItemCode()); + productputawayRequestDetailDO.setItemDesc1(itembasicDO.getDesc1()); + productputawayRequestDetailDO.setItemDesc2(itembasicDO.getDesc2()); + productputawayRequestDetailDO.setItemName(itembasicDO.getName()); + productputawayRequestDetailDO.setProjectCode(itembasicDO.getProject()); + validatorLocation(productputawayRequestDetailDO.getFromLocationCode()); + IfInToLocationType(productputawayRequestDetailDO.getFromLocationCode(),businesstypeDO); + DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictValue(productputawayRequestDetailDO.getInventoryStatus()); + String value = dictDataRespDTO.getValue(); + String[] businessArray = value.split(","); + List business = Arrays.asList(businessArray); + List balance = selectlocationReturnManagement(productputawayRequestDetailDO.getItemCode(), productputawayRequestDetailDO.getPackingNumber(), + productputawayRequestDetailDO.getBatch(), productputawayRequestDetailDO.getFromLocationCode(), business); + for(BalanceDO balance2 :balance){ + productputawayRequestMainDO.setFromWarehouseCode(balance2.getWarehouseCode()); + productputawayRequestMainDO.setDueTime(balance2.getExpireDate()); + } + BalanceDO blance1 = balance.get(0); + isqty(productputawayRequestDetailDO.getQty(),blance1.getQty()); + + } + + private ProductputawayRequestMainDO validateMainMethod(ProductputawayRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ + ProductputawayRequestMainDO productputawayRequestMainDO = ProductputawayRequestMainConvert.INSTANCE.convert(baseVO); + productputawayRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + productputawayRequestMainDO.setRequestTime(LocalDateTime.now()); + productputawayRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + productputawayRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + productputawayRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + productputawayRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + productputawayRequestMainDO.setBusinessType(businesstypeDO.getCode()); + productputawayRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + productputawayRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + productputawayRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + productputawayRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + return productputawayRequestMainDO; } @Override public void updateProductputawayRequestMain(ProductputawayRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); // 校验存在 validateProductputawayRequestMainExists(updateReqVO.getId()); // 更新 - ProductputawayRequestMainDO updateObj = ProductputawayRequestMainConvert.INSTANCE.convert(updateReqVO); - productputawayRequestMainMapper.updateById(updateObj); + ProductputawayRequestMainDO productputawayRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); + if(RequestStatusEnum.HANDLING.getCode().equals(productputawayRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "IssueRequest", "增加了发料申请", TrendsTypeEnum.CREATE); } + private ProductputawayRequestMainDO validatorToUpdate(ProductputawayRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); + ProductputawayRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = updateReqVO.getSubList(); + if(subList!=null) { + List subDOList = ProductputawayRequestDetailConvert.INSTANCE.convertList05(subList); + for (ProductputawayRequestDetailDO productputawayRequestDetailDO : subDOList) { + validateDetailMethod(productputawayRequestDetailDO, businesstypeDO, productputawayRequestMainDO); + } + productputawayRequestDetailMapper.updateBatch(subDOList); + } + productputawayRequestMainMapper.updateById(productputawayRequestMainDO); + return productputawayRequestMainDO; + } + + @Override public void deleteProductputawayRequestMain(Long id) { // 校验存在 @@ -135,48 +240,13 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque public PageResult getProductputawayRequestMainSenior(CustomConditions conditions) { return productputawayRequestMainMapper.selectSenior(conditions); } - @Override - @Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入 - public List importProductputawayList(List importProductputaways, Integer mode, boolean updatePart) { - if (CollUtil.isEmpty(importProductputaways)) { - throw exception(WORKSTATION_IMPORT_LIST_IS_EMPTY); - } - List errorList = new ArrayList<>(); - importProductputaways.forEach(productputaway -> { - String massage = ""; - // 校验,判断是否有不符合的原因 - if(mode != null){ - try{ - validateProductputawayExists(null); - } catch(Exception ex){ - massage += ex.getMessage() + ","; - } - if(StrUtil.isNotEmpty(massage)){ - massage.substring(0,massage.length()-1); - errorList.add(productputaway); - } - // 判断如果不存在,在进行插入 - if(errorList == null){ - ProductputawayRequestMainDO existAccountcalendar = productputawayRequestMainMapper.selectByNumber(productputaway.getPackingNumber()); - if (existAccountcalendar == null&& mode != 3) { - productputawayRequestMainMapper.insert(ProductputawayRequestMainConvert.INSTANCE.convert(productputaway)); - } - else if (existAccountcalendar != null && mode != 2) {// 如果存在,判断是否允许更新 - ProductputawayRequestMainDO productputawayDo = ProductputawayRequestMainConvert.INSTANCE.convert(productputaway); - productputawayDo.setId(existAccountcalendar.getId()); - productputawayRequestMainMapper.updateById(productputawayDo); - } - } - } - }); - //错误不为空并非部分更新,手工回滚 - if(!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - return errorList; + @Override + public List importProductputawayList(List importProductputaways, Integer mode, boolean updatePart) { + return null; } + private void validateproductputawayForCreateOrUpdate(Long id,String code,String workshopCode,String productionLineCode,String available) { // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确 DataPermissionUtils.executeIgnore(() -> { @@ -203,122 +273,152 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque if(uom2.equals(value)){ return "ture"; }else { - throw new UtilException("计量单位"+uom2+"错误,应该是"+value); + throw exception(UOM_ERRORR,uom2,value); } } public String isqty(BigDecimal qty1, BigDecimal qty2) { if(qty1.compareTo(qty2) < 0){ return "ture"; } else { - throw new UtilException("上架数量"+qty2+ "不能大于库存数量"+ qty1); + throw exception(QTY_ERRORR,qty2,qty1); } } + + private String validateProductputawayRequestMainImport(ProductputawayRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + mainDo.setRequestTime(LocalDateTime.now()); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); + if (requestsettingDO == null) { + message.append("未查找到制品上架申请的相关申请设置"); + } else { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + + if (businesstypeDO == null) { + message.append("根据单据设置未查找到制品上架申请的相关业务类型"); + } else { + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); + } + try { + ValidationUtils.validate(validator, mainDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + private ItembasicDO validatorItembasic(String itemCode) { + return itembasicService.selectItembasic(itemCode); + } + private void validatorLocation(String locationCode){ + locationService.selectLocation(locationCode); + } + private void IfInToLocationType( String fromlocationcode,BusinesstypeDO bus ){ + + jobUtils.ifInToLocationType(fromlocationcode,bus); + + } + List selectlocationReturnManagement(String ItemCode, String packingNumber, + String batch , String fromLocationCode , List business){ + List balanceDO = jobUtils.selectlocationReturnManagementAccuracy(ItemCode, packingNumber, + batch,fromLocationCode, business); + return balanceDO; + } + + private String validateProductputawayRequestDetailImport(ProductputawayRequestDetailDO detailDo, ProductputawayRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + try { + ItembasicDO item = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(item.getDesc1()); + detailDo.setItemDesc2(item.getDesc2()); + detailDo.setItemName(item.getName()); + detailDo.setProjectCode(item.getProject()); + try{ + Isuom(item.getUom(),detailDo.getUom()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + validatorLocation(detailDo.getFromLocationCode()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + IfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO); + DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(detailDo.getInventoryStatus()); + String value = dictDataRespDTO.getValue(); + String[] businessArray = value.split(","); + List business = Arrays.asList(businessArray); + try { + List balance = selectlocationReturnManagement(detailDo.getItemCode(), detailDo.getPackingNumber(), + detailDo.getBatch(), detailDo.getFromLocationCode(), business); + try{ + for(BalanceDO balance2 :balance){ + mainDo.setFromWarehouseCode(balance2.getWarehouseCode()); + mainDo.setDueTime(balance2.getExpireDate()); + } + BalanceDO blance1 = balance.get(0); + isqty(detailDo.getQty(),blance1.getQty()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + }catch(Exception ex) { + message.append(ex.getMessage()).append(","); + } + + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + + return message.toString(); + } + + public List importProductputawayRequestList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { throw exception(PRODUCTPUTAWAY_REQUEST_NOT_EXISTS); } List errorList = new ArrayList<>(); - datas.forEach(createReqVO -> { - String massage = ""; - boolean isError = false; - RequestsettingDO requestsetting = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); - createReqVO.setAutoCommit(requestsetting.getAutoCommit()); - createReqVO.setAutoAgree(requestsetting.getAutoAgree()); - createReqVO.setAutoExecute(requestsetting.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsetting.getDirectCreateRecord()); - + datas.forEach(createReqVO -> { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); + ProductputawayRequestMainDO mainDo = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validateProductputawayRequestMainImport(mainDo, businesstypeDO); List subList = createReqVO.getSubList(); List subDOList = ProductputawayRequestDetailConvert.INSTANCE.convertList03(subList); - // 新增子表数据 + boolean flag = true; for (ProductputawayRequestDetailDO detailDO : subDOList) { - if (mode != null) { - try { - validateProductputawayExists(null); - } catch (Exception ex) { - massage += ex.getMessage() + ","; - } - // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList - try { - ItembasicDO item = itembasicService.selectItembasic(detailDO.getItemCode()); - detailDO.setItemDesc1(item.getDesc1()); - detailDO.setItemDesc2(item.getDesc2()); - detailDO.setItemName(item.getName()); - detailDO.setProjectCode(item.getProject()); - try{ - Isuom(item.getUom(),detailDO.getUom()); - }catch (Exception ex) { - isError = true; - massage += ex.getMessage() + ","; - } - } catch (Exception ex) { - isError = true; - massage += ex.getMessage() + ","; - } - try{ - locationService.selectLocation(detailDO.getFromLocationCode()); - }catch (Exception ex) { - isError = true; - massage += ex.getMessage() + ","; - } - try{ - BusinesstypeDO bus = businesstypeService.selectBusinesstypeExist("ProductPutawayRequest"); - createReqVO.setBusinessType(bus.getCode()); - createReqVO.setFromLocationTypes(bus.getOutLocationTypes()); - createReqVO.setToLocationTypes(bus.getInLocationTypes()); - createReqVO.setFromAreaCodes(bus.getOutAreaCodes()); - createReqVO.setToAreaCodes(bus.getInAreaCodes()); - //TODO TB ---TB1 效验业务类型相关属性 - try{ - jobUtils.ifInToLocationType(detailDO.getFromLocationCode(),bus); - DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(detailDO.getInventoryStatus()); - String value = dictDataRespDTO.getValue(); - String[] businessArray = value.split(","); - List business = Arrays.asList(businessArray); - - List balance = jobUtils.selectlocationReturnManagementAccuracy(detailDO.getItemCode(), detailDO.getPackingNumber(), - detailDO.getBatch(), detailDO.getFromLocationCode(), business); - - try{ - BalanceDO blance1 = balance.get(0); - isqty(detailDO.getQty(),blance1.getQty()); - }catch (Exception ex) { - isError = true; - massage += ex.getMessage() + ","; - } - }catch (Exception ex) { - isError = true; - massage += ex.getMessage() + ","; - - } - }catch (Exception ex) { - isError = true; - massage += ex.getMessage() + ","; - } - if(isError) { - ProductputawayImportErrorVO importVO = ProductputawayRequestDetailConvert.INSTANCE.convert(createReqVO,detailDO); - importVO.setImportStatus("失败"); - importVO.setImportRemark(massage.substring(0, massage.length() - 1)); - errorList.add(importVO); - } - if(!isError) { - if( mode != 3) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); - createReqVO.setNumber(number); - ProductputawayRequestMainDO createObj = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO); - productputawayRequestMainMapper.insert(createObj); - productputawayRequestDetailMapper.insertBatch(subDOList); - } - else if(mode != 2){ - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); - createReqVO.setNumber(number); - ProductputawayRequestMainDO createObj = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO); - productputawayRequestMainMapper.updateById(createObj); - productputawayRequestDetailMapper.updateBatch(subDOList); - } - } + String messageDetail = validateProductputawayRequestDetailImport(detailDO, mainDo, businesstypeDO); + if (!"".equals(messageMain) ||!"".equals(messageDetail) ) { + ProductputawayImportErrorVO importErrorVO = ProductputawayRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; + } + } + //写入数据 + if (flag) { + String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_PUTAWAY_REQUEST.getCode()); + mainDo.setNumber(number); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + productputawayRequestMainMapper.insert(mainDo); + for (ProductputawayRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(number); } + productputawayRequestDetailMapper.insertBatch(subDOList); } }); return errorList; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java index e120bb5b..3582909c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java @@ -14,11 +14,16 @@ import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.issueRequest.vo.*; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO; import com.win.module.wms.controller.productscrapRequest.vo.*; import com.win.module.wms.convert.issueRequest.IssueRequestDetailConvert; import com.win.module.wms.convert.issueRequest.IssueRequestMainConvert; +import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert; 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.productputawayRequest.ProductputawayRequestDetailDO; +import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; import com.win.module.wms.dal.mysql.productscrapRequest.*; import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert; import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; @@ -105,30 +110,21 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa @Resource private RequestsettingService requestsettingService; - @Resource - private ShiftService shiftService; - - @Resource - private SupplieritemService supplieritemService; - - @Resource - private LocationService locationService; - - @Override public Long createProductscrapRequestMain(ProductscrapRequestMainCreateReqVO createReqVO) { - RequestsettingDO requestsettingDO = new RequestsettingDO(); - ProductscrapRequestMainDO productscrapRequestMainDO = validatorToCreate(createReqVO, requestsettingDO); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); + ProductscrapRequestMainDO productscrapRequestMainDO = validatorToCreate(createReqVO); //调用自动执行方法 if (RequestStatusEnum.HANDLING.getCode().equals(productscrapRequestMainDO.getStatus())) { } - trendsApi.createTrends(requestsettingDO.getId(), "IssueRequest", "增加了发料申请", TrendsTypeEnum.CREATE); + trendsApi.createTrends(requestsettingDO.getId(), "ProductScrapRequest", "增加了制品报废申请", TrendsTypeEnum.CREATE); return productscrapRequestMainDO.getId(); } - private ProductscrapRequestMainDO validatorToCreate(ProductscrapRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { - BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + private ProductscrapRequestMainDO validatorToCreate(ProductscrapRequestMainCreateReqVO createReqVO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest"); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); ProductscrapRequestMainDO productscrapRequestMainDO = validateMainMethod(createReqVO, businesstypeDO, requestsettingDO); //子表校验 List subList = createReqVO.getSubList(); @@ -154,27 +150,28 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa productscrapRequestDetailDO.setItemName(itembasic.getName()); productscrapRequestDetailDO.setProjectCode(itembasic.getProject()); Isuom(productscrapRequestDetailDO.getUom(), itembasic.getUom()); - jobUtils.selectItembasicExist(itembasic.getType(), businesstypeDO); + jobUtils.selectItembasicExist(itembasic.getCode(), businesstypeDO); jobUtils.ifInToLocationType(productscrapRequestDetailDO.getFromLocationCode(), businesstypeDO); jobUtils.ifOutInventoryStatuses(productscrapRequestDetailDO.getInventoryStatus(), businesstypeDO); List business = validatorbusinessbasic(productscrapRequestDetailDO.getInventoryStatus()); List balance = validatorbalance(productscrapRequestDetailDO.getItemCode(), productscrapRequestDetailDO.getPackingNumber(), productscrapRequestDetailDO.getBatch(), productscrapRequestDetailDO.getFromLocationCode(), business); BalanceDO blance1 = balance.get(0); + for(BalanceDO balance2 :balance) { + productscrapRequestMainDO.setFromWarehouseCode(balance2.getWarehouseCode()); + productscrapRequestMainDO.setDueTime(balance2.getExpireDate()); + } isqty(productscrapRequestDetailDO.getQty(), blance1.getQty()); - } private ProductscrapRequestMainDO validateMainMethod(ProductscrapRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { ProductscrapRequestMainDO productscrapRequestMainDO = ProductscrapRequestMainConvert.INSTANCE.convert(baseVO); productscrapRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); productscrapRequestMainDO.setRequestTime(LocalDateTime.now()); - requestsettingDO = requestsettingService.selectRequestsettingExist("ProductScrapRequest"); productscrapRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); productscrapRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); productscrapRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); productscrapRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest"); productscrapRequestMainDO.setBusinessType(businesstypeDO.getCode()); productscrapRequestMainDO.setFromLocationTypes(businesstypeDO.getInLocationTypes()); productscrapRequestMainDO.setFromAreaCodes(businesstypeDO.getInAreaCodes()); @@ -194,13 +191,34 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa @Override public void updateProductscrapRequestMain(ProductscrapRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ProductPutawayRequest"); // 校验存在 validateProductscrapRequestMainExists(updateReqVO.getId()); // 更新 - ProductscrapRequestMainDO updateObj = ProductscrapRequestMainConvert.INSTANCE.convert(updateReqVO); - productscrapRequestMainMapper.updateById(updateObj); + ProductscrapRequestMainDO productscrapRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); + if(RequestStatusEnum.HANDLING.getCode().equals(productscrapRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "ProductPutawayRequest", "增加了制品报废申请", TrendsTypeEnum.CREATE); + } + private ProductscrapRequestMainDO validatorToUpdate(ProductscrapRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRequest"); + ProductscrapRequestMainDO productputawayRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = updateReqVO.getSubList(); + if(subList!=null) { + List subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList05(subList); + for (ProductscrapRequestDetailDO productscrapRequestDetailDO : subDOList) { + validateDetailMethod(productscrapRequestDetailDO, businesstypeDO, productputawayRequestMainDO); + } + productscrapRequestDetailMapper.updateBatch(subDOList); + } + productscrapRequestMainMapper.updateById(productputawayRequestMainDO); + return productputawayRequestMainDO; + } + @Override public void deleteProductscrapRequestMain(Long id) { // 校验存在 @@ -211,9 +229,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa @Override public PageResult getProductscrapRequestMainSenior(CustomConditions conditions) { - return productscrapRequestMainMapper.selectSenior(conditions); - } private void validateProductscrapRequestMainExists(Long id) { @@ -242,7 +258,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa return productscrapRequestMainMapper.selectList(exportReqVO); } - private String validateIssueRequestMainImport(ProductscrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + private String validateProductscrapRequestMainImport(ProductscrapRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { StringBuilder message = new StringBuilder(); mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); mainDo.setRequestTime(LocalDateTime.now()); @@ -255,7 +271,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); } - if (businesstypeDO == null) { message.append("根据单据设置未查找到制品报废申请申请的相关业务类型"); } else { @@ -263,7 +278,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa mainDo.setFromLocationTypes(businesstypeDO.getInLocationTypes()); mainDo.setFromAreaCodes(businesstypeDO.getInAreaCodes()); } - return message.toString(); } @@ -372,7 +386,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa datas.forEach(createReqVO -> { BusinesstypeDO businesstypeDO = businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest"); ProductscrapRequestMainDO mainDo = ProductscrapRequestMainConvert.INSTANCE.convert(createReqVO); - String messageMain = validateIssueRequestMainImport(mainDo, businesstypeDO); + String messageMain = validateProductscrapRequestMainImport(mainDo, businesstypeDO); List subList = createReqVO.getSubList(); List subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList03(subList); // 是否有错误数据 @@ -390,7 +404,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa } //写入数据 if (flag) { - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_SCRAP_REQUEST.getCode()); mainDo.setNumber(number); mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); productscrapRequestMainMapper.insert(mainDo); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java index 88b63eec..1b7f634a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java @@ -78,17 +78,27 @@ public interface PurchaseMainService { * @return 采购订单主列表 */ List getPurchaseMainList(PurchaseMainExportReqVO exportReqVO); + /** * Order----VPur * 校验采购订单明细 - * @author chenfang - * @param pnumber 单据号 + * + * @param pnumber 单据号 * @param psupplierCode 供应商代码 - * @param pitemCode 物品代码 + * @param pitemCode 物品代码 * @return 采购订单子列表 + * @author chenfang */ - public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode,String poLine); + public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode, String poLine); public List importPurchaseMaintList(List datas, Integer mode, boolean updatePart); + /** + * 关闭采购订单申请主 + * + * @param id 采采购订单申请主ID + * @return 更新数量 + */ + Integer closePurchaseMain(Long id); + } 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 adcf5f48..d0f26d49 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 @@ -8,6 +8,8 @@ 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.dict.core.util.DictFrameworkUtils; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.wms.controller.purchase.vo.*; import com.win.module.wms.convert.purchase.PurchaseDetailConvert; import com.win.module.wms.convert.purchase.PurchaseMainConvert; @@ -22,7 +24,9 @@ import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import com.win.module.wms.dal.mysql.purchase.PurchaseDetailMapper; import com.win.module.wms.dal.mysql.purchase.PurchaseMainMapper; +import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanMainMapper; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.currencyexchange.CurrencyexchangeService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; @@ -34,6 +38,7 @@ import com.win.module.wms.service.supplieritem.SupplieritemService; 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.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; @@ -45,8 +50,7 @@ import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; -import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASE_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 采购订单主 Service 实现类 @@ -79,6 +83,11 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { private PurchaseDetailMapper purchaseDetailMapper; @Resource private RequestsettingService requestsettingService; + @Resource + private TrendsApi trendsApi; + @Resource + private PurchasePlanMainMapper purchasePlanMainMapper; + @Override public Long createPurchaseMain(PurchaseMainCreateReqVO createReqVO) { @@ -111,10 +120,12 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { purchaseMainMapper.deleteById(id); } - private void validatePurchaseMainExists(Long id) { - if (purchaseMainMapper.selectById(id) == null) { - throw exception(PURCHASE_MAIN_NOT_EXISTS); + private PurchaseMainDO validatePurchaseMainExists(Long id) { + PurchaseMainDO purchaseMainDO = purchaseMainMapper.selectById(id); + if (purchaseMainDO == null) { + throw exception(PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS); } + return purchaseMainDO; } @Override @@ -296,4 +307,23 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { } return errorList; } + + @Override + @Transactional + public Integer closePurchaseMain(Long id) { + // 校验存在存在下级单据 + PurchaseMainDO mainDO = validatePurchaseMainExists(id); + Long count = purchasePlanMainMapper.selectBySonNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.close(); + if(!flag) { + throw new ServiceException(PURCHASE_MAIN_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "plan_purchase_main", "关闭了采购订单申请", TrendsTypeEnum.UPDATE); + return purchaseMainMapper.updateById(mainDO); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java index 02688bdf..0654bc1e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainService.java @@ -29,7 +29,7 @@ public interface PurchaseclaimRequestMainService { * * @param updateReqVO 更新信息 */ - Integer updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO); + Long updatePurchaseclaimRequestMain(@Valid PurchaseclaimRequestMainUpdateReqVO updateReqVO); /** * 删除采购索赔申请主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java index de165a16..77f11147 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java @@ -1,14 +1,16 @@ package com.win.module.wms.service.purchaseclaimRequest; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.exceptions.UtilException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; 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.purchaseclaimRequest.vo.*; + import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert; import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; @@ -17,9 +19,11 @@ import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestDetailDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.dataobject.supplierdeliverRecord.SupplierdeliverRecordDetailDO; import com.win.module.wms.dal.mysql.purchaseclaimRequest.PurchaseclaimRequestDetailMapper; import com.win.module.wms.dal.mysql.purchaseclaimRequest.PurchaseclaimRequestMainMapper; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.purchase.PurchaseMainService; import com.win.module.wms.service.requestsetting.RequestsettingService; @@ -28,7 +32,6 @@ import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMai import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -76,42 +79,42 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest private JobUtils jobUtils; @Resource private RequestsettingService requestsettingService; - + @Resource + private TrendsApi trendsApi; @Override @Transactional public Long createPurchaseclaimRequestMain(PurchaseclaimRequestMainCreateReqVO createReqVO) { // 插入主表 - PurchaseclaimRequestMainDO purchaseclaimRequestMain = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); - purchaseclaimRequestMain.setNumber(number); - purchaseclaimRequestMainMapper.insert(purchaseclaimRequestMain); - // 插入子表 - List subList = createReqVO.getSubList(); - List subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList); - for (PurchaseclaimRequestDetailDO detailDO : subDOList) { - detailDO.setMasterId(purchaseclaimRequestMain.getId()); - detailDO.setNumber(number); + RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest"); + PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) { + } - purchaseclaimRequestDetailMapper.insertBatch(subDOList); - // 返回 - return purchaseclaimRequestMain.getId(); + trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE); + return purchaseclaimRequestMainDO.getId(); } @Override @Transactional - public Integer updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) { + public Long updatePurchaseclaimRequestMain(PurchaseclaimRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest"); // 校验存在,如子表需要也再此校验 - validatePurchaseclaimRequestMainExists(updateReqVO.getId()); + validatorPurchaseclaimRequestMainExists(updateReqVO.getId()); // 更新主表 - PurchaseclaimRequestMainDO updateObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(updateReqVO); - return purchaseclaimRequestMainMapper.updateById(updateObj); + PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); + if(RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE); + return purchaseclaimRequestMainDO.getId(); } @Override @Transactional public Integer deletePurchaseclaimRequestMain(Long id) { // 校验存在 - validatePurchaseclaimRequestMainExists(id); + validatorPurchaseclaimRequestMainExists(id); // 删除子表数据 Map map = new HashMap<>(); map.put("master_id", id); @@ -120,11 +123,9 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest return purchaseclaimRequestMainMapper.deleteById(id); } - private void validatePurchaseclaimRequestMainExists(Long id) { + private void validatorPurchaseclaimRequestMainExists(Long id) { PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = purchaseclaimRequestMainMapper.selectById(id); if (purchaseclaimRequestMainDO == null) { - return; - }else { throw exception(PURCHASECLAIM_REQUEST_MAIN_EXISTS); } } @@ -154,143 +155,207 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest return purchaseclaimRequestMainMapper.selectList(exportReqVO); } - private void selectUomExist(String itemUom,String uom) { - if(itemUom.equals(uom)){ - return; - }else { - throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom); - } - } - - private void ifPlanQtyBigThanOrderQty(String poLine, BigDecimal shippedQty, BigDecimal qty, BigDecimal orderQty) { - if(shippedQty.add(qty).compareTo(orderQty) > 0){ - throw new UtilException("订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty); - } - } @Override - @Transactional public List importPurchaseclaimRequestList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - String messageMain = ""; - //主表校验方法 - if(mode != null){ - try { - validatePurchaseclaimRequestMainExists(null); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } - - try { - supplierService.selectSupplier(createReqVO.getSupplierCode()); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + PurchaseclaimRequestMainDO mainDo = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validatorPurchaseclaimRequestMainImport(mainDo, businesstypeDO); + List subList = createReqVO.getSubList(); + List subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList); + // 是否有错误数据 + boolean flag = true; + for (PurchaseclaimRequestDetailDO detailDO : subDOList) { + String messageDetail = validatorPurchaseclaimRequestDetailImport(detailDO, mainDo); + if (!messageMain.isEmpty() || messageDetail.isEmpty()) { + PurchaseclaimRequestImportErrorVO importErrorVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; } - List subList = createReqVO.getSubList(); - List subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList); - // 新增子表数据 + } + //写入数据 + if (flag) { + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); + mainDo.setNumber(number); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + purchaseclaimRequestMainMapper.insert(mainDo); for (PurchaseclaimRequestDetailDO detailDO : subDOList) { - String messageDetail = ""; - // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList - //子表校验方法 - try { - supplierdeliverRecordMainService.selectSupplierdeliverRecordMainDO(createReqVO.getSupplierCode(), - detailDO.getNumber(), detailDO.getItemCode(), detailDO.getPoNumber(), detailDO.getPoLine()); - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); - detailDO.setProjectCode(itembasicDO.getProject()); - try { - selectUomExist(itembasicDO.getUom(), detailDO.getUom()); - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - } catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - try { - PurchaseDetailDO purchaseDetailDO = purchaseMainService.selectPurchaseDetailDoExist(detailDO.getNumber(), createReqVO.getSupplierCode() - , detailDO.getItemCode(), detailDO.getPoLine()); - try { - ifPlanQtyBigThanOrderQty(detailDO.getPoLine(), purchaseDetailDO.getShippedQty(), detailDO.getQty(), purchaseDetailDO.getOrderQty()); - }catch (Exception ex){ - messageDetail += ex.getMessage() + ","; - } - }catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - try{ - ValidationUtils.validate(validator,createReqVO); - }catch (Exception ex) { - messageDetail += ex.getMessage() + ","; - } - PurchaseclaimRequestDetailCreateReqVO purchaseclaimRequestDetailCreateReqVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert1(detailDO); - PurchaseclaimRequestImportErrorVO importVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseclaimRequestDetailCreateReqVO); - //进行子表的错误统计 - //主表没有错误 写入库里 - if(!messageMain.equals("") || !messageDetail.equals("")){ - importVO.setImportStatus("失败"); - messageMain = messageMain + messageDetail; - importVO.setImportRemark(messageMain.substring(0,messageMain.length()-1)); - errorList.add(importVO); - }else { - detailDO.setNumber(createReqVO.getNumber()); - detailDO.setMasterId(createReqVO.getId()); - detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP)); - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_REQUEST.getCode()); - createReqVO.setNumber(number); - } - - } - if(errorList.isEmpty()){ - // 判断如果不存在,在进行插入 - PurchaseclaimRequestMainDO existPurchaseclaimRequestMainDO = purchaseclaimRequestMainMapper.selectByAsnNumberAndSupplierCode(createReqVO.getAsnNumber(), createReqVO.getSupplierCode()); - if(existPurchaseclaimRequestMainDO == null && mode != 3){ - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest"); - if(businesstypeDO != null){ - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest"); - if(requestsettingDO != null){ - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); - purchaseclaimRequestMainMapper.insert(createObj); - purchaseclaimRequestDetailMapper.insertBatch(subDOList); - } - else if(existPurchaseclaimRequestMainDO != null && mode != 2){ - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest"); - if(businesstypeDO != null){ - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest"); - if(requestsettingDO != null){ - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); - purchaseclaimRequestMainMapper.updateById(createObj); - purchaseclaimRequestDetailMapper.updateBatch(subDOList); - } + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(number); + detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP)); } + purchaseclaimRequestDetailMapper.insertBatch(subDOList); } }); - //错误不为空并非部分更新,手工回滚 - if(!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } return errorList; } + + private void validatorSupplier(String SupplierCode){ + supplierService.selectSupplier(SupplierCode); + } + + private PurchaseDetailDO validatorPurchaseDetailDo(String pnumber, String psupplierCode, String pitemCode,String poLine){ + return purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode, poLine); + } + + private ItembasicDO validatorItembasic(String itemCode){ + return itembasicService.selectItembasic(itemCode); + } + + private void selectUomExist(String itemUom,String uom) { + if(!itemUom.equals(uom)){ + throw exception(UOM_EXCEPTION,"提示单位"+ uom + "错误,应该是" + itemUom); + } + } + + private SupplierdeliverRecordDetailDO validatorSupplierdeliverRecordMainDO(String psupplierCode, String pasnNumber, String pitemCode, String ppoNumber, String ppoLine){ + return supplierdeliverRecordMainService.selectSupplierdeliverRecordMainDO(psupplierCode,pasnNumber,pitemCode,ppoNumber,ppoLine); + } + + + private void ifPlanQtyBigThanOrderQty(String poLine, BigDecimal shippedQty, BigDecimal qty, BigDecimal orderQty) { + if(shippedQty.add(qty).compareTo(orderQty) > 0){ + throw exception(QTY_EXCEPTION,"订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty); + } + } + //新增校验 + private PurchaseclaimRequestMainDO validatorToCreate(PurchaseclaimRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(createReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList); + for (PurchaseclaimRequestDetailDO purchaseclaimRequestDetailDO : subDOList) { + validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); + purchaseclaimRequestMainDO.setNumber(number); + purchaseclaimRequestMainMapper.insert(purchaseclaimRequestMainDO); + purchaseclaimRequestDetailMapper.insertBatch(subDOList); + return purchaseclaimRequestMainDO; + } + + //修改校验 + private PurchaseclaimRequestMainDO validatorToUpdate(PurchaseclaimRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = updateReqVO.getSubList(); + List subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList05(subList); + for (PurchaseclaimRequestDetailDO purchaseclaimRequestDetailDO : subDOList) { + validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO); + } + purchaseclaimRequestMainMapper.updateById(purchaseclaimRequestMainDO); + purchaseclaimRequestDetailMapper.updateBatch(subDOList); + return purchaseclaimRequestMainDO; + } + //校验主表公共方法(适用于新增/修改) + private PurchaseclaimRequestMainDO validatorMainMethod(PurchaseclaimRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ + PurchaseclaimRequestMainDO mainDo = PurchaseclaimRequestMainConvert.INSTANCE.convert(baseVO); + this.validatorSupplier(mainDo.getSupplierCode()); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest"); + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseclaimRequest"); + mainDo.setBusinessType(businesstypeDO.getCode()); + return mainDo; + } + //校验子表公共方法(适用于新增/修改) + private void validatorDetailMethod(PurchaseclaimRequestDetailDO detailDo,PurchaseclaimRequestMainDO mainDo) { + validatorSupplierdeliverRecordMainDO(mainDo.getSupplierCode(), mainDo.getAsnNumber(), detailDo.getItemCode(), detailDo.getPoNumber(), detailDo.getPoLine()); + ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); + this.selectUomExist(itembasicDO.getUom(), detailDo.getUom()); + PurchaseDetailDO purchaseDetailDO = validatorPurchaseDetailDo(detailDo.getNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine()); + ifPlanQtyBigThanOrderQty(detailDo.getPoLine(), purchaseDetailDO.getShippedQty(), detailDo.getQty(), purchaseDetailDO.getOrderQty()); + } + + /** + * 校验主表导入,并赋值一些参数 + * + * @param mainDo + * @return + */ + private String validatorPurchaseclaimRequestMainImport(PurchaseclaimRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + try { + this.validatorSupplier(mainDo.getSupplierCode()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest"); + if (requestsettingDO == null) { + message.append("未查找到采购索赔申请的相关申请设置"); + } else { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseclaimRequest"); + if (businesstypeDO == null) { + message.append("根据单据设置未查找到采购索赔申请的相关业务类型"); + } else { + mainDo.setBusinessType(businesstypeDO.getCode()); + } + try { + ValidationUtils.validate(validator, mainDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + /** + * 校验子表导入,并赋值一些参数 + * + * @param detailDo + * @return + */ + private String validatorPurchaseclaimRequestDetailImport(PurchaseclaimRequestDetailDO detailDo, PurchaseclaimRequestMainDO mainDo) { + StringBuilder message = new StringBuilder(); + try { + if(!"".equals(mainDo.getAsnNumber())){ + validatorSupplierdeliverRecordMainDO(mainDo.getSupplierCode(), detailDo.getNumber(), detailDo.getItemCode(), detailDo.getPoNumber(), detailDo.getPoLine()); + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); + try { + this.selectUomExist(itembasicDO.getUom(), detailDo.getUom()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + PurchaseDetailDO purchaseDetailDO = validatorPurchaseDetailDo(detailDo.getNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine()); + try { + ifPlanQtyBigThanOrderQty(detailDo.getPoLine(), purchaseDetailDO.getShippedQty(), detailDo.getQty(), purchaseDetailDO.getOrderQty()); + }catch (Exception ex){ + message.append(ex.getMessage()).append(","); + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ValidationUtils.validate(validator, detailDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseprice/PurchasepriceService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseprice/PurchasepriceService.java index 3ef9bf25..7bd635bb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseprice/PurchasepriceService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseprice/PurchasepriceService.java @@ -61,7 +61,7 @@ public interface PurchasepriceService { * @param ids 编号 * @return 采购价格单列表 */ - List getPurchasepriceList(Collection ids); + List getPurchasepriceList(CustomConditions conditions); /** * 获得采购价格单分页 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseprice/PurchasepriceServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseprice/PurchasepriceServiceImpl.java index d73ee5f3..13bbcd02 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseprice/PurchasepriceServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseprice/PurchasepriceServiceImpl.java @@ -75,8 +75,8 @@ public class PurchasepriceServiceImpl implements PurchasepriceService { } @Override - public List getPurchasepriceList(Collection ids) { - return purchasepriceMapper.selectBatchIds(ids); + public List getPurchasepriceList(CustomConditions conditions) { + return purchasepriceMapper.selectSeniorList(conditions); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java index b527f9e3..cff53e2c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainService.java @@ -4,6 +4,7 @@ import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExportReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO; +import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainUpdateReqVO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import com.win.module.wms.dal.dataobject.supplierdeliverRecord.SupplierdeliverRecordDetailDO; import org.springframework.lang.Nullable; @@ -19,20 +20,6 @@ import java.util.Map; */ public interface PurchasereceiptJobMainService { - /** - * 承接任务 - * @param id - * @return - */ - Integer accept(Long id); - - /** - * 取消承接任务 - * @param id - * @return - */ - Integer cancelAccept(Long id); - /** * 获得用高级搜索户分页列表 * @@ -91,7 +78,7 @@ public interface PurchasereceiptJobMainService { * @param pstatus 状态 * @return 采购订单主列表 */ - public PurchasereceiptJobMainDO purchasereceiptJobMainDoStatusRight(String pnumber, String pstatus); + PurchasereceiptJobMainDO purchasereceiptJobMainDoStatusRight(String pnumber, String pstatus); /** *根据任务状态获取任务数量 @@ -99,4 +86,25 @@ public interface PurchasereceiptJobMainService { * @return */ Map getCountByStatus(@Nullable Collection types); + + /** + * 承接任务 + * @param id + * @return + */ + Integer accept(Long id); + + /** + * 取消承接任务 + * @param id + * @return + */ + Integer cancelAccept(Long id); + + /** + * 执行采购收货任务 + * @param purchasereceiptJobMainUpdateReqVO + * @return + */ + Integer excutePurchasereceiptJobMain(PurchasereceiptJobMainUpdateReqVO purchasereceiptJobMainUpdateReqVO); } 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 d67ab7f3..465d1550 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 @@ -1,26 +1,58 @@ package com.win.module.wms.service.purchasereceiptJob; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; 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.inspectRequest.vo.InspectRequestDetailCreateReqVO; +import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainCreateReqVO; +import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailUpdateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExportReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO; +import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainUpdateReqVO; +import com.win.module.wms.controller.rule.vo.RuleRespVO; +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.documentSwitch.SwitchDO; +import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordMainDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchaseshortageDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.supplierdeliverRecord.SupplierdeliverRecordDetailDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.purchasereceiptJob.PurchasereceiptJobMainMapper; +import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordDetailMapper; +import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordMainMapper; +import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchaseshortageDetailMapper; +import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestMainMapper; +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 com.win.module.wms.service.documentSwitch.SwitchService; +import com.win.module.wms.service.expectin.ExpectinService; +import com.win.module.wms.service.inspectRequest.InspectRequestMainService; +import com.win.module.wms.service.rule.RuleService; import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMainService; +import com.win.module.wms.service.transaction.TransactionService; +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 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; @@ -38,41 +70,35 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain @Resource private PurchasereceiptJobMainMapper purchasereceiptJobMainMapper; @Resource + private PurchasereceiptRecordMainMapper purchasereceiptRecordMainMapper; + @Resource + private PurchasereceiptRecordDetailMapper purchasereceiptRecordDetailMapper; + @Resource + private PurchaseshortageDetailMapper purchaseshortageDetailMapper; + @Resource private SupplierdeliverRecordMainService supplierdeliverRecordMainService; @Resource + private PurchasereceiptJobDetailService purchasereceiptJobDetailService; + @Resource + private PurchasereceiptRequestMainMapper purchasereceiptRequestMainMapper; + @Resource + private TransactionService transactionService; + @Resource private AdminUserApi userApi; - - @Override - public Integer accept(Long id) { - PurchasereceiptJobMainDO purchasereceiptJobMainDO = this.validatePurchasereceiptJobMainExists(id); - JobStatusState jobStatusState = new JobStatusState(purchasereceiptJobMainDO.getStatus()); - if(!jobStatusState.accept()) { - throw exception(PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR); - } - Long userId = getLoginUserId(); - AdminUserRespDTO userRespDTO = userApi.getUser(userId); - purchasereceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); - purchasereceiptJobMainDO.setAcceptUserId(String.valueOf(userId)); - purchasereceiptJobMainDO.setAcceptUserName(userRespDTO.getNickname()); - purchasereceiptJobMainDO.setAcceptTime(LocalDateTime.now()); - return purchasereceiptJobMainMapper.updateById(purchasereceiptJobMainDO); - } - - @Override - public Integer cancelAccept(Long id) { - PurchasereceiptJobMainDO purchasereceiptJobMainDO = this.validatePurchasereceiptJobMainExists(id); - JobStatusState jobStatusState = new JobStatusState(purchasereceiptJobMainDO.getStatus()); - if(!jobStatusState.cancelAccept()) { - throw exception(PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR); - } - Long userId = getLoginUserId(); - AdminUserRespDTO userRespDTO = userApi.getUser(userId); - purchasereceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); - purchasereceiptJobMainDO.setAcceptUserId(null); - purchasereceiptJobMainDO.setAcceptUserName(null); - purchasereceiptJobMainDO.setAcceptTime(null); - return purchasereceiptJobMainMapper.updateById(purchasereceiptJobMainDO); - } + @Resource + private TrendsApi trendsApi; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private JobUtils jobUtils; + @Resource + private SwitchService switchService; + @Resource + private InspectRequestMainService inspectRequestMainService; + @Resource + private RuleService ruleService; + @Resource + private ExpectinService expectinService; @Override public PageResult getPurchasereceiptJobMainSenior(CustomConditions conditions) { @@ -119,13 +145,13 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain @Override public PurchasereceiptJobMainDO purchasereceiptJobMainDoStatusRight(String pnumber, String pstatus) { - QueryWrapper queryWrapper = new QueryWrapper(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("number",pnumber); queryWrapper.eq("status",pstatus); PurchasereceiptJobMainDO purchasereceiptJobMainDO = purchasereceiptJobMainMapper.selectOne(queryWrapper); if(purchasereceiptJobMainDO != null){ return purchasereceiptJobMainDO; - }else { + } else { throw exception(PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR); } } @@ -138,4 +164,217 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain map.put("count", l.intValue()); return map; } + + @Override + @Transactional + public Integer accept(Long id) { + PurchasereceiptJobMainDO purchasereceiptJobMainDO = this.validatePurchasereceiptJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(purchasereceiptJobMainDO.getStatus()); + if(!jobStatusState.accept()) { + throw exception(PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR); + } + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + purchasereceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); + purchasereceiptJobMainDO.setAcceptUserId(String.valueOf(userId)); + purchasereceiptJobMainDO.setAcceptUserName(userRespDTO.getNickname()); + purchasereceiptJobMainDO.setAcceptTime(LocalDateTime.now()); + trendsApi.createTrends(id, "purchasereceiptJob", "承接了采购收货任务", TrendsTypeEnum.UPDATE); + return purchasereceiptJobMainMapper.updateById(purchasereceiptJobMainDO); + } + + @Override + @Transactional + public Integer cancelAccept(Long id) { + PurchasereceiptJobMainDO purchasereceiptJobMainDO = this.validatePurchasereceiptJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(purchasereceiptJobMainDO.getStatus()); + if(!jobStatusState.cancelAccept()) { + throw exception(PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR); + } + purchasereceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); + purchasereceiptJobMainDO.setAcceptUserId(null); + purchasereceiptJobMainDO.setAcceptUserName(null); + purchasereceiptJobMainDO.setAcceptTime(null); + trendsApi.createTrends(id, "purchasereceiptJob", "取消了采购收货任务", TrendsTypeEnum.UPDATE); + return purchasereceiptJobMainMapper.updateById(purchasereceiptJobMainDO); + } + + @Override + @Transactional + public Integer excutePurchasereceiptJobMain(PurchasereceiptJobMainUpdateReqVO purchasereceiptJobMainUpdateReqVO) { + //查询数据 + PurchasereceiptJobMainDO purchasereceiptJobMainDO = this.validatePurchasereceiptJobMainExists(purchasereceiptJobMainUpdateReqVO.getId()); + List subList = purchasereceiptJobDetailService.selectList(purchasereceiptJobMainDO.getId()); + JobStatusState jobStatusState = new JobStatusState(purchasereceiptJobMainDO.getStatus()); + boolean flag = jobStatusState.execute(); + if(!flag) { + throw new ServiceException(PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR); + } + //更新完成信息 + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + purchasereceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); + purchasereceiptJobMainDO.setCompleteTime(LocalDateTime.now()); + purchasereceiptJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId())); + purchasereceiptJobMainDO.setCompleteUserName(userRespDTO.getNickname()); + //更新任务表状态 + purchasereceiptJobMainMapper.updateById(purchasereceiptJobMainDO); + //创建采购收货记录主表 + PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = new PurchasereceiptRecordMainDO(); + BeanUtils.copyProperties(purchasereceiptJobMainDO, purchasereceiptRecordMainDO); + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_RECORD.getCode()); + purchasereceiptRecordMainDO.setNumber(number); + purchasereceiptRecordMainDO.setJobNumber(purchasereceiptJobMainDO.getNumber()); + purchasereceiptRecordMainDO.setId(null); + purchasereceiptRecordMainDO.setCreator(null); + purchasereceiptRecordMainDO.setCreateTime(null); + purchasereceiptRecordMainDO.setUpdater(null); + purchasereceiptRecordMainDO.setUpdateTime(null); + purchasereceiptRecordMainMapper.insert(purchasereceiptRecordMainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + List purchasereceiptJobDetailUpdateReqVOList = purchasereceiptJobMainUpdateReqVO.getSubList(); + List purchasereceiptRecordDetailDOList = new ArrayList<>(); + List purchaseshortageDetailDOList = new ArrayList<>(); + for(PurchasereceiptJobDetailDO purchasereceiptJobDetailDO : subList) { + boolean isExists = false; + PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVOTemp = null; + for(PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVO : purchasereceiptJobDetailUpdateReqVOList) { + if(purchasereceiptJobDetailDO.getId().equals(purchasereceiptJobDetailUpdateReqVO.getId())) { + purchasereceiptJobDetailUpdateReqVOTemp = purchasereceiptJobDetailUpdateReqVO; + isExists = true; + break; + } + } + if(isExists) { + PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = new PurchasereceiptRecordDetailDO(); + BeanUtils.copyProperties(purchasereceiptJobDetailDO, purchasereceiptRecordDetailDO); + purchasereceiptRecordDetailDO.setMasterId(purchasereceiptRecordMainDO.getId()); + purchasereceiptRecordDetailDO.setNumber(number); + purchasereceiptRecordDetailDO.setJobDetailId(String.valueOf(purchasereceiptJobDetailDO.getId())); + purchasereceiptRecordDetailDO.setFromBatch(purchasereceiptJobDetailDO.getBatch()); + purchasereceiptRecordDetailDO.setToBatch(purchasereceiptJobDetailUpdateReqVOTemp.getToBatch()); + purchasereceiptRecordDetailDO.setFromPackingNumber(purchasereceiptJobDetailDO.getPackingNumber()); + purchasereceiptRecordDetailDO.setToPackingNumber(purchasereceiptJobDetailUpdateReqVOTemp.getToPackingNumber()); + purchasereceiptRecordDetailDO.setQty(purchasereceiptJobDetailUpdateReqVOTemp.getHandleQty()); + purchasereceiptRecordDetailDO.setId(null); + purchasereceiptRecordDetailDO.setCreator(null); + purchasereceiptRecordDetailDO.setCreateTime(null); + purchasereceiptRecordDetailDO.setUpdater(null); + purchasereceiptRecordDetailDO.setUpdateTime(null); + purchasereceiptRecordDetailDOList.add(purchasereceiptRecordDetailDO); + //添加库存事务list + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVO); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptJob"); + transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setId(null); + //待确定库存事务信息 + transactionCreateReqVOList.add(transactionCreateReqVO); + } else {//生成缺货记录 + PurchaseshortageDetailDO purchaseshortageDetailDO = new PurchaseshortageDetailDO(); + BeanUtils.copyProperties(purchasereceiptJobDetailDO, purchaseshortageDetailDO); + purchaseshortageDetailDO.setMasterId(purchasereceiptRecordMainDO.getId()); + purchaseshortageDetailDO.setNumber(number); + purchaseshortageDetailDO.setJobDetailId(String.valueOf(purchasereceiptJobDetailDO.getId())); + purchaseshortageDetailDO.setId(null); + purchaseshortageDetailDO.setCreator(null); + purchaseshortageDetailDO.setCreateTime(null); + purchaseshortageDetailDO.setUpdater(null); + purchaseshortageDetailDO.setUpdateTime(null); + purchaseshortageDetailDOList.add(purchaseshortageDetailDO); + } + } + if(!purchasereceiptRecordDetailDOList.isEmpty()) { + purchasereceiptRecordDetailMapper.insertBatch(purchasereceiptRecordDetailDOList); + } + if(!purchaseshortageDetailDOList.isEmpty()) { + purchaseshortageDetailMapper.insertBatch(purchaseshortageDetailDOList); + } + List typeList = new ArrayList<>(); + typeList.add(JobStatusEnum.PENDING.getCode()); + typeList.add(JobStatusEnum.PROCESSING.getCode()); + Long count = purchasereceiptJobMainMapper.selectListCount(typeList, purchasereceiptJobMainDO.getRequestNumber()); + PurchasereceiptRequestMainDO purchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectByNumber(purchasereceiptJobMainDO.getRequestNumber()); + //申请单下所有任务全部完成 + if(count == 0) { + purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO); + } else if(purchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成 + purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode()); + purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO); + } + SwitchDO switchDO = switchService.selectSwitchExist("CreateInspectRequestAfterPurchaseReceiptRecordCreated"); + //需要增加到货检验申请 + if(switchDO.getEffectiveSetValue().equals("TRUE")) { + RuleRespVO ruleRespVO = ruleService.inspect(purchasereceiptRecordMainDO.getSupplierCode(), null); + JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration()); + //生成到货检验申请 + if(!"EXAMPT".equals(String.valueOf(jsonObject.get("InspectType")))) { + //按零件号和批次分组 + Map> listMap = new HashMap<>(); + for(PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO : purchasereceiptRecordDetailDOList) { + String key = purchasereceiptRecordDetailDO.getItemCode() + "_" + purchasereceiptRecordDetailDO.getFromBatch(); + List list = listMap.get(key); + if(list == null) { + list = new ArrayList<>(); + } + list.add(purchasereceiptRecordDetailDO); + listMap.put(key, list); + } + //组装到货检验数据 + for(String mapKey : listMap.keySet()) { + List purchasereceiptRecordDetailDOList1 = listMap.get(mapKey); + //创建主表信息 + PurchasereceiptRecordDetailDO recordDetailDO = purchasereceiptRecordDetailDOList1.get(0); + InspectRequestMainCreateReqVO inspectRequestMainCreateReqVO = new InspectRequestMainCreateReqVO(); + String inspectRecordNumber = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_RECORD.getCode()); + inspectRequestMainCreateReqVO.setNumber(inspectRecordNumber); + inspectRequestMainCreateReqVO.setPurchaseReceiptRecordNumber(number); + inspectRequestMainCreateReqVO.setSupplierCode(purchasereceiptRecordMainDO.getSupplierCode()); + inspectRequestMainCreateReqVO.setItemCode(recordDetailDO.getItemCode()); + inspectRequestMainCreateReqVO.setBatch(recordDetailDO.getFromBatch()); + inspectRequestMainCreateReqVO.setPoNumber(recordDetailDO.getPoNumber()); + inspectRequestMainCreateReqVO.setPoLine(recordDetailDO.getPoLine()); + inspectRequestMainCreateReqVO.setUom(recordDetailDO.getUom()); + inspectRequestMainCreateReqVO.setReceiveQty(recordDetailDO.getQty()); + List inspectRequestDetailCreateReqVOList = new ArrayList<>(); + //创建子表信息 + for(PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO : purchasereceiptRecordDetailDOList1) { + InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = new InspectRequestDetailCreateReqVO(); + inspectRequestDetailCreateReqVO.setPackingNumber(purchasereceiptRecordDetailDO.getFromPackingNumber()); + inspectRequestDetailCreateReqVO.setContainerNumber(purchasereceiptRecordDetailDO.getFromContainerNumber()); + inspectRequestDetailCreateReqVO.setInventoryStatus(purchasereceiptRecordDetailDO.getInventoryStatus()); + inspectRequestDetailCreateReqVO.setFromLocationCode(purchasereceiptRecordDetailDO.getFromLocationCode()); + inspectRequestDetailCreateReqVO.setItemCode(purchasereceiptRecordDetailDO.getItemCode()); + inspectRequestDetailCreateReqVO.setItemName(purchasereceiptRecordDetailDO.getItemName()); + inspectRequestDetailCreateReqVO.setItemDesc1(purchasereceiptRecordDetailDO.getItemDesc1()); + inspectRequestDetailCreateReqVO.setItemDesc2(purchasereceiptRecordDetailDO.getItemDesc2()); + inspectRequestDetailCreateReqVO.setProjectCode(purchasereceiptRecordDetailDO.getProjectCode()); + inspectRequestDetailCreateReqVO.setQty(purchasereceiptRecordDetailDO.getQty()); + inspectRequestDetailCreateReqVO.setUom(purchasereceiptRecordDetailDO.getUom()); + //合计数量 + inspectRequestMainCreateReqVO.setReceiveQty(inspectRequestMainCreateReqVO.getReceiveQty().add(inspectRequestDetailCreateReqVO.getQty())); + inspectRequestDetailCreateReqVOList.add(inspectRequestDetailCreateReqVO); + } + inspectRequestMainCreateReqVO.setSubList(inspectRequestDetailCreateReqVOList); + inspectRequestMainService.createInspectRequestMain(inspectRequestMainCreateReqVO); + } + } else {//免检,生成上架申请 + + } + } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //移除预计入 + expectinService.deleteExpectinByJobNumber(purchasereceiptJobMainDO.getNumber()); + //变更记录 + trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "执行了采购收货任务", TrendsTypeEnum.UPDATE); + return null; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java index ad4dd7fb..7590ec25 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchasereceiptRecordMainServiceImpl.java @@ -102,8 +102,10 @@ public class PurchasereceiptRecordMainServiceImpl implements PurchasereceiptReco public PurchasereceiptRecordDetailDO selectPurchasereceiptExist(String ppoNumber,String psupplierCode,String pNumber,String ppoLine,String pitemCode){ QueryWrapper queryWrapperMain = new QueryWrapper(); queryWrapperMain.eq("number",pNumber); + queryWrapperMain.eq("supplier_code",psupplierCode); + queryWrapperMain.eq("available","TRUE"); PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(queryWrapperMain); - if(purchasereceiptRecordMainDO != null && "TRUE".equals(purchasereceiptRecordMainDO.getAvailable()) && purchasereceiptRecordMainDO.getSupplierCode().equals(psupplierCode)){ + if(purchasereceiptRecordMainDO != null){ QueryWrapper queryWrapperDetail = new QueryWrapper(); queryWrapperDetail.eq("po_number",ppoNumber); queryWrapperDetail.eq("po_line",ppoLine); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchaseshortageDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchaseshortageDetailService.java new file mode 100644 index 00000000..e0d9e311 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchaseshortageDetailService.java @@ -0,0 +1,58 @@ +package com.win.module.wms.service.purchasereceiptRecord; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.purchasereceiptRecord.vo.*; +import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchaseshortageDetailDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; + +/** + * 采购收货记录子 Service 接口 + * + * @author 超级管理员 + */ +public interface PurchaseshortageDetailService { + + /** + * 创建采购收货记录子 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createPurchaseshortageDetail(@Valid PurchaseshortageDetailCreateReqVO createReqVO); + + /** + * 获得采购收货记录子 + * + * @param id 编号 + * @return 采购收货记录子 + */ + PurchaseshortageDetailDO getPurchaseshortageDetail(Long id); + + /** + * 获得采购收货记录子列表 + * + * @param ids 编号 + * @return 采购收货记录子列表 + */ + List getPurchaseshortageDetailList(Collection ids); + + /** + * 获得采购收货记录子分页 + * + * @param pageReqVO 分页查询 + * @return 采购收货记录子分页 + */ + PageResult getPurchaseshortageDetailPage(PurchaseshortageDetailPageReqVO pageReqVO); + + /** + * 获得采购收货记录子列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 采购收货记录子列表 + */ + List getPurchaseshortageDetailList(PurchaseshortageDetailExportReqVO exportReqVO); + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchaseshortageDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchaseshortageDetailServiceImpl.java new file mode 100644 index 00000000..87fa6590 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRecord/PurchaseshortageDetailServiceImpl.java @@ -0,0 +1,58 @@ +package com.win.module.wms.service.purchasereceiptRecord; + +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchaseshortageDetailCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchaseshortageDetailExportReqVO; +import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchaseshortageDetailPageReqVO; +import com.win.module.wms.convert.purchasereceiptRecord.PurchaseshortageDetailConvert; +import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchaseshortageDetailDO; +import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchaseshortageDetailMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; + +/** + * 采购收货记录子 Service 实现类 + * + * @author 超级管理员 + */ +@Service +@Validated +public class PurchaseshortageDetailServiceImpl implements PurchaseshortageDetailService { + + @Resource + private PurchaseshortageDetailMapper purchaseshortageDetailMapper; + + @Override + public Long createPurchaseshortageDetail(PurchaseshortageDetailCreateReqVO createReqVO) { + // 插入 + PurchaseshortageDetailDO purchaseshortageDetail = PurchaseshortageDetailConvert.INSTANCE.convert(createReqVO); + purchaseshortageDetailMapper.insert(purchaseshortageDetail); + // 返回 + return purchaseshortageDetail.getId(); + } + + @Override + public PurchaseshortageDetailDO getPurchaseshortageDetail(Long id) { + return purchaseshortageDetailMapper.selectById(id); + } + + @Override + public List getPurchaseshortageDetailList(Collection ids) { + return purchaseshortageDetailMapper.selectBatchIds(ids); + } + + @Override + public PageResult getPurchaseshortageDetailPage(PurchaseshortageDetailPageReqVO pageReqVO) { + return purchaseshortageDetailMapper.selectPage(pageReqVO); + } + + @Override + public List getPurchaseshortageDetailList(PurchaseshortageDetailExportReqVO exportReqVO) { + return purchaseshortageDetailMapper.selectList(exportReqVO); + } + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java index c987accc..ac394219 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java @@ -12,6 +12,7 @@ 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.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailCreateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainCreateReqVO; import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchasereceiptRecordDetailCreateReqVO; @@ -34,8 +35,10 @@ import com.win.module.wms.dal.mysql.purchasereceiptJob.PurchasereceiptJobDetailM import com.win.module.wms.dal.mysql.purchasereceiptJob.PurchasereceiptJobMainMapper; import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestDetailMapper; import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestMainMapper; +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.expectin.ExpectinService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.purchase.PurchaseMainService; @@ -105,6 +108,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq private PurchasereceiptRecordMainService purchasereceiptRecordMainService; @Resource private PurchasereceiptRecordDetailService purchasereceiptRecordDetailService; + @Resource + private ExpectinService expectinService; @Override @Transactional @@ -125,6 +130,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); //调用自动执行方法 if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { this.generateJob(mainDO, subDOList); @@ -136,7 +142,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq } purchasereceiptRequestDetailMapper.insertBatch(subDOList); //增加操作记录 - trendsApi.createTrends(requestsettingDO.getId(), "purchasereceiptRequestMain", "增加了采购收货", TrendsTypeEnum.CREATE); + trendsApi.createTrends(requestsettingDO.getId(), "purchasereceiptRequestMain", "增加了采购收货申请", TrendsTypeEnum.CREATE); // 返回 return mainDO.getId(); } @@ -230,7 +236,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq boolean flag = true; for (PurchasereceiptRequestDetailDO detailDO : subDOList) { String messageDetail = this.validatePurchasereceiptRequestDetailImport(mainDO, detailDO); - if(!messageMain.isEmpty() || messageDetail.isEmpty()) { + if(!messageMain.isEmpty() || !messageDetail.isEmpty()) { PurchasereceiptRequestMainImportErrorVO importErrorVO = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); importErrorVO.setImportStatus("失败"); messageMain = messageMain + messageDetail; @@ -246,7 +252,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq //if(existPurchasereceiptRequestMainDO == null && mode != 3) {//新增 purchasereceiptRequestMainMapper.insert(mainDO); //增加操作记录 - trendsApi.createTrends(mainDO.getId(), "purchasereceiptRequestMain", "导入了采购收货", TrendsTypeEnum.CREATE); + trendsApi.createTrends(mainDO.getId(), "purchasereceiptRequestMain", "导入了采购收货申请", TrendsTypeEnum.CREATE); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); mainDO.setNumber(number); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); @@ -256,6 +262,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); for (PurchasereceiptRequestDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDO.getId()); detailDO.setNumber(number); @@ -305,7 +312,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); } mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 - trendsApi.createTrends(id, "purchasereceiptRequest", "关闭了采购收货", TrendsTypeEnum.UPDATE); + trendsApi.createTrends(id, "purchasereceiptRequest", "关闭了采购收货申请", TrendsTypeEnum.UPDATE); return purchasereceiptRequestMainMapper.updateById(mainDO); } @@ -323,7 +330,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { this.generateJob(mainDO, purchasereceiptRequestDetailMapper.selectList(mainDO.getId())); } - trendsApi.createTrends(id, "purchasereceiptRequest", "提交了采购收货", TrendsTypeEnum.UPDATE); + trendsApi.createTrends(id, "purchasereceiptRequest", "提交了采购收货申请", TrendsTypeEnum.UPDATE); return purchasereceiptRequestMainMapper.updateById(mainDO); } @@ -342,7 +349,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { this.generateJob(mainDO, purchasereceiptRequestDetailMapper.selectList(mainDO.getId())); } - trendsApi.createTrends(id, "purchasereceiptRequest", "审批同意了采购收货", TrendsTypeEnum.UPDATE); + trendsApi.createTrends(id, "purchasereceiptRequest", "审批同意了采购收货申请", TrendsTypeEnum.UPDATE); return purchasereceiptRequestMainMapper.updateById(mainDO); } @@ -359,7 +366,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq mainDO.setStatus(requestStatusState.getState().getCode()); //调用执行方法 this.generateJob(mainDO, purchasereceiptRequestDetailMapper.selectList(mainDO.getId())); - trendsApi.createTrends(id, "purchasereceiptRequest", "执行了采购收货", TrendsTypeEnum.UPDATE); + trendsApi.createTrends(id, "purchasereceiptRequest", "执行了采购收货申请", TrendsTypeEnum.UPDATE); return purchasereceiptRequestMainMapper.updateById(mainDO); } @@ -374,7 +381,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); } mainDO.setStatus(requestStatusState.getState().getCode()); - trendsApi.createTrends(id, "purchasereceiptRequest", "审批拒绝了采购收货", TrendsTypeEnum.UPDATE); + trendsApi.createTrends(id, "purchasereceiptRequest", "审批拒绝了采购收货申请", TrendsTypeEnum.UPDATE); return purchasereceiptRequestMainMapper.updateById(mainDO); } @@ -410,11 +417,9 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq * @param mainDO 采购收货主 * @param detailDOList 采购收货子 */ - @Transactional private void generateJob(PurchasereceiptRequestMainDO mainDO, List detailDOList) { - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); //跳过任务直接生成记录 - if("TRUE".equals(requestsettingDO.getDirectCreateRecord())) { + if("TRUE".equals(mainDO.getDirectCreateRecord())) { PurchasereceiptRecordMainCreateReqVO purchasereceiptRecordMainCreateReqVO = new PurchasereceiptRecordMainCreateReqVO(); BeanUtils.copyProperties(mainDO, purchasereceiptRecordMainCreateReqVO); purchasereceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); @@ -488,33 +493,46 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq for(int i = 0; i < purchasereceiptRequestDetailDOList.size(); i++) { //PurchasereceiptJobMainCreateReqVO不包含id、创建人等信息 PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO; - List subList = null; + List subList = new ArrayList<>(); if(i % count == 0) { purchasereceiptJobMainCreateReqVO = PurchasereceiptJobMainConvert.INSTANCE.convert(mainDO); subList = new ArrayList<>(); purchasereceiptJobMainCreateReqVO.setSubList(subList); purchasereceiptJobMainCreateReqVOList.add(purchasereceiptJobMainCreateReqVO); } - PurchasereceiptJobDetailCreateReqVO purchasereceiptJobDetailCreateReqVO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptRequestDetailDOList.get(i)); + PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO = purchasereceiptRequestDetailDOList.get(i); + PurchasereceiptJobDetailCreateReqVO purchasereceiptJobDetailCreateReqVO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptRequestDetailDO); + purchasereceiptJobDetailCreateReqVO.setToLocationCode(purchasereceiptRequestDetailDO.getDefaultToLocationCode()); subList.add(purchasereceiptJobDetailCreateReqVO); } } + List createReqVOList = new ArrayList<>(); //把任务插入数据库 for(PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO : purchasereceiptJobMainCreateReqVOList) { PurchasereceiptJobMainDO purchasereceiptJobMainDO = PurchasereceiptJobMainConvert.INSTANCE.convert(purchasereceiptJobMainCreateReqVO); + purchasereceiptJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_JOB.getCode()); purchasereceiptJobMainDO.setNumber(number); //增加业务类型 BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptJob"); purchasereceiptJobMainDO.setBusinessType(businesstypeDO.getCode()); purchasereceiptJobMainMapper.insert(purchasereceiptJobMainDO); - trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "采购收货申请生成采购收货任务", TrendsTypeEnum.CREATE); + List purchasereceiptJobDetailDOList = new ArrayList<>(); for(PurchasereceiptJobDetailCreateReqVO purchasereceiptJobDetailCreateReqVO : purchasereceiptJobMainCreateReqVO.getSubList()) { PurchasereceiptJobDetailDO purchasereceiptJobDetailDO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptJobDetailCreateReqVO); purchasereceiptJobDetailDO.setNumber(number); purchasereceiptJobDetailDO.setMasterId(purchasereceiptJobMainDO.getId()); - purchasereceiptJobDetailMapper.insert(purchasereceiptJobDetailDO); + purchasereceiptJobDetailDOList.add(purchasereceiptJobDetailDO); + //预计入 + ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); + BeanUtils.copyProperties(purchasereceiptJobDetailDO, expectinCreateReqVO); + expectinCreateReqVO.setJobNumber(number); + createReqVOList.add(expectinCreateReqVO); } + purchasereceiptJobDetailMapper.insertBatch(purchasereceiptJobDetailDOList); + //增加预计入 + expectinService.createExpectin(createReqVOList); + trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "采购收货申请生成采购收货任务", TrendsTypeEnum.CREATE); } } @@ -529,7 +547,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq ValidationUtils.validate(validator, mainDo); } catch (Exception ex) { message.append(ex.getMessage()).append(","); - }try { + } + try { this.validateSupplier(mainDo); } catch (Exception ex) { message.append(ex.getMessage()).append(","); @@ -569,8 +588,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq } catch (Exception e) { message.append(e.getMessage()).append(","); } - if(!itembasicDO.getUom().equals(itembasicDO.getUom())) { - message.append("计量单位【").append(itembasicDO.getUom()).append("】错误,应该是【").append(itembasicDO.getUom()).append("】").append(","); + if(!detailDo.getUom().equals(itembasicDO.getUom())) { + message.append("计量单位【").append(detailDo.getUom()).append("】错误,应该是【").append(itembasicDO.getUom()).append("】").append(","); } try { this.validateItemPacking(detailDo); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainService.java index cbc73432..9e99fb18 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainService.java @@ -4,10 +4,7 @@ import java.util.*; import javax.validation.*; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainCreateReqVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExportReqVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainPageReqVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainUpdateReqVO; +import com.win.module.wms.controller.purchasereturnRequest.vo.*; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; import com.win.framework.common.pojo.PageResult; @@ -77,5 +74,14 @@ public interface PurchasereturnRequestMainService { * @return 采购退货申请主列表 */ List getPurchasereturnRequestMainList(PurchasereturnRequestMainExportReqVO exportReqVO); + /** + * 批量导入采购退货申请主信息 + * + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importPurchasereturnRequestList(List datas, Integer mode, boolean updatePart); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java index c88848eb..7536f35e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java @@ -1,14 +1,41 @@ package com.win.module.wms.service.purchasereturnRequest; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainCreateReqVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainExportReqVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainPageReqVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainUpdateReqVO; +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.dict.DictDataApi; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.purchasereturnRequest.vo.*; +import com.win.module.wms.convert.purchasereturnRequest.PurchasereturnRequestDetailConvert; +import com.win.module.wms.dal.dataobject.balance.BalanceDO; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordMainDO; +import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestDetailDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordMainMapper; +import com.win.module.wms.dal.mysql.purchasereturnRequest.PurchasereturnRequestDetailMapper; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordMainService; +import com.win.module.wms.service.requestsetting.RequestsettingService; +import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.validation.Validator; + import org.springframework.validation.annotation.Validated; +import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.*; import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO; @@ -32,22 +59,62 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque @Resource private PurchasereturnRequestMainMapper purchasereturnRequestMainMapper; + @Resource + private PurchasereturnRequestDetailMapper purchasereturnRequestDetailMapper; + + @Resource + private Validator validator; + @Resource + private ItembasicService itembasicService; + + @Resource + private DictDataApi dictDataApi; + + @Resource + private JobUtils jobUtils; + + @Resource + private PurchasereceiptRecordMainService purchasereceiptRecordMainService; + + @Resource + private PurchasereceiptRecordMainMapper purchasereceiptRecordMainMapper; + + @Resource + private SerialNumberApi serialNumberApi; + + @Resource + private RequestsettingService requestsettingService; + + @Resource + private LocationService locationService; + @Resource + private TrendsApi trendsApi; @Override public Long createPurchasereturnRequestMain(PurchasereturnRequestMainCreateReqVO createReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest"); // 插入 PurchasereturnRequestMainDO purchasereturnRequestMain = PurchasereturnRequestMainConvert.INSTANCE.convert(createReqVO); - purchasereturnRequestMainMapper.insert(purchasereturnRequestMain); + PurchasereturnRequestMainDO purchasereturnRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(purchasereturnRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "PurchasereturnRequest", "增加了采购退货申请", TrendsTypeEnum.CREATE); // 返回 return purchasereturnRequestMain.getId(); } @Override public void updatePurchasereturnRequestMain(PurchasereturnRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest"); // 校验存在 validatePurchasereturnRequestMainExists(updateReqVO.getId()); - // 更新 - PurchasereturnRequestMainDO updateObj = PurchasereturnRequestMainConvert.INSTANCE.convert(updateReqVO); - purchasereturnRequestMainMapper.updateById(updateObj); + // 更新主表 + PurchasereturnRequestMainDO purchasereturnRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); + if(RequestStatusEnum.HANDLING.getCode().equals(purchasereturnRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "PurchasereturnRequest", "增加了采购退货申请", TrendsTypeEnum.CREATE); } @Override public PageResult getPurchasereturnRequestMainSenior(CustomConditions conditions) { @@ -87,4 +154,266 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque return purchasereturnRequestMainMapper.selectList(exportReqVO); } + + + @Override + public List importPurchasereturnRequestList(List datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(PURCHASERETURN_REQUEST_IMPORT_LIST_IS_EMPTY); + } + List errorList = new ArrayList<>(); + datas.forEach(createReqVO -> { + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = new PurchasereceiptRecordMainDO(); + PurchasereturnRequestMainDO mainDo = PurchasereturnRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validatorPurchasereturnRequestMainImport(mainDo); + List subList = createReqVO.getSubList(); + List subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList03(subList); + // 是否有错误数据 + boolean flag = true; + for (PurchasereturnRequestDetailDO detailDO : subDOList) { + String messageDetail = validatorPurchasereturnRequestDetailImport(detailDO, mainDo,businesstypeDO); + if (!messageMain.isEmpty() || messageDetail.isEmpty()) { + PurchasereturnRequestImportErrorVO importErrorVO = PurchasereturnRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; + } + } + //写入数据 + if (flag) { + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); + mainDo.setNumber(number); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + mainDo.setPpNumber(purchasereceiptRecordMainDO.getPpNumber()); + mainDo.setAsnNumber(purchasereceiptRecordMainDO.getAsnNumber()); + mainDo.setRequestTime(LocalDateTime.now()); + purchasereturnRequestMainMapper.insert(mainDo); + for (PurchasereturnRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(number); + detailDO.setToLocationCode("PUR_INTRANSIT"); + } + purchasereturnRequestDetailMapper.insertBatch(subDOList); + } + }); + return errorList; + } + + private void ifUomSuccess(String itemUom,String uom) { + if(!itemUom.equals(uom)){ + throw exception(UOM_EXCEPTION,"提示单位"+ uom + "错误,应该是" + itemUom); + } + } + + private void ifdetailQtyBigThanQty(BigDecimal detailQty, BigDecimal qty) { + if(detailQty.compareTo(qty) > 0){ + throw exception(QTY_EXCEPTION,"退货数量"+ qty + "不能大于于收货数量" + detailQty); + } + } + private ItembasicDO validatorItembasic(String itemCode){ + return itembasicService.selectItembasic(itemCode); + } + + private void validatorIfInType(String itemType,BusinesstypeDO businesstypeDO){ + jobUtils.ifInType(itemType, businesstypeDO); + } + private void validatorIfInToLocationType(String fromLocationCode,BusinesstypeDO businesstypeDO){ + jobUtils.ifInToLocationType(fromLocationCode, businesstypeDO); + } + + private void validatorLocation(String fromLocationCode){ + locationService.selectLocation(fromLocationCode); + } + + private void requestsettingAndBusinesstypeSet(PurchasereturnRequestMainDO mainDo) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest"); + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReturnRequest"); + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); + } + private BigDecimal validatorBalance(PurchasereturnRequestDetailDO detailDo,PurchasereturnRequestMainDO mainDO){ + ArrayList inventoryStatus = new ArrayList(); + inventoryStatus.add(detailDo.getInventoryStatus()); + BigDecimal bigDecimal = new BigDecimal(0); + List banlance = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus); + if(banlance != null) { + for (BalanceDO balanceDO : banlance) { + bigDecimal = bigDecimal.add(balanceDO.getQty()); + mainDO.setFromWarehouseCode(balanceDO.getWarehouseCode()); + } + } + return bigDecimal; + } + // 新增校验 + private PurchasereturnRequestMainDO validatorToCreate(PurchasereturnRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = new PurchasereceiptRecordMainDO(); + PurchasereturnRequestMainDO purchasereturnRequestMainDO = validatorMainMethod(createReqVO,purchasereceiptRecordMainDO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList03(subList); + for (PurchasereturnRequestDetailDO purchasereturnRequestDetailDO : subDOList) { + validatorDetailMethod(purchasereturnRequestDetailDO,purchasereturnRequestMainDO,purchasereceiptRecordMainDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); + purchasereturnRequestMainDO.setNumber(number); + purchasereturnRequestMainDO.setPpNumber(purchasereceiptRecordMainDO.getPpNumber()); + purchasereturnRequestMainDO.setAsnNumber(purchasereceiptRecordMainDO.getAsnNumber()); + purchasereturnRequestMainDO.setRequestTime(LocalDateTime.now()); + purchasereturnRequestMainMapper.insert(purchasereturnRequestMainDO); + purchasereturnRequestDetailMapper.insertBatch(subDOList); + return purchasereturnRequestMainDO; + } + + //修改校验 + private PurchasereturnRequestMainDO validatorToUpdate(PurchasereturnRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { + PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = new PurchasereceiptRecordMainDO(); + PurchasereturnRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(updateReqVO,purchasereceiptRecordMainDO); + //子表校验 + List subList = updateReqVO.getSubList(); + List subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList05(subList); + for (PurchasereturnRequestDetailDO purchaseclaimRequestDetailDO : subDOList) { + validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO,purchasereceiptRecordMainDO); + } + purchasereturnRequestMainMapper.updateById(purchaseclaimRequestMainDO); + purchasereturnRequestDetailMapper.updateBatch(subDOList); + return purchaseclaimRequestMainDO; + } + //校验主表公共方法(适用于新增/修改) + private PurchasereturnRequestMainDO validatorMainMethod(PurchasereturnRequestMainBaseVO baseVO,PurchasereceiptRecordMainDO purchasereceiptRecordMainDO){ + PurchasereturnRequestMainDO mainDo = PurchasereturnRequestMainConvert.INSTANCE.convert(baseVO); + requestsettingAndBusinesstypeSet(mainDo); + return mainDo; + } + //校验子表公共方法(适用于新增/修改) + private void validatorDetailMethod(PurchasereturnRequestDetailDO detailDo,PurchasereturnRequestMainDO mainDo,PurchasereceiptRecordMainDO purchasereceiptRecordMainDO) { + ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); + validatorLocation(detailDo.getFromLocationCode()); + PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), detailDo.getPoLine(), detailDo.getItemCode()); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("id", purchasereceiptRecordDetailDO.getMasterId()); + purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(queryWrapper); + ifdetailQtyBigThanQty(purchasereceiptRecordDetailDO.getQty(), detailDo.getQty()); + BigDecimal bigDecimal = validatorBalance(detailDo,mainDo); + ifdetailQtyBigThanQty(detailDo.getQty(),bigDecimal); + } + + /** + * 校验主表导入,并赋值一些参数 + * + * @param mainDo + * @return + */ + private String validatorPurchasereturnRequestMainImport(PurchasereturnRequestMainDO mainDo) { + StringBuilder message = new StringBuilder(); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasereturnRequest"); + if (requestsettingDO == null) { + message.append("未查找到采购退货申请的相关申请设置"); + } + else { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReturnRequest"); + if (businesstypeDO == null) { + message.append("根据单据设置未查找到采购退货申请的相关业务类型"); + } + else { + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); + } + try { + ValidationUtils.validate(validator, mainDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + /** + * 校验子表导入,并赋值一些参数 + * + * @param detailDo + * @return + */ + private String validatorPurchasereturnRequestDetailImport(PurchasereturnRequestDetailDO detailDo, PurchasereturnRequestMainDO mainDo,BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + try { + ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + try { + this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + this.validatorIfInType(itembasicDO.getType(), businesstypeDO); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + validatorIfInToLocationType(detailDo.getFromLocationCode(),businesstypeDO); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + validatorLocation(detailDo.getFromLocationCode()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordMainService.selectPurchasereceiptExist(detailDo.getPoNumber(), mainDo.getSupplierCode(), mainDo.getPurchaseReceiptRecordNumber(), detailDo.getPoLine(), detailDo.getItemCode()); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("id", purchasereceiptRecordDetailDO.getMasterId()); + PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(queryWrapper); + try { + ifdetailQtyBigThanQty(purchasereceiptRecordDetailDO.getQty(), detailDo.getQty()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + BigDecimal bigDecimal = validatorBalance(detailDo,mainDo); + try{ + ifdetailQtyBigThanQty(detailDo.getQty(),bigDecimal); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ValidationUtils.validate(validator, detailDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java index ec601c6e..f657af70 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainService.java @@ -2,10 +2,7 @@ package com.win.module.wms.service.putawayRequest; import java.util.*; import javax.validation.*; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainCreateReqVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainExportReqVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainPageReqVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainUpdateReqVO; +import com.win.module.wms.controller.putawayRequest.vo.*; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO; import com.win.framework.common.pojo.PageResult; @@ -78,4 +75,6 @@ public interface PutawayRequestMainService { */ List getPutawayRequestMainList(PutawayRequestMainExportReqVO exportReqVO); + public List importPutawayRequestList(List datas, Integer mode, boolean updatePart); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java index 46f34c0c..c570bca4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/putawayRequest/PutawayRequestMainServiceImpl.java @@ -1,14 +1,38 @@ package com.win.module.wms.service.putawayRequest; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainCreateReqVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainExportReqVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainPageReqVO; -import com.win.module.wms.controller.putawayRequest.vo.PutawayRequestMainUpdateReqVO; +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.putawayRequest.vo.*; +import com.win.module.wms.convert.putawayRequest.PutawayRequestDetailConvert; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; +import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestDetailDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.mysql.putawayRequest.PutawayRequestDetailMapper; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.service.customer.CustomerService; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.purchase.PurchaseMainService; +import com.win.module.wms.service.requestsetting.RequestsettingService; +import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.validation.Validator; + +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.time.LocalDateTime; import java.util.*; import com.win.module.wms.dal.dataobject.putawayRequest.PutawayRequestMainDO; @@ -31,26 +55,60 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService @Resource private PutawayRequestMainMapper putawayRequestMainMapper; + @Resource + private PutawayRequestDetailMapper putawayRequestDetailMapper; + @Resource + private Validator validator; + @Resource + private ItembasicService itembasicService; + @Resource + private PurchaseMainService purchaseMainService; + @Resource + private LocationService locationService; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private RequestsettingService requestsettingService; + @Resource + private CustomerService customerService; + @Resource + private TrendsApi trendsApi; + //TODO 主表从仓库代码,到仓库代码暂未赋值 @Override + @Transactional public Long createPutawayRequestMain(PutawayRequestMainCreateReqVO createReqVO) { - // 插入 - PutawayRequestMainDO putawayRequestMain = PutawayRequestMainConvert.INSTANCE.convert(createReqVO); - putawayRequestMainMapper.insert(putawayRequestMain); - // 返回 - return putawayRequestMain.getId(); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PutawayRequest"); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PutawayRequest"); + PutawayRequestMainDO putawayRequestMainDO = validatorToCreate(createReqVO, businesstypeDO,requestsettingDO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(putawayRequestMainDO.getStatus())) { + + } + trendsApi.createTrends(requestsettingDO.getId(), "PutawayRequest", "增加了上架申请", TrendsTypeEnum.CREATE); + return putawayRequestMainDO.getId(); } @Override + @Transactional public void updatePutawayRequestMain(PutawayRequestMainUpdateReqVO updateReqVO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PutawayRequest"); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PutawayRequest"); // 校验存在 validatePutawayRequestMainExists(updateReqVO.getId()); // 更新 - PutawayRequestMainDO updateObj = PutawayRequestMainConvert.INSTANCE.convert(updateReqVO); - putawayRequestMainMapper.updateById(updateObj); + PutawayRequestMainDO putawayRequestMainDO = validatorMainMethod(updateReqVO, businesstypeDO,requestsettingDO); + if(putawayRequestMainDO.getStatus().equals(RequestStatusEnum.NEW.getCode())) { + throw exception(PURCHASERECEIPT_REQUEST_STATUS_NOT_NEW); + } + trendsApi.createTrends(updateReqVO.getId(), "PutawayRequestMain", putawayRequestMainDO.toString(), TrendsTypeEnum.UPDATE); + putawayRequestMainMapper.updateById(putawayRequestMainDO); } @Override + @Transactional public void deletePutawayRequestMain(Long id) { // 校验存在 validatePutawayRequestMainExists(id); @@ -88,4 +146,225 @@ public class PutawayRequestMainServiceImpl implements PutawayRequestMainService return putawayRequestMainMapper.selectList(exportReqVO); } + @Override + @Transactional + public List importPutawayRequestList(List datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(PUTAWAY_REQUEST_IMPORT_LIST_IS_EMPTY); + } + List errorList = new ArrayList<>(); + datas.forEach(createReqVO -> { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PutawayRequest"); + PutawayRequestMainDO mainDo = PutawayRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validatorPutawayRequestMainImport(mainDo,businesstypeDO); + List subList = createReqVO.getSubList(); + List subDOList = PutawayRequestDetailConvert.INSTANCE.convertList03(subList); + // 是否有错误数据 + boolean flag = true; + for (PutawayRequestDetailDO detailDO : subDOList) { + String messageDetail = validatorPutawayRequestDetailImport(detailDO, mainDo,businesstypeDO); + if (!messageMain.isEmpty() || messageDetail.isEmpty()) { + PutawayRequestImportErrorVO importErrorVO = PutawayRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; + } + } + //写入数据 + if (flag) { + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); + mainDo.setNumber(number); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + mainDo.setRequestTime(LocalDateTime.now()); + putawayRequestMainMapper.insert(mainDo); + for (PutawayRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(number); + } + putawayRequestDetailMapper.insertBatch(subDOList); + } + }); + return errorList; + } + + // 新增校验 + private PutawayRequestMainDO validatorToCreate(PutawayRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO) { + PutawayRequestMainDO mainDo = validatorMainMethod(createReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = PutawayRequestDetailConvert.INSTANCE.convertList03(subList); + for (PutawayRequestDetailDO detailDO : subDOList) { + validatorDetailMethod(detailDO,mainDo,businesstypeDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); + mainDo.setNumber(number); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + putawayRequestMainMapper.insert(mainDo); + for (PutawayRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(number); + } + putawayRequestDetailMapper.insertBatch(subDOList); + return mainDo; + } + + //校验主表公共方法(适用于新增/修改) + private PutawayRequestMainDO validatorMainMethod(PutawayRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO,RequestsettingDO requestsettingDO){ + PutawayRequestMainDO mainDo = PutawayRequestMainConvert.INSTANCE.convert(baseVO); + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + return mainDo; + } + //校验子表公共方法(适用于新增/修改) + private void validatorDetailMethod(PutawayRequestDetailDO detailDo,PutawayRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); + validatorIfInType(itembasicDO.getType(), businesstypeDO); + this.validatorPurchaseDetailDo(detailDo.getPoNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine()); + validatorLocation(detailDo.getFromLocationCode()); + validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); + validatorIfInToLocationType(detailDo.getFromLocationCode(), businesstypeDO); + ArrayList inventoryStatus = new ArrayList<>(); + inventoryStatus.set(0,detailDo.getInventoryStatus()); + validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus); + } + + /** + * 校验主表导入,并赋值一些参数 + * + * @param mainDo + * @return + */ + private String validatorPutawayRequestMainImport(PutawayRequestMainDO mainDo,BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + if (businesstypeDO == null) { + message.append("根据业务类型设置未查找到采购退货申请的相关业务类型"); + } + else { + mainDo.setBusinessType(businesstypeDO.getCode()); + mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PutawayRequest"); + if (requestsettingDO == null) { + message.append("根据申请单设置未查找到采购退货申请的相关业务类型"); + } + else { + mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + try { + ValidationUtils.validate(validator, mainDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + /** + * 校验子表导入,并赋值一些参数 + * + * @param detailDo + * @return + */ + private String validatorPutawayRequestDetailImport(PutawayRequestDetailDO detailDo, PutawayRequestMainDO mainDo,BusinesstypeDO businesstypeDO) { + StringBuilder message = new StringBuilder(); + try { + ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setProjectCode(itembasicDO.getProject()); + try { + this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + validatorIfInType(itembasicDO.getType(), businesstypeDO); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + this.validatorPurchaseDetailDo(detailDo.getPoNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine()); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + validatorLocation(detailDo.getFromLocationCode()); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + + try{ + validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try{ + validatorIfInToLocationType(detailDo.getFromLocationCode(), businesstypeDO); + }catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ArrayList inventoryStatus = new ArrayList<>(); + inventoryStatus.set(0,detailDo.getInventoryStatus()); + validatorManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getFromLocationCode(), inventoryStatus); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + ValidationUtils.validate(validator, detailDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + private void ifUomSuccess(String itemUom,String uom) { + if(!itemUom.equals(uom)){ + throw exception(ITEMBASIC_CODE_EXISTS,"提示单位"+ uom + "错误,应该是" + itemUom); + } + } + private ItembasicDO validatorItembasic(String itemCode){ + return itembasicService.selectItembasic(itemCode); + } + + private PurchaseDetailDO validatorPurchaseDetailDo(String pnumber, String psupplierCode, String pitemCode, String poLine){ + return purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode, poLine); + } + + private LocationDO validatorLocation(String fromLocationCode){ + return locationService.selectLocation(fromLocationCode); + } + private void validatorIfInType(String type, BusinesstypeDO businesstypeDO){ + jobUtils.ifInType(type, businesstypeDO); + } + + private void validatorIfOutInventoryStatuses(String inventoryStatus,BusinesstypeDO businesstypeDO){ + jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO); + } + + private void validatorIfInToLocationType(String fromLocationCode,BusinesstypeDO businesstypeDO){ + jobUtils.ifInType(fromLocationCode, businesstypeDO); + } + private void validatorManagementAccuracy(String itemCode,String packingNumber,String batch,String fromLocationCode,List inventoryStatus){ + jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber,batch,fromLocationCode,inventoryStatus); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/saleprice/SalepriceServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/saleprice/SalepriceServiceImpl.java index 8893a042..262cf907 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/saleprice/SalepriceServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/saleprice/SalepriceServiceImpl.java @@ -228,7 +228,7 @@ public class SalepriceServiceImpl implements SalepriceService { @Override public SalepriceDO selectItemPackagingExist(String pcustomerCode,String pitemCode){ QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("itemcode",pitemCode); + queryWrapper.eq("item_code",pitemCode); queryWrapper.eq("customer_code",pcustomerCode); SalepriceDO salepriceDO = salepriceMapper.selectOne(queryWrapper); if(salepriceDO != null && "TRUE".equals(salepriceDO.getAvailable())){ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceService.java index 87b28e71..f5f5d5c0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceService.java @@ -62,7 +62,7 @@ public interface StdcostpriceService { * @param ids 编号 * @return 标准成本价格单列表 */ - List getStdcostpriceList(Collection ids); + List getStdcostpriceList(CustomConditions conditions); /** * 获得标准成本价格单分页 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java index 8bcefb5f..11c454cb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java @@ -78,8 +78,8 @@ public class StdcostpriceServiceImpl implements StdcostpriceService { } @Override - public List getStdcostpriceList(Collection ids) { - return stdcostpriceMapper.selectBatchIds(ids); + public List getStdcostpriceList(CustomConditions conditions) { + return stdcostpriceMapper.selectSeniorList(conditions); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierService.java index 4d968825..10b5c947 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierService.java @@ -57,7 +57,7 @@ public interface SupplierService { * @param ids 编号 * @return 供应商列表 */ - List getSupplierList(Collection ids); + List getSupplierList(CustomConditions conditions); /** * 获得供应商分页 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierServiceImpl.java index f8c5a2ea..e8a8036e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplier/SupplierServiceImpl.java @@ -72,8 +72,8 @@ public class SupplierServiceImpl implements SupplierService { } @Override - public List getSupplierList(Collection ids) { - return supplierMapper.selectBatchIds(ids); + public List getSupplierList(CustomConditions conditions) { + return supplierMapper.selectSeniorList(conditions); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemService.java index 3d3320c9..7860067f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemService.java @@ -63,7 +63,7 @@ public interface SupplieritemService { * @param ids 编号 * @return 供应商物品列表 */ - List getSupplieritemList(Collection ids); + List getSupplieritemList(CustomConditions conditions); /** * 获得供应商物品分页 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java index 61c4c3a6..030c7584 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java @@ -78,8 +78,8 @@ public class SupplieritemServiceImpl implements SupplieritemService { } @Override - public List getSupplieritemList(Collection ids) { - return supplieritemMapper.selectBatchIds(ids); + public List getSupplieritemList(CustomConditions conditions) { + return supplieritemMapper.selectSeniorList(conditions); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionService.java index fa5251da..aaf5c514 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionService.java @@ -33,7 +33,7 @@ public interface TransactionService { * @param transferlogCreateReqVOList 库存转移日志信息 * @return 编号 */ - Integer createTransaction(@Valid List transactionCreateReqVOList, List transferlogCreateReqVOList); + Integer createTransactionAndTransferlog(@Valid List transactionCreateReqVOList, List transferlogCreateReqVOList); /** * 获得用高级搜索库存事务分页列表 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java index 6810a64e..f8ef3ff5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java @@ -71,7 +71,7 @@ public class TransactionServiceImpl implements TransactionService { @Override @Transactional - public Integer createTransaction(List transactionCreateReqVOList, List transferlogCreateReqVOList) { + public Integer createTransactionAndTransferlog(List transactionCreateReqVOList, List transferlogCreateReqVOList) { int result = 0; for(TransactionCreateReqVO createReqVO : transactionCreateReqVOList) { TransactionDO transactionDO = TransactionConvert.INSTANCE.convert(createReqVO); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkDetailService.java index 7fed2b26..5dfca32c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkDetailService.java @@ -9,6 +9,7 @@ import com.win.module.wms.controller.work.vo.WorkDetailExportReqVO; import com.win.module.wms.controller.work.vo.WorkDetailPageReqVO; import com.win.module.wms.controller.work.vo.WorkDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; import com.win.module.wms.dal.dataobject.work.WorkDetailDO; import com.win.framework.common.pojo.PageResult; @@ -78,6 +79,14 @@ public interface WorkDetailService { * @param exportReqVO 查询条件 * @return 生产订单子列表 */ - List getWorkDetailList(WorkDetailExportReqVO exportReqVO); +// List getWorkDetailList(WorkDetailExportReqVO exportReqVO); + + /** + * 根据主表id查询 + * + * @param masterId 主表id + * @return + */ + List selectList(Long masterId); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkDetailServiceImpl.java index 61eaa818..dc3d1d3d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkDetailServiceImpl.java @@ -5,6 +5,7 @@ import com.win.module.wms.controller.work.vo.WorkDetailCreateReqVO; import com.win.module.wms.controller.work.vo.WorkDetailExportReqVO; import com.win.module.wms.controller.work.vo.WorkDetailPageReqVO; import com.win.module.wms.controller.work.vo.WorkDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -84,9 +85,14 @@ public class WorkDetailServiceImpl implements WorkDetailService { return workDetailMapper.selectPage(pageReqVO); } +// @Override +// public List getWorkDetailList(WorkDetailExportReqVO exportReqVO) { +// return workDetailMapper.selectList(exportReqVO); +// } + @Override - public List getWorkDetailList(WorkDetailExportReqVO exportReqVO) { - return workDetailMapper.selectList(exportReqVO); + public List selectList(Long masterId) { + return workDetailMapper.selectList(masterId); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkMainService.java index c6d1e630..e5564db1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkMainService.java @@ -3,6 +3,7 @@ package com.win.module.wms.service.work; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.work.vo.*; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.work.WorkDetailDO; import com.win.module.wms.dal.dataobject.work.WorkMainDO; @@ -78,6 +79,14 @@ public interface WorkMainService { */ List getWorkMainList(WorkMainExportReqVO exportReqVO); + /** + * 获得生产订单主列表, 用于 Excel 导出 + * + * @param conditions 查询条件 + * @return 采购收货申请主列表 + */ + List getWorkMainList(CustomConditions conditions); + /** * Order----VW * 校验生产订单 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkMainServiceImpl.java index dc684d6e..8c2e1179 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/work/WorkMainServiceImpl.java @@ -6,18 +6,35 @@ 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.framework.common.util.validation.ValidationUtils; +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.purchasereceiptRequest.vo.PurchasereceiptRequestDetailCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExportReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO; import com.win.module.wms.controller.work.vo.*; +import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert; +import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; import com.win.module.wms.convert.work.WorkDetailConvert; import com.win.module.wms.convert.work.WorkMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.customer.CustomerDO; import com.win.module.wms.dal.dataobject.customeritem.CustomeritemDO; 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.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.saleprice.SalepriceDO; import com.win.module.wms.dal.dataobject.work.WorkDetailDO; import com.win.module.wms.dal.dataobject.work.WorkMainDO; import com.win.module.wms.dal.mysql.work.WorkDetailMapper; import com.win.module.wms.dal.mysql.work.WorkMainMapper; +import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; +import com.win.module.wms.service.customer.CustomerService; import com.win.module.wms.service.customeritem.CustomeritemService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; @@ -26,10 +43,13 @@ import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import javax.validation.Validator; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -47,6 +67,14 @@ import static com.win.module.wms.enums.ErrorCodeConstants.WORK_MAIN_NOT_EXISTS; @Validated public class WorkMainServiceImpl implements WorkMainService { + @Resource + private CustomerService customerService; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private TrendsApi trendsApi; + @Resource + private Validator validator; @Resource private WorkMainMapper workMainMapper; @Resource @@ -123,6 +151,11 @@ public class WorkMainServiceImpl implements WorkMainService { return workMainMapper.selectList(exportReqVO); } + @Override + public List getWorkMainList(CustomConditions conditions) { + return workMainMapper.selectSeniorList(conditions); + } + @Override public WorkDetailDO selectWorkExist(String pnumber, String pitemCode) { QueryWrapper queryWrapperMain = new QueryWrapper(); @@ -143,114 +176,235 @@ public class WorkMainServiceImpl implements WorkMainService { } @Override + @Transactional public List importWorkMainList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); } + List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList - String messageMain = ""; - //主表的验证 - //子表的验证 + WorkMainDO mainDO = WorkMainConvert.INSTANCE.convert(createReqVO); + String messageMain = this.validateWorkMainImport(mainDO); List subList = createReqVO.getSubList(); List subDOList = WorkDetailConvert.INSTANCE.convertList03(subList); - for (WorkDetailDO purchaseDetailDO : subDOList) { - String messageDetail = ""; - // 校验物品基础信息 - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(purchaseDetailDO.getItemCode()); - if (itembasicDO.getUom() != purchaseDetailDO.getUom()) { - messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ","; - } else { -// purchaseDetailDO.setItemDesc1(itembasicDO.getDesc1()); -// purchaseDetailDO.setItemDesc2(itembasicDO.getDesc2()); -// purchaseDetailDO.setItemName(itembasicDO.getName()); - purchaseDetailDO.setProjectCode(itembasicDO.getProject()); - } - if (itembasicDO.getUom() != purchaseDetailDO.getUom()) { - messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ","; - } - purchaseDetailDO.setProjectCode(itembasicDO.getCode()); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - - // 校验物品标包信息 - try { - ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(purchaseDetailDO.getItemCode()); -// purchaseDetailDO.setStdPackUnit(itempackagingDO.getStdPackUnit()); -// purchaseDetailDO.setStdPackQty(itempackagingDO.getStdPackQty()); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - // 校验客户物品基础信息 - try { - CustomeritemDO customeritemDO = customeritemService.selectCustomeritemExist(createReqVO.getCustomerCode(), purchaseDetailDO.getItemCode()); - if (customeritemDO == null) { - messageDetail += "未查找到客户" + createReqVO.getCustomerCode() + "与物品" + purchaseDetailDO.getItemCode() + "的对应关系" + ","; - } else { - //根据customeritemdto赋值 - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - // 校验销售价格 - try { - SalepriceDO salepriceDO = salepriceService.selectItemPackagingExist(createReqVO.getCustomerCode(), purchaseDetailDO.getItemCode()); - if (salepriceDO != null) { - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - - WorkDetailCreateReqVO purchaseDetailCreateReqVO = WorkDetailConvert.INSTANCE.convert1(purchaseDetailDO); - WorkMainImportErrorVO importVO = WorkDetailConvert.INSTANCE.convert(createReqVO, purchaseDetailCreateReqVO); - //进行子表的错误统计 - //主表没有错误 写入库里 - if (!messageMain.equals("") || !messageDetail.equals("")) { - importVO.setImportStatus("失败"); + // 是否有错误数据 + boolean flag = true; + for (WorkDetailDO detailDO : subDOList) { + String messageDetail = this.validateWorkDetailImport(mainDO, detailDO); + if (!messageMain.isEmpty() || !messageDetail.isEmpty()) { + WorkMainImportErrorVO importErrorVO = WorkMainConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); messageMain = messageMain + messageDetail; - importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); - errorList.add(importVO); - } else { - purchaseDetailDO.setNumber(createReqVO.getNumber()); -// purchaseDetailDO.setMasterId(createReqVO.getId()); + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; } } - - if (errorList.isEmpty()) { - // 判断如果不存在,在进行插入 - WorkMainDO existPurchaseclaimRequestMainDO = workMainMapper.selectByNumber(createReqVO.getNumber()); - if (existPurchaseclaimRequestMainDO == null && mode != 3) { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("WorkOrder"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - createReqVO.setType(null); - createReqVO.setVersion(null); - createReqVO.setCurrentStage(null); - WorkMainDO createObj =WorkMainConvert.INSTANCE.convert(createReqVO); - workMainMapper.insert(createObj); - workDetailMapper.insertBatch(subDOList); - } else if (existPurchaseclaimRequestMainDO != null && mode != 2) { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("WorkOrder"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - createReqVO.setType(null); - createReqVO.setVersion(null); - createReqVO.setCurrentStage(null); - WorkMainDO createObj =WorkMainConvert.INSTANCE.convert(createReqVO); - workMainMapper.updateById(createObj); - workDetailMapper.updateBatch(subDOList); + //写入数据 + if(flag) { + //申请单目前只做新增 + String number = serialNumberApi.generateCode(RuleCodeEnum.WORK_ORDER.getCode()); + mainDO.setNumber(number); + mainDO.setAvailable("TRUE"); // 导入默认 可用 + mainDO.setBusinessType("ProductReceipt"); // 业务类型:制品收货 + workMainMapper.insert(mainDO); + //增加操作记录 + trendsApi.createTrends(mainDO.getId(), "workMain", "导入了生产订单", TrendsTypeEnum.CREATE); + int index = 0; + for (WorkDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDO.getId()); + detailDO.setNumber(number); + detailDO.setAvailable("TRUE"); // 导入默认 可用 + detailDO.setLineNumber("WODetail" + index); + detailDO.setFinishedQty(new BigDecimal(0)); + index++; } + workDetailMapper.insertBatch(subDOList); } }); + + +// List errorList = new ArrayList<>(); +// datas.forEach(createReqVO -> { +// // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList +// String messageMain = ""; +// //主表的验证 +// //子表的验证 +// List subList = createReqVO.getSubList(); +// List subDOList = WorkDetailConvert.INSTANCE.convertList03(subList); +// for (WorkDetailDO purchaseDetailDO : subDOList) { +// String messageDetail = ""; +// // 校验物品基础信息 +// try { +// ItembasicDO itembasicDO = itembasicService.selectItembasic(purchaseDetailDO.getItemCode()); +// if (itembasicDO.getUom() != purchaseDetailDO.getUom()) { +// messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ","; +// } else { +//// purchaseDetailDO.setItemDesc1(itembasicDO.getDesc1()); +//// purchaseDetailDO.setItemDesc2(itembasicDO.getDesc2()); +//// purchaseDetailDO.setItemName(itembasicDO.getName()); +// purchaseDetailDO.setProjectCode(itembasicDO.getProject()); +// } +// if (itembasicDO.getUom() != purchaseDetailDO.getUom()) { +// messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ","; +// } +// purchaseDetailDO.setProjectCode(itembasicDO.getCode()); +// } catch (ServiceException ex) { +// messageDetail += ex.getMessage() + ","; +// } +// +// // 校验物品标包信息 +// try { +// ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(purchaseDetailDO.getItemCode()); +//// purchaseDetailDO.setStdPackUnit(itempackagingDO.getStdPackUnit()); +//// purchaseDetailDO.setStdPackQty(itempackagingDO.getStdPackQty()); +// } catch (ServiceException ex) { +// messageDetail += ex.getMessage() + ","; +// } +// // 校验客户物品基础信息 +// try { +// CustomeritemDO customeritemDO = customeritemService.selectCustomeritemExist(createReqVO.getCustomerCode(), purchaseDetailDO.getItemCode()); +// if (customeritemDO == null) { +// messageDetail += "未查找到客户" + createReqVO.getCustomerCode() + "与物品" + purchaseDetailDO.getItemCode() + "的对应关系" + ","; +// } else { +// //根据customeritemdto赋值 +// } +// } catch (ServiceException ex) { +// messageDetail += ex.getMessage() + ","; +// } +// // 校验销售价格 +// try { +// SalepriceDO salepriceDO = salepriceService.selectItemPackagingExist(createReqVO.getCustomerCode(), purchaseDetailDO.getItemCode()); +// if (salepriceDO != null) { +// } +// } catch (ServiceException ex) { +// messageDetail += ex.getMessage() + ","; +// } +// +// WorkDetailCreateReqVO purchaseDetailCreateReqVO = WorkDetailConvert.INSTANCE.convert1(purchaseDetailDO); +// WorkMainImportErrorVO importVO = WorkDetailConvert.INSTANCE.convert(createReqVO, purchaseDetailCreateReqVO); +// //进行子表的错误统计 +// //主表没有错误 写入库里 +// if (!messageMain.equals("") || !messageDetail.equals("")) { +// importVO.setImportStatus("失败"); +// messageMain = messageMain + messageDetail; +// importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); +// errorList.add(importVO); +// } else { +// purchaseDetailDO.setNumber(createReqVO.getNumber()); +//// purchaseDetailDO.setMasterId(createReqVO.getId()); +// } +// } +// +// if (errorList.isEmpty()) { +// // 判断如果不存在,在进行插入 +// WorkMainDO existPurchaseclaimRequestMainDO = workMainMapper.selectByNumber(createReqVO.getNumber()); +// if (existPurchaseclaimRequestMainDO == null && mode != 3) { +// BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("WorkOrder"); +// if (businesstypeDO != null) { +// createReqVO.setBusinessType(businesstypeDO.getCode()); +// } +// createReqVO.setType(null); +// createReqVO.setVersion(null); +// createReqVO.setCurrentStage(null); +// WorkMainDO createObj =WorkMainConvert.INSTANCE.convert(createReqVO); +// workMainMapper.insert(createObj); +// workDetailMapper.insertBatch(subDOList); +// } else if (existPurchaseclaimRequestMainDO != null && mode != 2) { +// BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("WorkOrder"); +// if (businesstypeDO != null) { +// createReqVO.setBusinessType(businesstypeDO.getCode()); +// } +// createReqVO.setType(null); +// createReqVO.setVersion(null); +// createReqVO.setCurrentStage(null); +// WorkMainDO createObj =WorkMainConvert.INSTANCE.convert(createReqVO); +// workMainMapper.updateById(createObj); +// workDetailMapper.updateBatch(subDOList); +// } +// } +// }); //错误不为空并非部分更新,手工回滚 if (!errorList.isEmpty() && !updatePart) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } return errorList; } + + /** + * 校验物品信息并赋值 + * @param detailDo + * @return + */ + private ItembasicDO validateItem(WorkDetailDO detailDo) { + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + detailDo.setProjectCode(itembasicDO.getProject()); + return itembasicDO; + } + + /** + * 校验客户信息 + * @param mainDo + * @return + */ + private CustomerDO validateCustomer(WorkMainDO mainDo) { + return customerService.selectCustomerExist(mainDo.getCustomerCode()); + } + + /** + * 校验客户物品信息 + * @param detailDo + * @return + */ + private CustomeritemDO validateCustomeritem(WorkMainDO mainDo, WorkDetailDO detailDo) { + return customeritemService.selectCustomeritemExist(mainDo.getCustomerCode(),detailDo.getItemCode()); + } + + /** + * 校验导入,并赋值一些参数,未完全实现 + * @param mainDo + * @return + */ + private String validateWorkMainImport(WorkMainDO mainDo) { + StringBuilder message = new StringBuilder(); + try { + ValidationUtils.validate(validator, mainDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + try { + this.validateCustomer(mainDo); + } catch (Exception ex) { + message.append(ex.getMessage()).append(","); + } + return message.toString(); + } + + /** + * 校验导入,并赋值一些参数,未完全实现 + * @param detailDo + * @return + */ + private String validateWorkDetailImport(WorkMainDO mainDo, WorkDetailDO detailDo) { + StringBuilder message = new StringBuilder(); + try { + ValidationUtils.validate(validator, detailDo); + } catch (Exception e) { + message.append(e.getMessage()).append(","); + } + try { + this.validateCustomeritem(mainDo, detailDo); + } catch (Exception e) { + message.append(e.getMessage()).append(","); + } + try { + this.validateItem(detailDo); + } catch (Exception e) { + message.append(e.getMessage()).append(","); + } + return message.toString(); + } } + + diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workshop/WorkshopServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workshop/WorkshopServiceImpl.java index 124da091..99b7ff01 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workshop/WorkshopServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workshop/WorkshopServiceImpl.java @@ -11,8 +11,6 @@ import com.win.framework.datapermission.core.util.DataPermissionUtils; import com.win.module.wms.controller.workshop.vo.*; import com.win.module.wms.convert.workshop.WorkshopConvert; import com.win.module.wms.dal.dataobject.workshop.WorkshopDO; -import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; -import com.win.module.wms.dal.dataobject.workshop.WorkshopDO; import com.win.module.wms.dal.mysql.workshop.WorkshopMapper; import org.springframework.stereotype.Service; import org.springframework.transaction.interceptor.TransactionAspectSupport; @@ -188,8 +186,9 @@ public class WorkshopServiceImpl implements WorkshopService { public WorkshopDO selectWorkshopExist(String pcode){ QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("code",pcode); + queryWrapper.eq("available","TRUE"); WorkshopDO workshopDO = workshopMapper.selectOne(queryWrapper); - if(workshopDO != null && "TRUE".equals(workshopDO.getAvailable())){ + if(workshopDO != null){ return workshopDO; }else { throw exception(WORKSHOP_NOT_EXISTS); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java index 85effb0a..a41e681e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/workstation/WorkstationServiceImpl.java @@ -218,11 +218,12 @@ public class WorkstationServiceImpl implements WorkstationService { queryWrapperWorkstation.eq("code",pcode); queryWrapperWorkstation.eq("workshop_code",pworkshopCode); queryWrapperWorkstation.eq("production_line_code",pproductionLineCode); + queryWrapperWorkstation.eq("available","TRUE"); WorkstationDO workstationDO = workstationMapper.selectOne(queryWrapperWorkstation); - if(workstationDO != null && "TRUE".equals(workstationDO.getAvailable())){ + if(workstationDO != null){ return workstationDO; }else { - throw new UtilException( "车间" + pworkshopCode + "生产线" + pproductionLineCode + "工位" + pcode + "无效"); + throw exception(WORKSTATION_RELATION_ERROR, "车间" + pworkshopCode + "生产线" + pproductionLineCode + "工位" + pcode + "无效"); } } @Override @@ -230,8 +231,9 @@ public class WorkstationServiceImpl implements WorkstationService { QueryWrapper queryWrapperWorkstation = new QueryWrapper(); queryWrapperWorkstation.eq("code",pcode); queryWrapperWorkstation.eq("pruction_line_code",pructionLineCode); + queryWrapperWorkstation.eq("available","TRUE"); WorkstationDO workstationDO = workstationMapper.selectOne(queryWrapperWorkstation); - if(workstationDO != null && "TRUE".equals(workstationDO.getAvailable())){ + if(workstationDO != null){ return true; }else { throw exception(WORKSTATION_PRODUECTION_LINE_CODE_AND_WORKSTATION_RELATION_ERROR); 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 8aec3ea8..c58da913 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 @@ -1,6 +1,5 @@ package com.win.module.wms.util; -import cn.hutool.core.exceptions.UtilException; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -12,6 +11,7 @@ import com.win.module.wms.dal.dataobject.expectout.ExpectoutDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.supplier.SupplierDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.expectout.ExpectoutMapper; import com.win.module.wms.dal.mysql.location.LocationMapper; @@ -23,6 +23,7 @@ import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.rule.RuleService; import com.win.module.wms.service.supplier.SupplierService; +import com.win.module.wms.service.transactiontype.TransactiontypeService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; @@ -72,6 +73,9 @@ public class JobUtils { @Resource private BusinesstypeService businesstypeService; + @Resource + private TransactiontypeService transactiontypeService; + /** * 解析JSON串,返回两个对象的集合 @@ -539,8 +543,7 @@ public class JobUtils { List expectoutDO = selectLocatioNew(itemcode, packingnumber, batch, locationcode, inventoryStatus); BigDecimal esum = BigDecimal.valueOf(expectoutDO.stream().mapToDouble(expectoutDO1 -> expectoutDO1.getQty().doubleValue()).sum()); BigDecimal bsum = BigDecimal.valueOf(balanceDO.stream().mapToDouble(balanceDO1 -> balanceDO1.getQty().doubleValue()).sum()); - BigDecimal sum = bsum.subtract(esum); - return sum; + return bsum.subtract(esum); } /** @@ -589,25 +592,12 @@ public class JobUtils { } } - //查询库位BQ-QL - public boolean selectlocation(String code) { - QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("code", code); - queryWrapper.eq("available", "TRUE"); - LocationDO locationDO = locationMapper.selectOne(queryWrapper); - if (locationDO == null) { - return true; - } else { - return false; - } - } - //从库位未被其他任务占用,有可用库存 public boolean locationUsable(String itemcode, String packingnumber, String batch, String fromlocationcode, List inventoryStatus, BigDecimal requstqty) { if (fromlocationcode.isEmpty()) { return true; } - if (selectlocation(fromlocationcode)) { + if (locationService.selectLocation(fromlocationcode) != null) { return warehouseStockExist(itemcode, packingnumber, batch, fromlocationcode, inventoryStatus, requstqty); } else { throw exception(LOCATION_NOT_CUST,fromlocationcode); @@ -694,17 +684,27 @@ public class JobUtils { */ public BusinesstypeDO selectDocumentSettingFromBusinessType(String pcode){ DocumentsettingDO documentsettingDO = documentsettingService.selectDocumentsettingExist(pcode); - if(documentsettingDO != null && documentsettingDO.getBusinessType() != null){ - BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist(documentsettingDO.getBusinessType()); - if(businesstypeDO != null){ - return businesstypeDO; - }else { - return null; - } - }else { + if(documentsettingDO == null || documentsettingDO.getBusinessType() == null) { return null; } + return businesstypeService.selectBusinesstypeExist(documentsettingDO.getBusinessType()); } + + /** + * DBT4 + * 根据单据设置查询业务类型 + * @author chenfang + * @param pcode + * @return + */ + public TransactiontypeDO selectDocumentFromTransactionType(String pcode){ + TransactiontypeDO transactionType = transactiontypeService.selectTransactiontype(pcode); + if(transactionType == null || transactionType.getCode() == null) { + return null; + } + return transactionType; + } + /** * 从库存有效,状态正确(使用客户寄售库) * author:yejiaxing @@ -718,7 +718,7 @@ public class JobUtils { */ public Boolean fromInventoryEffectiveCustomer(String locationCode, String itemCode, String packingNumber, String batch, List inventoryStatus) { Boolean returnRes = false; - if (selectlocation(locationCode)) { + if (locationService.selectLocation(locationCode) != null) { fromInventoryEffective(itemCode, packingNumber, batch, locationCode, inventoryStatus); } else{ return returnRes;