From 108cdb627f006f412b69643223fa30eb56ca0317 Mon Sep 17 00:00:00 2001 From: "hongxi.lian" Date: Thu, 9 Nov 2023 09:36:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E9=80=80=E8=B4=A7=E7=94=B3?= =?UTF-8?q?=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/excel/core/util/ExcelUtils.java | 2 +- .../module/wms/enums/ErrorCodeConstants.java | 2 + .../vo/CustomerreturnRecordMainExcelVO.java | 2 - .../CustomerreturnRecordMainExportReqVO.java | 2 - .../vo/CustomerreturnRecordMainPageReqVO.java | 2 - .../CustomerreturnRequestMainController.java | 56 ++++ .../vo/CustomerreturnRequestDetailBaseVO.java | 4 + .../CustomerreturnRequestImportErrorVO.java | 24 ++ .../vo/CustomerreturnRequestImportVO.java | 73 +++++ .../vo/CustomerreturnRequestMainBaseVO.java | 43 ++- .../CustomerreturnRequestMainCreateReqVO.java | 7 +- .../IssueRequestMainController.java | 3 - ...ProductionreturnRequestMainController.java | 14 +- .../CustomerreturnRequestDetailConvert.java | 32 ++- .../CustomerreturnRequestDetailDO.java | 4 + .../CustomerreturnRequestMainDO.java | 5 +- .../CustomerreturnRecordMainMapper.java | 2 - .../CustomerreturnRequestMainMapper.java | 7 +- .../CustomerreturnRequestMainService.java | 10 +- .../CustomerreturnRequestMainServiceImpl.java | 251 +++++++++++++++++- .../DeliverRecordMainService.java | 20 +- .../DeliverRecordMainServiceImpl.java | 29 ++ .../issueRequest/IssueRequestMainService.java | 2 - .../IssueRequestMainServiceImpl.java | 5 - .../PurchaseclaimRequestMainServiceImpl.java | 12 +- 25 files changed, 537 insertions(+), 76 deletions(-) create mode 100644 win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportErrorVO.java create mode 100644 win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportVO.java diff --git a/win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/util/ExcelUtils.java b/win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/util/ExcelUtils.java index 8d8dc737..c2704dd5 100644 --- a/win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/util/ExcelUtils.java +++ b/win-framework/win-spring-boot-starter-excel/src/main/java/com/win/framework/excel/core/util/ExcelUtils.java @@ -83,7 +83,7 @@ public class ExcelUtils { public static List read(MultipartFile file, Class head) throws IOException { return EasyExcel.read(file.getInputStream(), head, null) .autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理 - .doReadAllSync(); + . doReadAllSync(); } public static List read(MultipartFile file, Class head, AnalysisEventListener listener) throws IOException { 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 8fbe9c32..e00ab0bb 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 @@ -678,6 +678,8 @@ public interface ErrorCodeConstants { //客户退货申请ErrorCode ErrorCode CUSTOMERRETURN_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_124_000, "客户退货申请主不存在"); ErrorCode CUSTOMERRETURN_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_124_001, "客户退货申请子不存在"); + + ErrorCode CUSTOMERRETURN_REQUEST_NOT_EXISTS = new ErrorCode(1_000_124_000, "客户退货申请不存在"); //客户退货任务ErrorCode ErrorCode CUSTOMERRETURN_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_125_000, "客户退货任务主不存在"); ErrorCode CUSTOMERRETURN_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_125_001, "客户退货任务子不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java index ca38ec14..d63365da 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExcelVO.java @@ -22,8 +22,6 @@ import com.win.framework.excel.core.convert.DictConvert; @Data public class CustomerreturnRecordMainExcelVO { - @ExcelProperty("申请单号") - private String requestNumber; @ExcelProperty("任务单号") private String jobNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExportReqVO.java index f25bd49e..52099b32 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainExportReqVO.java @@ -13,8 +13,6 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @Data public class CustomerreturnRecordMainExportReqVO { - @Schema(description = "申请单号") - private String requestNumber; @Schema(description = "任务单号") private String jobNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainPageReqVO.java index 8bfab2a0..3b322b96 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainPageReqVO.java @@ -15,8 +15,6 @@ import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY @ToString(callSuper = true) public class CustomerreturnRecordMainPageReqVO extends PageParam { - @Schema(description = "申请单号") - private String requestNumber; @Schema(description = "任务单号") private String jobNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java index 1fdaad55..72f7b52d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/CustomerreturnRequestMainController.java @@ -1,8 +1,16 @@ package com.win.module.wms.controller.customerreturnRequest; 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.productputawayRequest.vo.ProductputawayImportErrorVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainCreateReqVO; +import com.win.module.wms.enums.DictTypeConstants; +import io.swagger.v3.oas.annotations.Parameters; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -13,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; @@ -29,6 +39,7 @@ import com.win.module.wms.controller.customerreturnRequest.vo.*; import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO; import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestMainConvert; import com.win.module.wms.service.customerreturnRequest.CustomerreturnRequestMainService; +import org.springframework.web.multipart.MultipartFile; @Tag(name = "管理后台 - 客户退货申请主") @RestController @@ -121,4 +132,49 @@ public class CustomerreturnRequestMainController { ExcelUtils.write(response, "客户退货申请主.xls", "数据", CustomerreturnRequestMainExcelVO.class, datas); } + @GetMapping("/get-import-template") + @Operation(summary = "获得导入制客户退货信息模板") + public void importTemplate(HttpServletResponse response) throws IOException { + // 手动创建导出 demo + List list = Arrays.asList( + + ); + Map mapDropDown = new HashMap<>(); + String[] transferMode = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRANSFER_MODE); + mapDropDown.put(3, transferMode); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(13, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(12, uom); + // 输出 + ExcelUtils.write(response, "客户退货申请信息导入模板.xls", "客户退货申请信息列表", CustomerreturnRequestImportVO.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:customerreturn-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, CustomerreturnRequestImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(CustomerreturnRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = customerreturnRequestMainService.importCustomerreturnMainList(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/customerreturnRequest/vo/CustomerreturnRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestDetailBaseVO.java index d5feaf8d..17080a3e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestDetailBaseVO.java @@ -50,6 +50,10 @@ public class CustomerreturnRequestDetailBaseVO { @NotNull(message = "从库位代码不能为空") private String fromLocationCode; + @Schema(description = "到库位代码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "到库位代码不能为空") + private String toLocationCode; + @Schema(description = "单据号") private String number; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportErrorVO.java new file mode 100644 index 00000000..f8d5b40a --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportErrorVO.java @@ -0,0 +1,24 @@ +package com.win.module.wms.controller.customerreturnRequest.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 CustomerreturnRequestImportErrorVO extends CustomerreturnRequestImportVO{ + + @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/customerreturnRequest/vo/CustomerreturnRequestImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportVO.java new file mode 100644 index 00000000..f795350f --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestImportVO.java @@ -0,0 +1,73 @@ +package com.win.module.wms.controller.customerreturnRequest.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; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class CustomerreturnRequestImportVO { +//主表字段 + @ExcelProperty("发货记录单号") + private String deliverRecordNumber; + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("承运商") + private String carrierCode; + + @ExcelProperty(value = "运输方式", converter = DictConvert.class) + @DictFormat(DictTypeConstants.TRANSFER_MODE) + private String transferMode; + + @ExcelProperty("车牌号") + private String vehiclePlateNumber; + //子表字段 + @ExcelProperty("销售订单号") + private String soNumber; + + @ExcelProperty("销售订单行") + private String soLine; + + @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("到库位代码") + private String toLocationCode; + + +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java index a5c384d4..37e068f9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainBaseVO.java @@ -1,11 +1,8 @@ package com.win.module.wms.controller.customerreturnRequest.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; @@ -22,10 +19,6 @@ public class CustomerreturnRequestMainBaseVO { @Schema(description = "id", example = "id") private Long id; - @Schema(description = "申请单号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "申请单号不能为空") - private String requestNumber; - @Schema(description = "发货记录单号") private String deliverRecordNumber; @@ -33,11 +26,11 @@ public class CustomerreturnRequestMainBaseVO { private String deliverPlanNumber; @Schema(description = "客户代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "客户代码不能为空") + @NotBlank(message = "客户代码不能为空") private String customerCode; @Schema(description = "客户月台代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "客户月台代码不能为空") + @NotBlank(message = "客户月台代码不能为空") private String customerDockCode; @Schema(description = "承运商") @@ -50,11 +43,12 @@ public class CustomerreturnRequestMainBaseVO { private String vehiclePlateNumber; @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "单据号不能为空") + @OnlyOne + @NotBlank(message = "单据号不能为空") private String number; @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "业务类型不能为空") + @NotBlank(message = "业务类型不能为空") private String businessType; @Schema(description = "备注") @@ -76,8 +70,7 @@ public class CustomerreturnRequestMainBaseVO { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime dueTime; - @Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "部门不能为空") + @Schema(description = "部门") private String departmentCode; @Schema(description = "状态") @@ -90,47 +83,45 @@ public class CustomerreturnRequestMainBaseVO { @Schema(description = "最后更新者用户名") private String updater; - @Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从仓库代码不能为空") + @Schema(description = "从仓库代码") private String fromWarehouseCode; @Schema(description = "从库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从库位类型范围不能为空") + @NotBlank(message = "从库位类型范围不能为空") private String fromLocationTypes; @Schema(description = "从库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "从库区代码范围不能为空") + @NotBlank(message = "从库区代码范围不能为空") private String fromAreaCodes; - @Schema(description = "到仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "到仓库代码不能为空") + @Schema(description = "到仓库代码") private String toWarehouseCode; @Schema(description = "到库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "到库位类型范围不能为空") + @NotBlank(message = "到库位类型范围不能为空") private String toLocationTypes; @Schema(description = "到库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "到库区代码范围不能为空") + @NotBlank(message = "到库区代码范围不能为空") private String toAreaCodes; @Schema(description = "到月台代码") private String toDockCode; @Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "自动提交不能为空") + @NotBlank(message = "自动提交不能为空") private String autoCommit; @Schema(description = "自动通过", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "自动通过不能为空") + @NotBlank(message = "自动通过不能为空") private String autoAgree; @Schema(description = "自动执行", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "自动执行不能为空") + @NotBlank(message = "自动执行不能为空") private String autoExecute; @Schema(description = "直接生成记录", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "直接生成记录不能为空") + @NotBlank(message = "直接生成记录不能为空") private String directCreateRecord; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainCreateReqVO.java index 923a42ee..d9d4fd1b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRequest/vo/CustomerreturnRequestMainCreateReqVO.java @@ -1,12 +1,17 @@ package com.win.module.wms.controller.customerreturnRequest.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 CustomerreturnRequestMainCreateReqVO extends CustomerreturnRequestMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java index eccaefb5..87efa409 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRequest/IssueRequestMainController.java @@ -5,9 +5,6 @@ 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.inspectRequest.vo.IssueRequestImportErrorVO; -import com.win.module.wms.controller.inspectRequest.vo.IssueRequestImportVO; -import com.win.module.wms.controller.inspectRequest.vo.IssueRequestMainCreateReqVO; import com.win.module.wms.enums.DictTypeConstants; import io.swagger.v3.oas.annotations.Parameters; import org.springframework.web.bind.annotation.*; 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 fc2d0bd7..5cb20393 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,27 +3,36 @@ 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; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.productionreturnRequest.vo.*; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO; import com.win.module.wms.convert.productionreturnRequest.ProductionreturnRequestMainConvert; import com.win.module.wms.dal.dataobject.productionreturnRequest.ProductionreturnRequestMainDO; +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.util.Collection; -import java.util.List; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.*; import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @@ -121,4 +130,5 @@ public class ProductionreturnRequestMainController { return success(result); } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRequest/CustomerreturnRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRequest/CustomerreturnRequestDetailConvert.java index 98902e71..200173cc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRequest/CustomerreturnRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRequest/CustomerreturnRequestDetailConvert.java @@ -4,11 +4,17 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailCreateReqVO; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailExcelVO; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailRespVO; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestDetailUpdateReqVO; +import com.win.module.wms.controller.customerreturnRequest.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.customerreturnRequest.CustomerreturnRequestMainDO; +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 com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO; @@ -33,5 +39,21 @@ public interface CustomerreturnRequestDetailConvert { PageResult convertPage(PageResult page); List convertList02(List list); - + CustomerreturnRequestDetailCreateReqVO convert1(CustomerreturnRequestDetailDO bean); + + List convertList03(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"), + }) + CustomerreturnRequestDetailExcelVO convert(CustomerreturnRequestMainDO mainDO, CustomerreturnRequestDetailDO detailDO); + + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + CustomerreturnRequestImportErrorVO convert(CustomerreturnRequestMainCreateReqVO mainVo, CustomerreturnRequestDetailCreateReqVO detailVo); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java index 14e8f515..c265b4b8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestDetailDO.java @@ -61,6 +61,10 @@ public class CustomerreturnRequestDetailDO extends BaseDO { * 从库位代码 */ private String fromLocationCode; + /** + * 到库位代码 + */ + private String toLocationCode; /** * 主表ID */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java index c6802688..56834890 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/customerreturnRequest/CustomerreturnRequestMainDO.java @@ -28,10 +28,7 @@ public class CustomerreturnRequestMainDO extends BaseDO { */ @TableId private Long id; - /** - * 申请单号 - */ - private String requestNumber; + /** * 发货记录单号 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRecord/CustomerreturnRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRecord/CustomerreturnRecordMainMapper.java index 488d6101..b88c438d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRecord/CustomerreturnRecordMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRecord/CustomerreturnRecordMainMapper.java @@ -22,7 +22,6 @@ public interface CustomerreturnRecordMainMapper extends BaseMapperX selectPage(CustomerreturnRecordMainPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(CustomerreturnRecordMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(CustomerreturnRecordMainDO::getJobNumber, reqVO.getJobNumber()) .eqIfPresent(CustomerreturnRecordMainDO::getDeliverRecordNumber, reqVO.getDeliverRecordNumber()) .eqIfPresent(CustomerreturnRecordMainDO::getDeliverPlanNumber, reqVO.getDeliverPlanNumber()) @@ -60,7 +59,6 @@ public interface CustomerreturnRecordMainMapper extends BaseMapperX selectList(CustomerreturnRecordMainExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() - .eqIfPresent(CustomerreturnRecordMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(CustomerreturnRecordMainDO::getJobNumber, reqVO.getJobNumber()) .eqIfPresent(CustomerreturnRecordMainDO::getDeliverRecordNumber, reqVO.getDeliverRecordNumber()) .eqIfPresent(CustomerreturnRecordMainDO::getDeliverPlanNumber, reqVO.getDeliverPlanNumber()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java index f5e17b19..18418b2d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/customerreturnRequest/CustomerreturnRequestMainMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainExportReqVO; import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainPageReqVO; import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO; +import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import org.apache.ibatis.annotations.Mapper; /** @@ -22,7 +23,6 @@ public interface CustomerreturnRequestMainMapper extends BaseMapperX selectPage(CustomerreturnRequestMainPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(CustomerreturnRequestMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(CustomerreturnRequestMainDO::getDeliverRecordNumber, reqVO.getDeliverRecordNumber()) .eqIfPresent(CustomerreturnRequestMainDO::getDeliverPlanNumber, reqVO.getDeliverPlanNumber()) .eqIfPresent(CustomerreturnRequestMainDO::getCustomerCode, reqVO.getCustomerCode()) @@ -57,9 +57,12 @@ public interface CustomerreturnRequestMainMapper extends BaseMapperX selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); } + + default CustomerreturnRequestMainDO selectByDeliverrecordnumberAndSupplierCode(String deliverrecordnumber) { + return selectOne(CustomerreturnRequestMainDO::getDeliverRecordNumber,deliverrecordnumber); + } default List selectList(CustomerreturnRequestMainExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() - .eqIfPresent(CustomerreturnRequestMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(CustomerreturnRequestMainDO::getDeliverRecordNumber, reqVO.getDeliverRecordNumber()) .eqIfPresent(CustomerreturnRequestMainDO::getDeliverPlanNumber, reqVO.getDeliverPlanNumber()) .eqIfPresent(CustomerreturnRequestMainDO::getCustomerCode, reqVO.getCustomerCode()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainService.java index ea6048a3..08fbf23d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainService.java @@ -4,10 +4,10 @@ import java.util.*; import javax.validation.*; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainCreateReqVO; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainExportReqVO; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainPageReqVO; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainUpdateReqVO; +import com.win.module.wms.controller.customerreturnRequest.vo.*; +import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainCreateReqVO; +import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainImportErrorVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO; import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO; import com.win.framework.common.pojo.PageResult; @@ -79,4 +79,6 @@ public interface CustomerreturnRequestMainService { */ List getCustomerreturnRequestMainList(CustomerreturnRequestMainExportReqVO exportReqVO); + public List importCustomerreturnMainList(List datas, Integer mode, boolean updatePart); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java index 71658fd5..70e4f9e2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java @@ -1,25 +1,50 @@ package com.win.module.wms.service.customerreturnRequest; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.exceptions.UtilException; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainCreateReqVO; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainExportReqVO; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainPageReqVO; -import com.win.module.wms.controller.customerreturnRequest.vo.CustomerreturnRequestMainUpdateReqVO; +import com.win.framework.common.util.validation.ValidationUtils; +import com.win.framework.dict.core.util.DictFrameworkUtils; +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.customerreturnRequest.vo.*; +import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO; +import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO; +import com.win.module.wms.service.deliverRecord.*; +import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestDetailMapper; +import com.win.module.wms.service.requestsetting.*; +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.requestsetting.RequestsettingDO; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.util.*; +import com.win.module.wms.service.location.*; +import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestDetailConvert; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO; +import com.win.module.wms.service.purchasereceiptRecord.*; +import com.win.module.wms.service.itembasic.*; +import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.validation.Validator; +import java.time.LocalDateTime; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; +import java.math.BigDecimal; import java.util.*; - import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO; import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.convert.customerreturnRequest.CustomerreturnRequestMainConvert; import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestMainMapper; - import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.module.wms.enums.ErrorCodeConstants.*; + /** * 客户退货申请主 Service 实现类 * @@ -32,6 +57,32 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque @Resource private CustomerreturnRequestMainMapper customerreturnRequestMainMapper; + @Resource + private CustomerreturnRequestDetailMapper customerreturnRequestDetailMapper; + + @Resource + private RequestsettingService requestsettingService; + + @Resource + private DeliverRecordMainService deliverRecordMainService; + + @Resource + private ItembasicService itembasicService; + @Resource + private JobUtils jobUtils; + + + @Resource + private SerialNumberApi serialNumberApi; + + @Resource + private DictDataApi dictDataApi; + + @Resource + private LocationService locationService; + + @Resource + private Validator validator; @Override public Long createCustomerreturnRequestMain(CustomerreturnRequestMainCreateReqVO createReqVO) { // 插入 @@ -87,4 +138,190 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque return customerreturnRequestMainMapper.selectList(exportReqVO); } + private void validatePurchaseclaimRequestMainExists(Long id) { + CustomerreturnRequestMainDO customerRequestMainDO = customerreturnRequestMainMapper.selectById(id); + if (customerRequestMainDO == null) { + return; + }else { + throw exception(CUSTOMERRETURN_REQUEST_NOT_EXISTS); + } + } + public String isqty(BigDecimal qty1, BigDecimal qty2) { + if(qty1.compareTo(qty2) < 0){ + return "ture"; + } else { + throw new UtilException("上架数量"+qty2+ "不能大于库存数量"+ qty1); + } + } + + + @Override + @Transactional + public List importCustomerreturnMainList(List datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(CUSTOMERRETURN_REQUEST_NOT_EXISTS); + } + List< CustomerreturnRequestImportErrorVO> errorList = new ArrayList<>(); + datas.forEach(createReqVO -> { + // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList + String messageMain = ""; + BusinesstypeDO businesstypeDO = null; + //主表校验方法 + try { + DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainService.selectsMainRecordExist(createReqVO.getDeliverRecordNumber()); + createReqVO.setDeliverPlanNumber(deliverRecordMainDO.getDeliverPlanNumber()); + createReqVO.setCustomerCode(deliverRecordMainDO.getCustomerCode()); + createReqVO.setCustomerDockCode(deliverRecordMainDO.getCustomerDockCode()); + createReqVO.setCreateTime(LocalDateTime.now()); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + + try { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("CustomerRejectRequest"); + if (requestsettingDO != null) { + createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); + createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); + createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); + createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + }catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try{ + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRequest"); + createReqVO.setBusinessType(businesstypeDO.getCode()); + createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + createReqVO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + createReqVO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + createReqVO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + + }catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + try { + ValidationUtils.validate(validator, createReqVO); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RETURN_REQUEST.getCode()); + createReqVO.setNumber(number); + List subList = createReqVO.getSubList(); + List subDOList = CustomerreturnRequestDetailConvert.INSTANCE.convertList03(subList); + for(CustomerreturnRequestDetailDO detailDO : subDOList ){ + String messageDetail = ""; + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + //子表校验方法 + try { + List deliverRecordDetailDO = deliverRecordMainService.selectsDeliverRecordExist(createReqVO.getDeliverRecordNumber()); + try{ + for( DeliverRecordDetailDO deliver : deliverRecordDetailDO){ + if(deliver.getSoNumber().equals(detailDO.getSoNumber())&& + deliver.getSoLine().equals(detailDO.getSoLine()) + &&deliver.getItemCode().equals(detailDO.getItemCode())&& + deliver.getBatch().equals(detailDO.getBatch())&& + deliver.getPackingNumber().equals(detailDO.getPackingNumber())){ + detailDO.setQty(deliver.getQty()); + detailDO.setUom(deliver.getUom()); + } + else{ + throw new UtilException("销售订单号"+detailDO.getSoNumber()+"销售订单行"+detailDO.getSoLine() + +"物料代码"+detailDO.getItemCode()+"批次"+detailDO.getBatch()+"箱码"+detailDO.getPackingNumber()+"不在发货记录单" + +createReqVO.getDeliverRecordNumber()+"中"); + } + } + }catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + try { + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setItemName(itembasicDO.getName()); + detailDO.setProjectCode(itembasicDO.getProject()); + detailDO.setUom(itembasicDO.getUom()); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + try { + locationService.selectLocation(detailDO.getFromLocationCode()); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + + try{ + if(!detailDO.getFromLocationCode().isEmpty()){ + jobUtils.ifInToLocationType(detailDO.getFromLocationCode(),businesstypeDO); + } + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + try{ + jobUtils.ifInFromLocationType(detailDO.getToLocationCode(),businesstypeDO); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + try{ + jobUtils.ifInInventoryStatuses(detailDO.getInventoryStatus(),businesstypeDO); + }catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + + try{ + if("客户寄售库".equals(detailDO.getFromLocationCode())){ + 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) { + messageDetail += ex.getMessage() + ","; + } + } + }catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + CustomerreturnRequestDetailCreateReqVO customerreturnRequestDetailCreateReqVO = CustomerreturnRequestDetailConvert.INSTANCE.convert1(detailDO); + CustomerreturnRequestImportErrorVO importVO = CustomerreturnRequestDetailConvert.INSTANCE.convert(createReqVO, customerreturnRequestDetailCreateReqVO); + 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()); + } + } + CustomerreturnRequestMainDO createObj = CustomerreturnRequestMainConvert.INSTANCE.convert(createReqVO); + + if (errorList.isEmpty()) { + CustomerreturnRequestMainDO existCustomerreturnRequestMainDO = customerreturnRequestMainMapper.selectByDeliverrecordnumberAndSupplierCode(createReqVO.getDeliverRecordNumber()); + if (existCustomerreturnRequestMainDO == null && mode != 3) { + customerreturnRequestMainMapper.insert(createObj); + customerreturnRequestDetailMapper.insertBatch(subDOList); + } + else if (existCustomerreturnRequestMainDO == null && mode != 2) { + customerreturnRequestMainMapper.updateById(createObj); + customerreturnRequestDetailMapper.updateBatch(subDOList); + } + + } + }); + //错误不为空并非部分更新,手工回滚 + if (!errorList.isEmpty() && !updatePart) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + return errorList; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainService.java index a933a95b..d6facebf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainService.java @@ -2,7 +2,6 @@ package com.win.module.wms.service.deliverRecord; import java.util.*; import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainCreateReqVO; import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainExportReqVO; @@ -93,4 +92,23 @@ public interface DeliverRecordMainService { */ List getDeliverRecordMainList(DeliverRecordMainExportReqVO exportReqVO); + + /** + * Record-----QProdD_Main + * 校验成品发货记录 + * author lianhongxi + * @param pnumber 单据号 + * @return + */ + DeliverRecordMainDO selectsMainRecordExist(String pnumber); + + + /** + * Record-----QProdD_Detail + * 查询成品发货记录子表 + * author lianhongxi + * @param pnumber 单据号 + * @return + */ + List selectsDeliverRecordExist(String pnumber); } 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 c9454194..b8759838 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 @@ -8,6 +8,7 @@ import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainExportReq import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainPageReqVO; import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainUpdateReqVO; import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO; +import com.win.module.wms.dal.dataobject.rule.RuleDO; import com.win.module.wms.dal.mysql.deliverRecord.DeliverRecordDetailMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -98,6 +99,34 @@ public class DeliverRecordMainServiceImpl implements DeliverRecordMainService { } } @Override + public DeliverRecordMainDO selectsMainRecordExist(String pnumber){ + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("number",pnumber); + DeliverRecordMainDO deliverRecordMainDO = deliverRecordMainMapper.selectOne(queryWrapper); + if(deliverRecordMainDO != null && "TRUE".equals(deliverRecordMainDO.getAvailable())){ + return deliverRecordMainDO; + } + else{ + throw new UtilException( "发货记录无效"+pnumber+"无效"); + } + } + @Override + public List selectsDeliverRecordExist(String pnumber) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.in("number",pnumber); + List deliverRecordDetailDO = deliverRecordDetailMapper.selectList(queryWrapper); + if(!deliverRecordDetailDO.isEmpty()) { + for (DeliverRecordDetailDO detail : deliverRecordDetailDO) { + if (detail != null && "TRUE".equals(detail.getAvailable())) { + return deliverRecordDetailDO; + } else { + throw new UtilException("发货记录明细:单据号" + pnumber + "无效"); + } + } + } + return null; + } + @Override public List getDeliverRecordMainList(Collection ids) { return deliverRecordMainMapper.selectBatchIds(ids); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java index 0d1cfdb1..b583395a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRequest/IssueRequestMainService.java @@ -5,8 +5,6 @@ import javax.validation.*; import com.win.framework.common.pojo.CustomConditions; import com.win.module.wms.controller.issueRequest.vo.*; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestImportErrorVO; -import com.win.module.wms.controller.purchasereturnRequest.vo.PurchasereturnRequestMainCreateReqVO; import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.framework.common.pojo.PageResult; 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 9d30d7f0..7a668b83 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 @@ -172,11 +172,6 @@ public class IssueRequestMainServiceImpl implements IssueRequestMainService { String messageMain = ""; BusinesstypeDO businesstypeDO = null; //主表校验方法 - try { - validateIssueRequestMainExists(null); - } catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } try { workshopService.selectWorkshopExist(createReqVO.getWorkshopCode()); } catch (Exception ex) { 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 c14aa3a5..de165a16 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 @@ -183,11 +183,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest } catch (Exception ex) { messageMain += ex.getMessage() + ","; } - try{ - ValidationUtils.validate(validator,createReqVO); - }catch (Exception ex) { - messageMain += ex.getMessage() + ","; - } + try { supplierService.selectSupplier(createReqVO.getSupplierCode()); } catch (Exception ex) { @@ -228,6 +224,11 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest }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); //进行子表的错误统计 @@ -244,6 +245,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_REQUEST.getCode()); createReqVO.setNumber(number); } + } if(errorList.isEmpty()){ // 判断如果不存在,在进行插入