diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/DeliverPlanMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/DeliverPlanMainController.java index 7633d827..b3a45e62 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/DeliverPlanMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/DeliverPlanMainController.java @@ -1,34 +1,36 @@ package com.win.module.wms.controller.deliverPlan; +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.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 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.deliverPlan.vo.*; +import com.win.module.wms.convert.deliverPlan.DeliverPlanMainConvert; +import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO; +import com.win.module.wms.service.deliverPlan.DeliverPlanMainService; 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.controller.deliverPlan.vo.*; -import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO; -import com.win.module.wms.convert.deliverPlan.DeliverPlanMainConvert; -import com.win.module.wms.service.deliverPlan.DeliverPlanMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 发货计划主") @RestController @@ -120,4 +122,43 @@ public class DeliverPlanMainController { ExcelUtils.write(response, "发货计划主.xls", "数据", DeliverPlanMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "发货计划信息导入模板.xlsx", "发货计划信息列表", DeliverPlanMainImportVO.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:deliver-plan-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, DeliverPlanMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(DeliverPlanMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = deliverPlanMainService.importDeliverPlanMainList(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/deliverPlan/vo/DeliverPlanMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainCreateReqVO.java index 55c90323..d31a8ac7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainCreateReqVO.java @@ -1,7 +1,12 @@ package com.win.module.wms.controller.deliverPlan.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; @Schema(description = "管理后台 - 发货计划主创建 Request VO") @Data @@ -9,4 +14,7 @@ import io.swagger.v3.oas.annotations.media.Schema; @ToString(callSuper = true) public class DeliverPlanMainCreateReqVO 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/deliverPlan/vo/DeliverPlanMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainImportErrorVO.java new file mode 100644 index 00000000..3b14de4f --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.deliverPlan.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 DeliverPlanMainImportErrorVO extends DeliverPlanMainImportVO { + + @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/deliverPlan/vo/DeliverPlanMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainImportVO.java new file mode 100644 index 00000000..e6e415cb --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverPlan/vo/DeliverPlanMainImportVO.java @@ -0,0 +1,45 @@ +package com.win.module.wms.controller.deliverPlan.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +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 DeliverPlanMainImportVO { + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("客户") + private String customerCode; + + @ExcelProperty("计划日期") + private String planDate; + + + + //子表数据 + @ExcelProperty("销售订单号") + private String soNumber; + @ExcelProperty("销售订单行") + private BigDecimal soLine; + @ExcelProperty("物品代码") + private String itemCode; + @ExcelProperty("计划数量") + private BigDecimal qty; + @ExcelProperty("计量单位") + private String uom; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/DemandforecastingMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/DemandforecastingMainController.java index b3cfbccc..2d678dea 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/DemandforecastingMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/DemandforecastingMainController.java @@ -1,34 +1,36 @@ package com.win.module.wms.controller.demandforecasting; +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.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.demandforecasting.vo.*; -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.demandforecasting.DemandforecastingMainConvert; +import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingMainDO; +import com.win.module.wms.service.demandforecasting.DemandforecastingMainService; 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.demandforecasting.DemandforecastingMainDO; -import com.win.module.wms.convert.demandforecasting.DemandforecastingMainConvert; -import com.win.module.wms.service.demandforecasting.DemandforecastingMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 要货预测主") @RestController @@ -122,4 +124,43 @@ public class DemandforecastingMainController { ExcelUtils.write(response, "要货预测主.xls", "数据", DemandforecastingMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "要货预测信息导入模板.xlsx", "要货预测信息列表", DemandforecastingImportVO.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:purchaseclaim-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, DemandforecastingImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(DemandforecastingMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = demandforecastingMainService.importDemandforecastingRequestList(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/demandforecasting/vo/DemandforecastingImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingImportErrorVO.java new file mode 100644 index 00000000..09055ae9 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.demandforecasting.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 DemandforecastingImportErrorVO extends DemandforecastingImportVO { + + @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/demandforecasting/vo/DemandforecastingImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingImportVO.java new file mode 100644 index 00000000..491eb482 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingImportVO.java @@ -0,0 +1,53 @@ +package com.win.module.wms.controller.demandforecasting.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class DemandforecastingImportVO { + + @ExcelProperty("供应商代码") + private String supplierCode; + + @ExcelProperty("版本号") + private String version; + + //子表数据 + @ExcelProperty("预测时间类型") + private String predictTimeType; + + @ExcelProperty("预测日期") + private LocalDateTime predictTime; + + @ExcelProperty("订单号") + @ColumnWidth(value = 16) + private String po_number; + + @ExcelProperty("订单行") + @ColumnWidth(value = 16) + private LocalDateTime dueTime; + + @ExcelProperty("物品代码") + private String departmentCode; + + @ExcelProperty("计划数量") + private String autoCommit; + + @ExcelProperty("计量单位") + private String autoAgree; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingMainCreateReqVO.java index 43f228e2..573d0004 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/demandforecasting/vo/DemandforecastingMainCreateReqVO.java @@ -1,12 +1,20 @@ package com.win.module.wms.controller.demandforecasting.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +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 DemandforecastingMainCreateReqVO 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/inventorychangeRequest/InventorychangeRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestMainController.java index 414df52c..ac54e10c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestMainController.java @@ -1,34 +1,36 @@ package com.win.module.wms.controller.inventorychangeRequest; +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.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 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.inventorychangeRequest.vo.*; +import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestMainConvert; +import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO; +import com.win.module.wms.service.inventorychangeRequest.InventorychangeRequestMainService; 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.controller.inventorychangeRequest.vo.*; -import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO; -import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestMainConvert; -import com.win.module.wms.service.inventorychangeRequest.InventorychangeRequestMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 库存修改申请主") @RestController @@ -121,4 +123,43 @@ public class InventorychangeRequestMainController { ExcelUtils.write(response, "库存修改申请主.xls", "数据", InventorychangeRequestMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "库存修改申请信息导入模板.xlsx", "发货计划信息列表", InventorychangeRequestMainImportVO.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:deliver-plan-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, InventorychangeRequestMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(InventorychangeRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = inventorychangeRequestMainService.importInventorychangeRequestMainList(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/inventorychangeRequest/vo/InventorychangeRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainCreateReqVO.java index 18c027cf..134d348b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainCreateReqVO.java @@ -1,12 +1,19 @@ package com.win.module.wms.controller.inventorychangeRequest.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +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 InventorychangeRequestMainCreateReqVO 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/inventorychangeRequest/vo/InventorychangeRequestMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainImportErrorVO.java new file mode 100644 index 00000000..73478228 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.inventorychangeRequest.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 InventorychangeRequestMainImportErrorVO extends InventorychangeRequestMainImportVO { + + @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/inventorychangeRequest/vo/InventorychangeRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainImportVO.java new file mode 100644 index 00000000..f6b855e8 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainImportVO.java @@ -0,0 +1,34 @@ +package com.win.module.wms.controller.inventorychangeRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +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 InventorychangeRequestMainImportVO { + + //子表数据 + @ExcelProperty("零件号") + private String itemCode; + @ExcelProperty("包装号") + private String fromPackingNumber; + @ExcelProperty("器具号") + private String fromContainerNumber; + @ExcelProperty("批次") + private String fromBatch; + @ExcelProperty("库存状态") + private String fromInventoryStatus; + @ExcelProperty("来源库位") + private String fromLocationCode; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java index dd2e7ba6..f9890b43 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java @@ -1,34 +1,36 @@ package com.win.module.wms.controller.inventoryinitRequest; +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.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 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.inventoryinitRequest.vo.*; +import com.win.module.wms.convert.inventoryinitRequest.InventoryinitRequestMainConvert; +import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO; +import com.win.module.wms.service.inventoryinitRequest.InventoryinitRequestMainService; 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.controller.inventoryinitRequest.vo.*; -import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO; -import com.win.module.wms.convert.inventoryinitRequest.InventoryinitRequestMainConvert; -import com.win.module.wms.service.inventoryinitRequest.InventoryinitRequestMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 库存初始化申请主") @RestController @@ -121,4 +123,43 @@ public class InventoryinitRequestMainController { ExcelUtils.write(response, "库存初始化申请主.xls", "数据", InventoryinitRequestMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "库存初始化申请信息导入模板.xlsx", "库存初始化申请信息列表", InventoryinitRequestMainImportVO.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:inventoryinit-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, InventoryinitRequestMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(InventoryinitRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = inventoryinitRequestMainService.importInventoryinitRequestMainList(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/inventoryinitRequest/vo/InventoryinitRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainCreateReqVO.java index 319d2dc1..31d1c7da 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainCreateReqVO.java @@ -1,7 +1,12 @@ package com.win.module.wms.controller.inventoryinitRequest.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; @Schema(description = "管理后台 - 库存初始化申请主创建 Request VO") @Data @@ -9,4 +14,7 @@ import io.swagger.v3.oas.annotations.media.Schema; @ToString(callSuper = true) public class InventoryinitRequestMainCreateReqVO extends InventoryinitRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportErrorVO.java new file mode 100644 index 00000000..64cdfda5 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportErrorVO.java @@ -0,0 +1,26 @@ +package com.win.module.wms.controller.inventoryinitRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.win.module.wms.controller.purchase.vo.PurchaseMainImportVO; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class InventoryinitRequestMainImportErrorVO extends PurchaseMainImportVO { + + @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/inventoryinitRequest/vo/InventoryinitRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportVO.java new file mode 100644 index 00000000..3cedd8f6 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportVO.java @@ -0,0 +1,63 @@ +package com.win.module.wms.controller.inventoryinitRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class InventoryinitRequestMainImportVO{ + + //主表数据 + @ExcelProperty("仓库代码") + private String warehouseCode; + + //子表数据 + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("替代批次") + private String altBatch; + + @ExcelProperty("到货日期") + @ColumnWidth(value = 16) + private String arriveDate; + + @ExcelProperty("生产日期") + @ColumnWidth(value = 16) + private String produceDate; + + @ExcelProperty("过期日期") + private String expireDate; + + @ExcelProperty("库存状态") + private LocalDateTime inventoryStatus; + + @ExcelProperty("库位代码") + private String locationCode; + + @ExcelProperty("数量") + private String qty; + + @ExcelProperty("计量单位") + private String uom; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java index 50fd7ebe..c098e0ba 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java @@ -1,34 +1,36 @@ package com.win.module.wms.controller.inventorymoveRequest; +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.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 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.inventorymoveRequest.vo.*; +import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; +import com.win.module.wms.service.inventorymoveRequest.InventorymoveRequestMainService; 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.controller.inventorymoveRequest.vo.*; -import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; -import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert; -import com.win.module.wms.service.inventorymoveRequest.InventorymoveRequestMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 库存转移申请主") @RestController @@ -122,4 +124,43 @@ public class InventorymoveRequestMainController { ExcelUtils.write(response, "库存转移申请主.xls", "数据", InventorymoveRequestMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "发货计划信息导入模板.xlsx", "发货计划信息列表", InventorymoveRequestMainImportVO.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:deliver-plan-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, InventorymoveRequestMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(InventorymoveRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = inventorymoveRequestMainService.importInventorymoveRequestMainList(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/inventorymoveRequest/vo/InventorymoveRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainCreateReqVO.java index a544e3e1..a2ec2a63 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainCreateReqVO.java @@ -1,7 +1,12 @@ package com.win.module.wms.controller.inventorymoveRequest.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; @Schema(description = "管理后台 - 库存转移申请主创建 Request VO") @Data @@ -9,4 +14,7 @@ import io.swagger.v3.oas.annotations.media.Schema; @ToString(callSuper = true) public class InventorymoveRequestMainCreateReqVO extends InventorymoveRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List< InventorymoveRequestDetailCreateReqVO> subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportErrorVO.java new file mode 100644 index 00000000..31d90a64 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.inventorymoveRequest.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 InventorymoveRequestMainImportErrorVO extends InventorymoveRequestMainImportVO { + + @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/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java new file mode 100644 index 00000000..0e1effef --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java @@ -0,0 +1,64 @@ +package com.win.module.wms.controller.inventorymoveRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class InventorymoveRequestMainImportVO { + + //主表数据 + @ExcelProperty("订单类型") + private String type; + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("行号") + private String hang; + + @ExcelProperty("供应商代码") + private String supplierCode; + + @ExcelProperty("联系人姓名") + private String contactName; + + @ExcelProperty("联系人电话") + @ColumnWidth(value = 16) + private String contactPhone; + + @ExcelProperty("联系人电子邮件") + @ColumnWidth(value = 16) + private String contactEmail; + + @ExcelProperty("是否寄存订单") + private String isConsignment; + + @ExcelProperty("截止日期") + private LocalDateTime dueDate; + + //子表数据 + @ExcelProperty("物品代码") + private String itemCode; + @ExcelProperty("数量") + private BigDecimal orderQty; + @ExcelProperty("计量单位") + private String uom; + @ExcelProperty("超收百分比") + private BigDecimal overReceivingPercent; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/ProductionMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/ProductionMainController.java index 7a62d6ea..af9cb6e8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/ProductionMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/ProductionMainController.java @@ -3,27 +3,34 @@ package com.win.module.wms.controller.production; 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.production.vo.*; +import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportVO; import com.win.module.wms.convert.production.ProductionMainConvert; import com.win.module.wms.dal.dataobject.production.ProductionMainDO; +import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.production.ProductionMainService; 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 +128,43 @@ public class ProductionMainController { 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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); + mapDropDown.put(16, purchaseReturnReason); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "生产计划信息导入模板.xlsx", "生产计划信息列表", PurchaseclaimRequestImportVO.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:production-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, ProductionMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(ProductionMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = productionMainService.importProductionMainList(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/production/vo/ProductionMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionMainCreateReqVO.java index 1ccfd4c3..61a8b9ba 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionMainCreateReqVO.java @@ -1,7 +1,12 @@ package com.win.module.wms.controller.production.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; @Schema(description = "管理后台 - 生产计划主创建 Request VO") @Data @@ -9,4 +14,7 @@ import io.swagger.v3.oas.annotations.media.Schema; @ToString(callSuper = true) public class ProductionMainCreateReqVO extends ProductionMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionMainImportErrorVO.java new file mode 100644 index 00000000..bc1cb3d2 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.production.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 ProductionMainImportErrorVO extends ProductionMainImportVO { + + @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/production/vo/ProductionMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionMainImportVO.java new file mode 100644 index 00000000..2e424461 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionMainImportVO.java @@ -0,0 +1,63 @@ +package com.win.module.wms.controller.production.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class ProductionMainImportVO { + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("顺序") + private String hang; + + @ExcelProperty("车间") + private String supplierCode; + + @ExcelProperty("生产线") + private String contactName; + + @ExcelProperty("班次") + @ColumnWidth(value = 16) + private String contactPhone; + + @ExcelProperty("班组") + @ColumnWidth(value = 16) + private String contactEmail; + + @ExcelProperty("计划日期") + private LocalDateTime isConsignment; + + @ExcelProperty("订单行") + private String woLine; + + @ExcelProperty("订单号") + private String woNumber; + + //子表数据 + @ExcelProperty("Bom版本") + private String itemCode; + @ExcelProperty("物品代码") + private BigDecimal orderQty; + @ExcelProperty("计划数量") + private String uom; + @ExcelProperty("计量单位") + private BigDecimal overReceivingPercent; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java index 6d98f3f7..3ad21fba 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java @@ -1,35 +1,36 @@ package com.win.module.wms.controller.productscrapRequest; +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.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.productscrapRequest.vo.*; -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.productscrapRequest.ProductscrapRequestMainConvert; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; +import com.win.module.wms.service.productscrapRequest.ProductscrapRequestMainService; 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.controller.productscrapRequest.vo.*; -import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; -import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; -import com.win.module.wms.service.productscrapRequest.ProductscrapRequestMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 制品报废申请主") @RestController @@ -122,4 +123,45 @@ public class ProductscrapRequestMainController { ExcelUtils.write(response, "制品报废申请主.xls", "数据", ProductscrapRequestMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "制品报废申请信息导入模板.xlsx", "制品报废申请信息列表", ProductscrapRequestMainImportVO.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:productscrap-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, ProductscrapRequestMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(ProductscrapRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = productscrapRequestMainService.importProductscrapRequestMainList(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/productscrapRequest/vo/ProductscrapRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainCreateReqVO.java index ccdd04ab..65ce2bf1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainCreateReqVO.java @@ -1,12 +1,19 @@ package com.win.module.wms.controller.productscrapRequest.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +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 ProductscrapRequestMainCreateReqVO extends ProductscrapRequestMainBaseVO { - + @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/ProductscrapRequestMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainImportErrorVO.java new file mode 100644 index 00000000..90119669 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.productscrapRequest.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 ProductscrapRequestMainImportErrorVO extends ProductscrapRequestMainImportVO { + + @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/productscrapRequest/vo/ProductscrapRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainImportVO.java new file mode 100644 index 00000000..c0ba017d --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainImportVO.java @@ -0,0 +1,46 @@ +package com.win.module.wms.controller.productscrapRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +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 ProductscrapRequestMainImportVO { + + //子表数据 + @ExcelProperty("零件号") + private String itemCode; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("数量") + private String qty; + + @ExcelProperty("记录单位") + private String uom ; + + @ExcelProperty("来源库位") + private String fromLocationCode; + + @ExcelProperty("原因") + private String reason; + +} 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 921b020a..cead9329 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 @@ -1,34 +1,36 @@ package com.win.module.wms.controller.purchase; +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.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.purchase.vo.*; -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.purchase.PurchaseMainConvert; +import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO; +import com.win.module.wms.service.purchase.PurchaseMainService; 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.purchase.PurchaseMainDO; -import com.win.module.wms.convert.purchase.PurchaseMainConvert; -import com.win.module.wms.service.purchase.PurchaseMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 采购订单主") @RestController @@ -121,4 +123,43 @@ public class PurchaseMainController { ExcelUtils.write(response, "采购订单主.xls", "数据", PurchaseMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "采购订单导入模板.xlsx", "采购订单列表", PurchaseMainImportVO.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:purchaseclaim-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, PurchaseMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(PurchaseMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = purchaseMainService.importPurchaseMaintList(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/purchase/vo/PurchaseDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseDetailBaseVO.java index d0b518ee..8ad6553e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseDetailBaseVO.java @@ -1,23 +1,12 @@ package com.win.module.wms.controller.purchase.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -import java.math.BigDecimal; -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 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; @@ -31,7 +20,6 @@ public class PurchaseDetailBaseVO { @Schema(description = "id", example = "id") private Long id; - @Schema(description = "行号", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "行号不能为空") private String lineNumber; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseDetailCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseDetailCreateReqVO.java index 2c4d80b4..c25a8cea 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseDetailCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseDetailCreateReqVO.java @@ -1,7 +1,9 @@ package com.win.module.wms.controller.purchase.vo; -import lombok.*; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; @Schema(description = "管理后台 - 采购订单子创建 Request VO") @Data diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainBaseVO.java index 8a03156d..25ea1d07 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainBaseVO.java @@ -1,15 +1,12 @@ package com.win.module.wms.controller.purchase.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.time.LocalDateTime; -import javax.validation.constraints.*; -import org.springframework.format.annotation.DateTimeFormat; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainCreateReqVO.java index 58305a54..3cf843d8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainCreateReqVO.java @@ -1,12 +1,21 @@ package com.win.module.wms.controller.purchase.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; -@Schema(description = "管理后台 - 采购订单主创建 Request VO") +import java.util.List; + +@Schema(description = "管理后台 - 采购索赔申请主创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class PurchaseMainCreateReqVO extends PurchaseMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportErrorVO.java new file mode 100644 index 00000000..1e7552e0 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.purchase.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 PurchaseMainImportErrorVO extends PurchaseMainImportVO { + + @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/purchase/vo/PurchaseMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportVO.java new file mode 100644 index 00000000..0a6f69d5 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportVO.java @@ -0,0 +1,64 @@ +package com.win.module.wms.controller.purchase.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class PurchaseMainImportVO { + + //主表数据 + @ExcelProperty("单据号") + private String number; + @ExcelProperty("供应商代码") + private String supplierCode; + //日程/离散 + @ExcelProperty("订单类型") + private String type; + + @ExcelProperty("联系人姓名") + private String contactName; + + @ExcelProperty("联系人电话") + @ColumnWidth(value = 16) + private String contactPhone; + + @ExcelProperty("联系人电子邮件") + @ColumnWidth(value = 16) + private String contactEmail; + + @ExcelProperty("是否寄存订单") + private String isConsignment; + + @ExcelProperty("截止日期") + private LocalDateTime dueDate; + + //子表数据 + @ExcelProperty("单据号") + private String poNumber; + @ExcelProperty("行号") + private String poLine; + @ExcelProperty("物品代码") + private String itemCode; + @ExcelProperty("数量") + private BigDecimal orderQty; + @ExcelProperty("计量单位") + private String uom; + @ExcelProperty("超收百分比") + private BigDecimal overReceivingPercent; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/PurchasePlanMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/PurchasePlanMainController.java index 6fd4a09c..05b5d3eb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/PurchasePlanMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/PurchasePlanMainController.java @@ -1,34 +1,36 @@ package com.win.module.wms.controller.purchasePlan; +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.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.purchasePlan.vo.*; -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.purchasePlan.PurchasePlanMainConvert; +import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO; +import com.win.module.wms.service.purchasePlan.PurchasePlanMainService; 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.purchasePlan.PurchasePlanMainDO; -import com.win.module.wms.convert.purchasePlan.PurchasePlanMainConvert; -import com.win.module.wms.service.purchasePlan.PurchasePlanMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 要货计划主") @RestController @@ -121,4 +123,43 @@ public class PurchasePlanMainController { ExcelUtils.write(response, "要货计划主.xls", "数据", PurchasePlanMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "要货计划信息导入模板.xlsx", "要货计划信息列表", PurchasePlanMainImportVO.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:purchase-plan-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, PurchasePlanMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(PurchasePlanMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = purchasePlanMainService.importPurchasePlanMainList(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/purchasePlan/vo/PurchasePlanMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainCreateReqVO.java index 0d88e2d1..bbd49e27 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainCreateReqVO.java @@ -1,7 +1,12 @@ package com.win.module.wms.controller.purchasePlan.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; @Schema(description = "管理后台 - 要货计划主创建 Request VO") @Data @@ -9,4 +14,7 @@ import io.swagger.v3.oas.annotations.media.Schema; @ToString(callSuper = true) public class PurchasePlanMainCreateReqVO extends PurchasePlanMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainImportErrorVO.java new file mode 100644 index 00000000..7ccfc866 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.purchasePlan.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 PurchasePlanMainImportErrorVO extends PurchasePlanMainImportVO { + + @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/purchasePlan/vo/PurchasePlanMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainImportVO.java new file mode 100644 index 00000000..34273419 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanMainImportVO.java @@ -0,0 +1,38 @@ +package com.win.module.wms.controller.purchasePlan.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +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 PurchasePlanMainImportVO { + + //主表数据 + @ExcelProperty("供应商代码") + private String supplierCode; + + //子表数据 + @ExcelProperty("订单号") + private String poNumber; + @ExcelProperty("订单行") + private BigDecimal poLine; + @ExcelProperty("物品代码") + private String itemCode; + @ExcelProperty("计划数量") + private String planQty; + @ExcelProperty("计量单位") + private String uom; +} 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 ba77fa8a..64ff7bb6 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 @@ -1,35 +1,36 @@ package com.win.module.wms.controller.purchasereceiptRequest; +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.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.*; -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.purchasereceiptRequest.PurchasereceiptRequestMainConvert; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; +import com.win.module.wms.service.purchasereceiptRequest.PurchasereceiptRequestMainService; 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.purchasereceiptRequest.PurchasereceiptRequestMainDO; -import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; -import com.win.module.wms.service.purchasereceiptRequest.PurchasereceiptRequestMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 采购收货申请主") @RestController @@ -122,4 +123,43 @@ public class PurchasereceiptRequestMainController { ExcelUtils.write(response, "采购收货申请主.xls", "数据", PurchasereceiptRequestMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "采购收货申请信息导入模板.xlsx", "采购收货申请信息列表", PurchasereceiptRequestMainImportVO.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:purchasereceipt-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, PurchasereceiptRequestMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(PurchasereceiptRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = purchasereceiptRequestMainService.importPurchasereceiptRequestMainList(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/purchasereceiptRequest/vo/PurchasereceiptRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainCreateReqVO.java index 747aaf68..9a86508e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainCreateReqVO.java @@ -1,7 +1,12 @@ package com.win.module.wms.controller.purchasereceiptRequest.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; @Schema(description = "管理后台 - 采购收货申请主创建 Request VO") @Data @@ -9,4 +14,7 @@ import io.swagger.v3.oas.annotations.media.Schema; @ToString(callSuper = true) public class PurchasereceiptRequestMainCreateReqVO extends PurchasereceiptRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportErrorVO.java new file mode 100644 index 00000000..15bdb4db --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.purchasereceiptRequest.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 PurchasereceiptRequestMainImportErrorVO extends PurchasereceiptRequestMainImportVO { + + @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/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java new file mode 100644 index 00000000..a261ea49 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/vo/PurchasereceiptRequestMainImportVO.java @@ -0,0 +1,64 @@ +package com.win.module.wms.controller.purchasereceiptRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class PurchasereceiptRequestMainImportVO { + + //主表数据 + @ExcelProperty("供应商代码") + private String supplier_code; + + @ExcelProperty("订单号") + private String po_number; + + @ExcelProperty("订单行") + private String po_line; + + @ExcelProperty("物品代码") + private String item_code; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty("数量") + @ColumnWidth(value = 16) + private String qty; + + @ExcelProperty("计量单位") + @ColumnWidth(value = 16) + private String uom; + + @ExcelProperty("到货日期") + private String isConsignment; + + @ExcelProperty("生产日期") + private LocalDateTime dueDate; + + //子表数据 + @ExcelProperty("过期日期") + private String itemCode; + @ExcelProperty("承运商") + private String orderQty; + @ExcelProperty("运输方式") + private String aa; + @ExcelProperty("车牌号") + private BigDecimal overReceivingPercent; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/RepleinshRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/RepleinshRequestMainController.java index 4cae14f5..61d01c05 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/RepleinshRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/RepleinshRequestMainController.java @@ -1,34 +1,36 @@ package com.win.module.wms.controller.repleinshRequest; +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.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 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.repleinshRequest.vo.*; +import com.win.module.wms.convert.repleinshRequest.RepleinshRequestMainConvert; +import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO; +import com.win.module.wms.service.repleinshRequest.RepleinshRequestMainService; 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.controller.repleinshRequest.vo.*; -import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO; -import com.win.module.wms.convert.repleinshRequest.RepleinshRequestMainConvert; -import com.win.module.wms.service.repleinshRequest.RepleinshRequestMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 补料申请主") @RestController @@ -122,4 +124,43 @@ public class RepleinshRequestMainController { ExcelUtils.write(response, "补料申请主.xls", "数据", RepleinshRequestMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "补料申请信息导入模板.xlsx", "补料申请信息列表", RepleinshRequestMainImportVO.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:repleinsh-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, RepleinshRequestMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(RepleinshRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = repleinshRequestMainService.importRepleinshRequestMainList(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/repleinshRequest/vo/RepleinshRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainCreateReqVO.java index 53019f23..e27301f5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainCreateReqVO.java @@ -1,12 +1,19 @@ package com.win.module.wms.controller.repleinshRequest.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +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 RepleinshRequestMainCreateReqVO extends RepleinshRequestMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainImportErrorVO.java new file mode 100644 index 00000000..0f85c14e --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.repleinshRequest.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 RepleinshRequestMainImportErrorVO extends RepleinshRequestMainImportVO { + + @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/repleinshRequest/vo/RepleinshRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainImportVO.java new file mode 100644 index 00000000..f7a2b3a2 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRequest/vo/RepleinshRequestMainImportVO.java @@ -0,0 +1,64 @@ +package com.win.module.wms.controller.repleinshRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class RepleinshRequestMainImportVO { + + //主表数据 + @ExcelProperty("订单类型") + private String type; + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("行号") + private String hang; + + @ExcelProperty("供应商代码") + private String supplierCode; + + @ExcelProperty("联系人姓名") + private String contactName; + + @ExcelProperty("联系人电话") + @ColumnWidth(value = 16) + private String contactPhone; + + @ExcelProperty("联系人电子邮件") + @ColumnWidth(value = 16) + private String contactEmail; + + @ExcelProperty("是否寄存订单") + private String isConsignment; + + @ExcelProperty("截止日期") + private LocalDateTime dueDate; + + //子表数据 + @ExcelProperty("物品代码") + private String itemCode; + @ExcelProperty("数量") + private BigDecimal orderQty; + @ExcelProperty("计量单位") + private String uom; + @ExcelProperty("超收百分比") + private BigDecimal overReceivingPercent; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/RuleBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/RuleBaseVO.java index da1b9e5d..ed5e2ece 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/RuleBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/RuleBaseVO.java @@ -12,7 +12,6 @@ import javax.validation.constraints.NotNull; @Data public class RuleBaseVO { - @Schema(description = "id", example = "id") private Long id; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/SaleMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/SaleMainController.java index e5c8470d..45b208d3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/SaleMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/SaleMainController.java @@ -1,34 +1,36 @@ package com.win.module.wms.controller.sale; +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.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 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.sale.vo.*; +import com.win.module.wms.convert.sale.SaleMainConvert; +import com.win.module.wms.dal.dataobject.sale.SaleMainDO; +import com.win.module.wms.service.sale.SaleMainService; 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.controller.sale.vo.*; -import com.win.module.wms.dal.dataobject.sale.SaleMainDO; -import com.win.module.wms.convert.sale.SaleMainConvert; -import com.win.module.wms.service.sale.SaleMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 销售订单主") @RestController @@ -122,4 +124,43 @@ public class SaleMainController { ExcelUtils.write(response, "销售订单主.xls", "数据", SaleMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "销售订单信息导入模板.xlsx", "销售订单信息列表", SaleMainImportVO.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:sale-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, SaleMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(SaleMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = saleMainService.importSaleMainList(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/sale/vo/SaleMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/vo/SaleMainCreateReqVO.java index cac031cc..0deb6995 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/vo/SaleMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/vo/SaleMainCreateReqVO.java @@ -1,12 +1,19 @@ package com.win.module.wms.controller.sale.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +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 SaleMainCreateReqVO extends SaleMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/vo/SaleMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/vo/SaleMainImportErrorVO.java new file mode 100644 index 00000000..f52e1f82 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/vo/SaleMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.sale.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 SaleMainImportErrorVO extends SaleMainImportVO { + + @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/sale/vo/SaleMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/vo/SaleMainImportVO.java new file mode 100644 index 00000000..19e7f592 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/sale/vo/SaleMainImportVO.java @@ -0,0 +1,65 @@ +package com.win.module.wms.controller.sale.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +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 SaleMainImportVO { + + //主表数据 + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("客户代码") + private String hang; + + @ExcelProperty("订单类型") + private String supplierCode; + + @ExcelProperty("订单日期") + private String contactName; + + @ExcelProperty("截止日期") + @ColumnWidth(value = 16) + private String contactPhone; + + @ExcelProperty("版本") + @ColumnWidth(value = 16) + private String contactEmail; + + @ExcelProperty("税率") + private String isConsignment; + + //子表数据 + @ExcelProperty("项目代码") + private String itemCode; + @ExcelProperty("行号") + private BigDecimal orderQty; + @ExcelProperty("物品代码") + private String uom; + @ExcelProperty("订单数量") + private BigDecimal overRecPercent; + @ExcelProperty("订单数量") + private BigDecimal overReceivint; + @ExcelProperty("计量单位") + private BigDecimal overReceivingPercen; + @ExcelProperty("单价") + private BigDecimal overReceivingPerce; + @ExcelProperty("金额") + private BigDecimal overReceivingPer; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java index fefcdf44..dab33466 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java @@ -1,28 +1,36 @@ package com.win.module.wms.controller.supplierdeliverRequest; + +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.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.supplierdeliverRequest.vo.*; +import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestMainConvert; +import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestMainDO; +import com.win.module.wms.service.supplierdeliverRequest.SupplierdeliverRequestMainService; +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 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 io.swagger.v3.oas.annotations.Operation; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.*; + 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.supplierdeliverRequest.SupplierdeliverRequestMainDO; -import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestMainConvert; -import com.win.module.wms.service.supplierdeliverRequest.SupplierdeliverRequestMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 供应商发货申请主") @RestController @@ -116,4 +124,43 @@ public class SupplierdeliverRequestMainController { ExcelUtils.write(response, "供应商发货申请主.xls", "数据", SupplierdeliverRequestMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "供应商发货申请信息导入模板.xlsx", "供应商发货申请信息列表", SupplierdeliverRequestMainImportVO.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:supplierdeliver-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, SupplierdeliverRequestMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(SupplierdeliverRequestMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = supplierdeliverRequestMainService.importSupplierdeliverRequestMainList(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/supplierdeliverRequest/vo/SupplierdeliverRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainCreateReqVO.java index c9f3d3d8..0b0a3178 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainCreateReqVO.java @@ -1,12 +1,20 @@ package com.win.module.wms.controller.supplierdeliverRequest.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +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 SupplierdeliverRequestMainCreateReqVO extends SupplierdeliverRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainImportErrorVO.java new file mode 100644 index 00000000..b43017f8 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.supplierdeliverRequest.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 SupplierdeliverRequestMainImportErrorVO extends SupplierdeliverRequestMainImportVO { + + @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/supplierdeliverRequest/vo/SupplierdeliverRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainImportVO.java new file mode 100644 index 00000000..cebf9814 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainImportVO.java @@ -0,0 +1,64 @@ +package com.win.module.wms.controller.supplierdeliverRequest.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class SupplierdeliverRequestMainImportVO { + + //主表数据 + @ExcelProperty("订单类型") + private String type; + + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("行号") + private String hang; + + @ExcelProperty("供应商代码") + private String supplierCode; + + @ExcelProperty("联系人姓名") + private String contactName; + + @ExcelProperty("联系人电话") + @ColumnWidth(value = 16) + private String contactPhone; + + @ExcelProperty("联系人电子邮件") + @ColumnWidth(value = 16) + private String contactEmail; + + @ExcelProperty("是否寄存订单") + private String isConsignment; + + @ExcelProperty("截止日期") + private LocalDateTime dueDate; + + //子表数据 + @ExcelProperty("物品代码") + private String itemCode; + @ExcelProperty("数量") + private BigDecimal orderQty; + @ExcelProperty("计量单位") + private String uom; + @ExcelProperty("超收百分比") + private BigDecimal overReceivingPercent; +} 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 406bdf35..f0e682b4 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 @@ -1,29 +1,36 @@ 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.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.work.vo.*; +import com.win.module.wms.convert.work.WorkMainConvert; +import com.win.module.wms.dal.dataobject.work.WorkMainDO; +import com.win.module.wms.service.work.WorkMainService; +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 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 io.swagger.v3.oas.annotations.Operation; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.*; + 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.work.WorkMainDO; -import com.win.module.wms.convert.work.WorkMainConvert; -import com.win.module.wms.service.work.WorkMainService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 生产订单主") @RestController @@ -88,7 +95,7 @@ public class WorkMainController { } @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") - @PreAuthorize("@ss.hasPermission('wms:workMain:query')") + @PreAuthorize("@ss.hasPermission('wms:work-main:query')") public CommonResult> getWorkMainSenior(@Valid @RequestBody CustomConditions conditions) { PageResult pageResult = workMainService.getWorkMainSenior(conditions); PageResult result = WorkMainConvert.INSTANCE.convertPage(pageResult); @@ -99,6 +106,7 @@ public class WorkMainController { } return success(result); } + @GetMapping("/export-excel") @Operation(summary = "导出生产订单主 Excel") @PreAuthorize("@ss.hasPermission('wms:work-main:export')") @@ -116,4 +124,43 @@ public class WorkMainController { ExcelUtils.write(response, "生产订单主.xls", "数据", WorkMainExcelVO.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[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); +// mapDropDown.put(16, purchaseReturnReason); +// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); +// mapDropDown.put(25, uom); + // 输出 + ExcelUtils.write(response, "采购索赔信息导入模板.xlsx", "采购索赔信息列表", WorkMainImportVO.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:work-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, WorkMainImportVO.class); + ConvertUtil convertUtil = new ConvertUtil<>(WorkMainCreateReqVO.class); + List createReqVOList = convertUtil.invoke(list).getDataList(); + List errorList = workMainService.importWorkMainList(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/work/vo/WorkMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainCreateReqVO.java index c2195687..17a41038 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainCreateReqVO.java @@ -1,7 +1,12 @@ package com.win.module.wms.controller.work.vo; -import lombok.*; +import com.win.framework.excel.core.annotations.SubObject; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; @Schema(description = "管理后台 - 生产订单主创建 Request VO") @Data @@ -9,4 +14,8 @@ import io.swagger.v3.oas.annotations.media.Schema; @ToString(callSuper = true) public class WorkMainCreateReqVO extends WorkMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainImportErrorVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainImportErrorVO.java new file mode 100644 index 00000000..38583e01 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainImportErrorVO.java @@ -0,0 +1,25 @@ +package com.win.module.wms.controller.work.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 WorkMainImportErrorVO extends WorkMainImportVO { + + @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/work/vo/WorkMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainImportVO.java new file mode 100644 index 00000000..17bacbf3 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/vo/WorkMainImportVO.java @@ -0,0 +1,44 @@ +package com.win.module.wms.controller.work.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + + +/** + * 采购索赔申请子 Excel VO + * + * @author 超级管理员 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题 +public class WorkMainImportVO { + + //主表数据 + @ExcelProperty("单据号") + private String number; + + @ExcelProperty("客户代码") + private String customerCode; + + @ExcelProperty("订单日期") + private LocalDateTime orderDate; + + @ExcelProperty("截止日期") + private String dueDate; + + //子表数据 + @ExcelProperty("物品代码") + private String itemCode; + @ExcelProperty("订单数量") + private BigDecimal orderQty; + @ExcelProperty("计量单位") + private String uom; +} 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 64fa8445..2684cdb5 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 @@ -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.DeliverPlanDetailCreateReqVO; import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanDetailExcelVO; import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanDetailRespVO; import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanDetailDO; + +import java.util.List; /** * 发货计划子 Convert @@ -34,4 +33,6 @@ public interface DeliverPlanDetailConvert { 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/demandforecasting/DemandforecastingDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/demandforecasting/DemandforecastingDetailConvert.java index 83ace82e..c2ad112e 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 @@ -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.DemandforecastingDetailCreateReqVO; import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingDetailExcelVO; import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingDetailRespVO; import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingDetailDO; + +import java.util.List; /** * 要货预测子 Convert @@ -34,4 +33,6 @@ public interface DemandforecastingDetailConvert { 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/inventorychangeRequest/InventorychangeRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorychangeRequest/InventorychangeRequestDetailConvert.java index 51ba1cde..9e93a890 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 @@ -1,16 +1,15 @@ 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.InventorychangeRequestDetailCreateReqVO; import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestDetailExcelVO; import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestDetailRespVO; import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestDetailDO; + +import java.util.List; /** * 库存修改申请子 Convert @@ -34,4 +33,6 @@ public interface InventorychangeRequestDetailConvert { 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/inventoryinitRequest/InventoryinitRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestDetailConvert.java index f985d62d..80733aa3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestDetailConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.inventoryinitRequest; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailCreateReqVO; import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailExcelVO; import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailRespVO; import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO; + +import java.util.List; /** * 库存初始化申请子 Convert @@ -34,4 +33,6 @@ public interface InventoryinitRequestDetailConvert { 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/inventorymoveRequest/InventorymoveRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestDetailConvert.java index 12f67c6e..0c58e9f5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestDetailConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.inventorymoveRequest; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailCreateReqVO; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailExcelVO; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailRespVO; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; + +import java.util.List; /** * 库存转移申请子 Convert @@ -34,4 +33,6 @@ public interface InventorymoveRequestDetailConvert { 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/production/ProductionDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/production/ProductionDetailConvert.java index c7e5693b..f8c86355 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/production/ProductionDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/production/ProductionDetailConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.production; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.production.vo.ProductionDetailCreateReqVO; import com.win.module.wms.controller.production.vo.ProductionDetailExcelVO; import com.win.module.wms.controller.production.vo.ProductionDetailRespVO; import com.win.module.wms.controller.production.vo.ProductionDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.production.ProductionDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.production.ProductionDetailDO; + +import java.util.List; /** * 生产计划子 Convert @@ -34,4 +33,6 @@ public interface ProductionDetailConvert { 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/productscrapRequest/ProductscrapRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java index 9adc4d04..1e5d62ee 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productscrapRequest/ProductscrapRequestDetailConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.productscrapRequest; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailCreateReqVO; import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailExcelVO; import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailRespVO; import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; + +import java.util.List; /** * 制品报废申请子 Convert @@ -34,4 +33,6 @@ public interface ProductscrapRequestDetailConvert { 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/purchase/PurchaseDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseDetailConvert.java index cbc88496..634276f1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseDetailConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.purchase; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.purchase.vo.PurchaseDetailCreateReqVO; import com.win.module.wms.controller.purchase.vo.PurchaseDetailExcelVO; import com.win.module.wms.controller.purchase.vo.PurchaseDetailRespVO; import com.win.module.wms.controller.purchase.vo.PurchaseDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; + +import java.util.List; /** * 采购订单子 Convert @@ -34,4 +33,6 @@ public interface PurchaseDetailConvert { 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/purchasePlan/PurchasePlanDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasePlan/PurchasePlanDetailConvert.java index cb8421cc..b24e32bc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasePlan/PurchasePlanDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasePlan/PurchasePlanDetailConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.purchasePlan; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanDetailCreateReqVO; import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanDetailExcelVO; import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanDetailRespVO; import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO; + +import java.util.List; /** * 要货计划子 Convert @@ -34,4 +33,6 @@ public interface PurchasePlanDetailConvert { 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/purchasereceiptRequest/PurchasereceiptRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereceiptRequest/PurchasereceiptRequestDetailConvert.java index 08d6cc6b..a246b138 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 @@ -1,13 +1,15 @@ package com.win.module.wms.convert.purchasereceiptRequest; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailExcelVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailRespVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.controller.purchasereceiptRequest.vo.*; -import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; + +import java.util.List; /** * 采购收货申请子 Convert @@ -31,4 +33,6 @@ public interface PurchasereceiptRequestDetailConvert { 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/repleinshRequest/RepleinshRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/repleinshRequest/RepleinshRequestDetailConvert.java index 76aa9f73..fe955798 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/repleinshRequest/RepleinshRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/repleinshRequest/RepleinshRequestDetailConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.repleinshRequest; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestDetailCreateReqVO; import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestDetailExcelVO; import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestDetailRespVO; import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestDetailDO; + +import java.util.List; /** * 补料申请子 Convert @@ -34,4 +33,6 @@ public interface RepleinshRequestDetailConvert { 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/sale/SaleDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/sale/SaleDetailConvert.java index 08a9c1a3..cdfc401b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/sale/SaleDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/sale/SaleDetailConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.sale; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.sale.vo.SaleDetailCreateReqVO; import com.win.module.wms.controller.sale.vo.SaleDetailExcelVO; import com.win.module.wms.controller.sale.vo.SaleDetailRespVO; import com.win.module.wms.controller.sale.vo.SaleDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.sale.SaleDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.sale.SaleDetailDO; + +import java.util.List; /** * 销售订单子 Convert @@ -34,4 +33,6 @@ public interface SaleDetailConvert { 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/supplierdeliverRequest/SupplierdeliverRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplierdeliverRequest/SupplierdeliverRequestDetailConvert.java index 0170a65a..8405261a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplierdeliverRequest/SupplierdeliverRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplierdeliverRequest/SupplierdeliverRequestDetailConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.supplierdeliverRequest; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailCreateReqVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailExcelVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailRespVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestDetailDO; + +import java.util.List; /** * 供应商发货申请子 Convert @@ -34,4 +33,6 @@ public interface SupplierdeliverRequestDetailConvert { 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/work/WorkDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/work/WorkDetailConvert.java index 817d7967..c33f5ba3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/work/WorkDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/work/WorkDetailConvert.java @@ -1,16 +1,15 @@ package com.win.module.wms.convert.work; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.controller.work.vo.WorkDetailCreateReqVO; import com.win.module.wms.controller.work.vo.WorkDetailExcelVO; import com.win.module.wms.controller.work.vo.WorkDetailRespVO; import com.win.module.wms.controller.work.vo.WorkDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.work.WorkDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; -import com.win.module.wms.dal.dataobject.work.WorkDetailDO; + +import java.util.List; /** * 生产订单子 Convert @@ -34,4 +33,6 @@ public interface WorkDetailConvert { 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/service/deliverPlan/DeliverPlanMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainService.java index 6a5629e9..0c836f5d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainService.java @@ -1,15 +1,13 @@ package com.win.module.wms.service.deliverPlan; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainCreateReqVO; -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainExportReqVO; -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainPageReqVO; -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.deliverPlan.vo.*; +import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 发货计划主 Service 接口 @@ -79,4 +77,13 @@ public interface DeliverPlanMainService { */ List getDeliverPlanMainList(DeliverPlanMainExportReqVO exportReqVO); + /** + * 批量导入采购索赔申请主信息 + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importDeliverPlanMainList(List datas, Integer mode, boolean updatePart); + } 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 8e07164d..8f0859ff 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 @@ -1,24 +1,26 @@ package com.win.module.wms.service.deliverPlan; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainCreateReqVO; -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainExportReqVO; -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainPageReqVO; -import com.win.module.wms.controller.deliverPlan.vo.DeliverPlanMainUpdateReqVO; -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.deliverPlan.DeliverPlanMainDO; import com.win.framework.common.pojo.PageResult; - +import com.win.module.wms.controller.deliverPlan.vo.*; +import com.win.module.wms.convert.deliverPlan.DeliverPlanDetailConvert; import com.win.module.wms.convert.deliverPlan.DeliverPlanMainConvert; +import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanDetailDO; +import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO; +import com.win.module.wms.dal.mysql.deliverPlan.DeliverPlanDetailMapper; import com.win.module.wms.dal.mysql.deliverPlan.DeliverPlanMainMapper; +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.*; +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; /** * 发货计划主 Service 实现类 @@ -31,6 +33,8 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { @Resource private DeliverPlanMainMapper deliverPlanMainMapper; + @Resource + private DeliverPlanDetailMapper deliverPlanDetailMapper; @Override public Long createDeliverPlanMain(DeliverPlanMainCreateReqVO createReqVO) { @@ -86,5 +90,36 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { public List getDeliverPlanMainList(DeliverPlanMainExportReqVO exportReqVO) { return deliverPlanMainMapper.selectList(exportReqVO); } + @Override + public List importDeliverPlanMainList(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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + + DeliverPlanMainDO createObj =DeliverPlanMainConvert.INSTANCE.convert(createReqVO); + deliverPlanMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = DeliverPlanDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (DeliverPlanDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + deliverPlanDetailMapper.insertBatch(subDOList); + }); + return errorList; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainService.java index b68807ed..eb03a10a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/demandforecasting/DemandforecastingMainService.java @@ -1,15 +1,13 @@ package com.win.module.wms.service.demandforecasting; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainCreateReqVO; -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainExportReqVO; -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainPageReqVO; -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.demandforecasting.vo.*; +import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingMainDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 要货预测主 Service 接口 @@ -81,4 +79,14 @@ public interface DemandforecastingMainService { */ List getDemandforecastingMainList(DemandforecastingMainExportReqVO exportReqVO); + /** + * 批量导入采购索赔申请主信息 + * + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importDemandforecastingRequestList(List datas, Integer mode, boolean updatePart); + } 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 4f19c8ec..5bcd605c 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,24 +1,28 @@ package com.win.module.wms.service.demandforecasting; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainCreateReqVO; -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainExportReqVO; -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainPageReqVO; -import com.win.module.wms.controller.demandforecasting.vo.DemandforecastingMainUpdateReqVO; -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.demandforecasting.DemandforecastingMainDO; import com.win.framework.common.pojo.PageResult; - +import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.module.wms.controller.demandforecasting.vo.*; +import com.win.module.wms.convert.demandforecasting.DemandforecastingDetailConvert; import com.win.module.wms.convert.demandforecasting.DemandforecastingMainConvert; +import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingDetailDO; +import com.win.module.wms.dal.dataobject.demandforecasting.DemandforecastingMainDO; +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 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.*; +import static com.win.module.wms.enums.ErrorCodeConstants.DEMANDFORECASTING_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; /** * 要货预测主 Service 实现类 @@ -31,6 +35,8 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe @Resource private DemandforecastingMainMapper demandforecastingMainMapper; + @Resource + private DemandforecastingDetailMapper demandforecastingDetailMapper; @Override public Long createDemandforecastingMain(DemandforecastingMainCreateReqVO createReqVO) { @@ -88,4 +94,37 @@ public class DemandforecastingMainServiceImpl implements DemandforecastingMainSe return demandforecastingMainMapper.selectList(exportReqVO); } + public List importDemandforecastingRequestList(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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } +// } + createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + DemandforecastingMainDO createObj = DemandforecastingMainConvert.INSTANCE.convert(createReqVO); + demandforecastingMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = DemandforecastingDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (DemandforecastingDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setMasterId(createReqVO.getId()); + detailDO.setNumber(createReqVO.getNumber()); + } + demandforecastingDetailMapper.insertBatch(subDOList); + }); + return errorList; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainService.java index 52db0695..ba682b0d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainService.java @@ -1,15 +1,13 @@ package com.win.module.wms.service.inventorychangeRequest; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainCreateReqVO; -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainExportReqVO; -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainPageReqVO; -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.inventorychangeRequest.vo.*; +import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 库存修改申请主 Service 接口 @@ -79,4 +77,13 @@ public interface InventorychangeRequestMainService { */ List getInventorychangeRequestMainList(InventorychangeRequestMainExportReqVO exportReqVO); + /** + * 批量导入采购索赔申请主信息 + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importInventorychangeRequestMainList(List datas, Integer mode, boolean updatePart); + } 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 0923192c..cd288cd6 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 @@ -1,24 +1,26 @@ package com.win.module.wms.service.inventorychangeRequest; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainCreateReqVO; -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainExportReqVO; -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainPageReqVO; -import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainUpdateReqVO; -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.inventorychangeRequest.InventorychangeRequestMainDO; import com.win.framework.common.pojo.PageResult; - +import com.win.module.wms.controller.inventorychangeRequest.vo.*; +import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestDetailConvert; import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestMainConvert; +import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestDetailDO; +import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO; +import com.win.module.wms.dal.mysql.inventorychangeRequest.InventorychangeRequestDetailMapper; import com.win.module.wms.dal.mysql.inventorychangeRequest.InventorychangeRequestMainMapper; +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.*; +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; /** * 库存修改申请主 Service 实现类 @@ -31,6 +33,8 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq @Resource private InventorychangeRequestMainMapper inventorychangeRequestMainMapper; + @Resource + private InventorychangeRequestDetailMapper inventorychangeRequestDetailMapper; @Override public Long createInventorychangeRequestMain(InventorychangeRequestMainCreateReqVO createReqVO) { @@ -87,4 +91,35 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq return inventorychangeRequestMainMapper.selectList(exportReqVO); } + @Override + public List importInventorychangeRequestMainList(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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + InventorychangeRequestMainDO createObj = InventorychangeRequestMainConvert.INSTANCE.convert(createReqVO); + inventorychangeRequestMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = InventorychangeRequestDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (InventorychangeRequestDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + inventorychangeRequestDetailMapper.insertBatch(subDOList); + }); + return errorList; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainService.java index adaec648..8bdc6d09 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainService.java @@ -1,15 +1,13 @@ package com.win.module.wms.service.inventoryinitRequest; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainCreateReqVO; -import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainExportReqVO; -import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainPageReqVO; -import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.inventoryinitRequest.vo.*; +import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 库存初始化申请主 Service 接口 @@ -79,4 +77,13 @@ public interface InventoryinitRequestMainService { */ List getInventoryinitRequestMainList(InventoryinitRequestMainExportReqVO exportReqVO); + /** + * 批量导入采购索赔申请主信息 + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importInventoryinitRequestMainList(List datas, Integer mode, boolean updatePart); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java index d76142ff..d89e291d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java @@ -1,24 +1,26 @@ package com.win.module.wms.service.inventoryinitRequest; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainCreateReqVO; -import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainExportReqVO; -import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainPageReqVO; -import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainUpdateReqVO; -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.inventoryinitRequest.InventoryinitRequestMainDO; import com.win.framework.common.pojo.PageResult; - +import com.win.module.wms.controller.inventoryinitRequest.vo.*; +import com.win.module.wms.convert.inventoryinitRequest.InventoryinitRequestDetailConvert; import com.win.module.wms.convert.inventoryinitRequest.InventoryinitRequestMainConvert; +import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO; +import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO; +import com.win.module.wms.dal.mysql.inventoryinitRequest.InventoryinitRequestDetailMapper; import com.win.module.wms.dal.mysql.inventoryinitRequest.InventoryinitRequestMainMapper; +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.*; +import static com.win.module.wms.enums.ErrorCodeConstants.INVENTORYINIT_REQUEST_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; /** * 库存初始化申请主 Service 实现类 @@ -31,6 +33,8 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest @Resource private InventoryinitRequestMainMapper inventoryinitRequestMainMapper; + @Resource + private InventoryinitRequestDetailMapper inventoryinitRequestDetailMapper; @Override public Long createInventoryinitRequestMain(InventoryinitRequestMainCreateReqVO createReqVO) { @@ -87,4 +91,36 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest return inventoryinitRequestMainMapper.selectList(exportReqVO); } + @Override + public List importInventoryinitRequestMainList(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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + + InventoryinitRequestMainDO createObj = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO); + inventoryinitRequestMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = InventoryinitRequestDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (InventoryinitRequestDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + inventoryinitRequestDetailMapper.insertBatch(subDOList); + }); + return errorList; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainService.java index 37e54d2e..0e51e2e8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainService.java @@ -1,15 +1,13 @@ package com.win.module.wms.service.inventorymoveRequest; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainCreateReqVO; -import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExportReqVO; -import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainPageReqVO; -import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.inventorymoveRequest.vo.*; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 库存转移申请主 Service 接口 @@ -80,4 +78,14 @@ public interface InventorymoveRequestMainService { */ List getInventorymoveRequestMainList(InventorymoveRequestMainExportReqVO exportReqVO); + /** + * 批量导入采购索赔申请主信息 + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importInventorymoveRequestMainList(List datas, Integer mode, boolean updatePart); + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java index 3adcecec..6c7e8647 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java @@ -1,24 +1,26 @@ package com.win.module.wms.service.inventorymoveRequest; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainCreateReqVO; -import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExportReqVO; -import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainPageReqVO; -import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainUpdateReqVO; -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.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.framework.common.pojo.PageResult; - +import com.win.module.wms.controller.inventorymoveRequest.vo.*; +import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestDetailConvert; import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; +import com.win.module.wms.dal.mysql.inventorymoveRequest.InventorymoveRequestDetailMapper; import com.win.module.wms.dal.mysql.inventorymoveRequest.InventorymoveRequestMainMapper; +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.*; +import static com.win.module.wms.enums.ErrorCodeConstants.INVENTORYMOVE_REQUEST_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; /** * 库存转移申请主 Service 实现类 @@ -32,6 +34,9 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest @Resource private InventorymoveRequestMainMapper inventorymoveRequestMainMapper; + @Resource + private InventorymoveRequestDetailMapper inventorymoveRequestDetailMapper; + @Override public Long createInventorymoveRequestMain(InventorymoveRequestMainCreateReqVO createReqVO) { // 插入 @@ -78,7 +83,7 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest public PageResult getInventorymoveRequestMainPage(InventorymoveRequestMainPageReqVO pageReqVO) { return inventorymoveRequestMainMapper.selectPage(pageReqVO); } - + @Override public PageResult getInventorymoveRequestMainSenior(CustomConditions conditions) { return inventorymoveRequestMainMapper.selectSenior(conditions); @@ -88,4 +93,35 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest return inventorymoveRequestMainMapper.selectList(exportReqVO); } + @Override + public List importInventorymoveRequestMainList(List datas, Integer mode, boolean updatePart) { + if (CollUtil.isEmpty(datas)) { + throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); + } + List< InventorymoveRequestMainImportErrorVO> errorList = new ArrayList<>(); + datas.forEach(createReqVO -> { + // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + InventorymoveRequestMainDO createObj = InventorymoveRequestMainConvert.INSTANCE.convert(createReqVO); + inventorymoveRequestMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = InventorymoveRequestDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for ( InventorymoveRequestDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + inventorymoveRequestDetailMapper.insertBatch(subDOList); + }); + return errorList; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainService.java index 66466b16..1e9db347 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainService.java @@ -2,10 +2,7 @@ package com.win.module.wms.service.production; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.production.vo.ProductionMainCreateReqVO; -import com.win.module.wms.controller.production.vo.ProductionMainExportReqVO; -import com.win.module.wms.controller.production.vo.ProductionMainPageReqVO; -import com.win.module.wms.controller.production.vo.ProductionMainUpdateReqVO; +import com.win.module.wms.controller.production.vo.*; import com.win.module.wms.dal.dataobject.production.ProductionDetailDO; import com.win.module.wms.dal.dataobject.production.ProductionMainDO; @@ -89,4 +86,14 @@ public interface ProductionMainService { * @return 分页列表 */ PageResult getProductionMainSenior(CustomConditions conditions); + + /** + * 批量导入采购索赔申请主信息 + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importProductionMainList(List datas, Integer mode, boolean updatePart); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainServiceImpl.java index ea4b06dc..a81f3a8f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/production/ProductionMainServiceImpl.java @@ -1,13 +1,12 @@ package com.win.module.wms.service.production; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.exceptions.UtilException; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.production.vo.ProductionMainCreateReqVO; -import com.win.module.wms.controller.production.vo.ProductionMainExportReqVO; -import com.win.module.wms.controller.production.vo.ProductionMainPageReqVO; -import com.win.module.wms.controller.production.vo.ProductionMainUpdateReqVO; +import com.win.module.wms.controller.production.vo.*; +import com.win.module.wms.convert.production.ProductionDetailConvert; import com.win.module.wms.convert.production.ProductionMainConvert; import com.win.module.wms.dal.dataobject.production.ProductionDetailDO; import com.win.module.wms.dal.dataobject.production.ProductionMainDO; @@ -18,11 +17,13 @@ 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.*; +import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTION_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; /** * 生产计划主 Service 实现类 @@ -122,4 +123,37 @@ public class ProductionMainServiceImpl implements ProductionMainService { public PageResult getProductionMainSenior(CustomConditions conditions) { return productionMainMapper.selectSenior(conditions); } + + @Override + public List importProductionMainList(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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + + ProductionMainDO createObj = ProductionMainConvert.INSTANCE.convert(createReqVO); + productionMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = ProductionDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (ProductionDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + productionDetailMapper.insertBatch(subDOList); + }); + return errorList; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java index 8382f106..c5ce947f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java @@ -1,15 +1,13 @@ package com.win.module.wms.service.productscrapRequest; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainCreateReqVO; -import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainExportReqVO; -import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainPageReqVO; -import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.productscrapRequest.vo.*; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 制品报废申请主 Service 接口 @@ -80,4 +78,13 @@ public interface ProductscrapRequestMainService { */ List getProductscrapRequestMainList(ProductscrapRequestMainExportReqVO exportReqVO); + /** + * 批量导入采购索赔申请主信息 + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importProductscrapRequestMainList(List datas, Integer mode, boolean updatePart); + } 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 823a4877..d08888fb 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 @@ -1,24 +1,26 @@ package com.win.module.wms.service.productscrapRequest; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainCreateReqVO; -import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainExportReqVO; -import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainPageReqVO; -import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainUpdateReqVO; -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.productscrapRequest.ProductscrapRequestMainDO; import com.win.framework.common.pojo.PageResult; - +import com.win.module.wms.controller.productscrapRequest.vo.*; +import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestDetailConvert; import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO; +import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO; +import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestDetailMapper; import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestMainMapper; +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.*; +import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTSCRAP_REQUEST_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; /** * 制品报废申请主 Service 实现类 @@ -32,6 +34,9 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa @Resource private ProductscrapRequestMainMapper productscrapRequestMainMapper; + @Resource + private ProductscrapRequestDetailMapper productscrapRequestDetailMapper; + @Override public Long createProductscrapRequestMain(ProductscrapRequestMainCreateReqVO createReqVO) { // 插入 @@ -86,5 +91,37 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa public List getProductscrapRequestMainList(ProductscrapRequestMainExportReqVO exportReqVO) { return productscrapRequestMainMapper.selectList(exportReqVO); } + + @Override + public List importProductscrapRequestMainList(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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + + ProductscrapRequestMainDO createObj = ProductscrapRequestMainConvert.INSTANCE.convert(createReqVO); + productscrapRequestMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (ProductscrapRequestDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + productscrapRequestDetailMapper.insertBatch(subDOList); + }); + return errorList; + } } 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 37c08f82..54ba59d7 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 @@ -1,16 +1,14 @@ package com.win.module.wms.service.purchase; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.purchase.vo.PurchaseMainCreateReqVO; -import com.win.module.wms.controller.purchase.vo.PurchaseMainExportReqVO; -import com.win.module.wms.controller.purchase.vo.PurchaseMainPageReqVO; -import com.win.module.wms.controller.purchase.vo.PurchaseMainUpdateReqVO; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.purchase.vo.*; import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO; -import com.win.framework.common.pojo.PageResult; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 采购订单主 Service 接口 @@ -91,4 +89,12 @@ public interface PurchaseMainService { */ public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode,String poLine); + /** + * Order----VPur + * 校验采购订单明细 + * @author chenfang + * @return 采购订单子列表 + */ + public List importPurchaseMaintList(List datas, Integer mode, boolean updatePart); + } 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 137a018c..11e69e58 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 @@ -1,28 +1,43 @@ package com.win.module.wms.service.purchase; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.exceptions.UtilException; 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.module.wms.controller.purchase.vo.PurchaseMainCreateReqVO; -import com.win.module.wms.controller.purchase.vo.PurchaseMainExportReqVO; -import com.win.module.wms.controller.purchase.vo.PurchaseMainPageReqVO; -import com.win.module.wms.controller.purchase.vo.PurchaseMainUpdateReqVO; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.purchase.vo.*; +import com.win.module.wms.controller.rule.vo.RuleRespVO; +import com.win.module.wms.convert.purchase.PurchaseMainConvert; +import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; +import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO; +import com.win.module.wms.dal.dataobject.shift.ShiftDO; +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.service.currencyexchange.CurrencyexchangeService; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.itempackaging.ItempackagingService; +import com.win.module.wms.service.rule.RuleService; +import com.win.module.wms.service.shift.ShiftService; +import com.win.module.wms.service.stdcostprice.StdcostpriceService; +import com.win.module.wms.service.supplieritem.SupplieritemService; +import org.springframework.beans.BeanUtils; 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.purchase.PurchaseMainDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.purchase.PurchaseMainConvert; -import com.win.module.wms.dal.mysql.purchase.PurchaseMainMapper; +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.*; +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; /** * 采购订单主 Service 实现类 @@ -35,6 +50,22 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { @Resource private PurchaseMainMapper purchaseMainMapper; + @Resource + private ItembasicService itembasicService; + @Resource + private ItempackagingService itempackagingService; + @Resource + private ShiftService shiftService; + @Resource + private SupplieritemService supplieritemService; + @Resource + private StdcostpriceService stdcostpriceService; + @Resource + private CurrencyexchangeService currencyexchangeService; + @Resource + private RuleService ruleService; + @Resource + private PurchaseMainService purchaseMainService; @Resource private PurchaseDetailMapper purchaseDetailMapper; @@ -119,4 +150,80 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { throw new UtilException( "采购订单" + pnumber + "无效"); } } + + public List importPurchaseMaintList(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 importRemark = ""; + //主表的验证 + //校验供应商基础信息 + try { + ShiftDO shiftDO = shiftService.selectShiftExist(createReqVO.getSupplierCode()); + BeanUtils.copyProperties(createReqVO, shiftDO); + } catch (ServiceException ex) { + importRemark += ex.getMessage() + ","; + } + + //校验供应商送货策略 + try { + RuleRespVO ruleRespVO = ruleService.deliverGoods(null, createReqVO.getSupplierCode(), null); + String json = ruleRespVO.getConfiguration(); + } catch (ServiceException ex) { + importRemark += ex.getMessage() + ","; + } + //子表的验证 + if (createReqVO.getSubList() != null) { + for (PurchaseDetailCreateReqVO purchaseDetailCreateReqVO : createReqVO.getSubList()) { + // 校验物品基础信息 + try { + ItembasicDO itembasicDO = itembasicService.selectItembasic(purchaseDetailCreateReqVO.getItemCode()); + if (itembasicDO.getUom() != purchaseDetailCreateReqVO.getUom()) { + importRemark += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailCreateReqVO.getUom() + ","; + } + purchaseDetailCreateReqVO.setProjectCode(itembasicDO.getCode()); + } catch (ServiceException ex) { + importRemark += ex.getMessage() + ","; + } + + // 校验物品标包信息 + try { + ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(purchaseDetailCreateReqVO.getItemCode()); + purchaseDetailCreateReqVO.setStdPackUnit(itempackagingDO.getStdPackUnit()); + purchaseDetailCreateReqVO.setStdPackQty(itempackagingDO.getStdPackQty()); + } catch (ServiceException ex) { + importRemark += ex.getMessage() + ","; + } + + // 校验供应商物品 + try { + SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(createReqVO.getSupplierCode(), purchaseDetailCreateReqVO.getItemCode()); + purchaseDetailCreateReqVO.setSupplierUom(supplieritemDO.getSupplierUom()); + purchaseDetailCreateReqVO.setStdPackQty(supplieritemDO.getPackQty()); + purchaseDetailCreateReqVO.setConvertRate(supplieritemDO.getConvertRate()); + } catch (ServiceException ex) { + importRemark += ex.getMessage() + ","; + } + + // 校验标准成本价格 + try { + StdcostpriceDO stdcostpriceDO = stdcostpriceService.selectStdcostpriceExist(createReqVO.getSupplierCode(), purchaseDetailCreateReqVO.getItemCode()); + purchaseDetailCreateReqVO.setSinglePrice(stdcostpriceDO.getPrice()); + if ("CNY".equals(stdcostpriceDO.getCurrency())) { + purchaseDetailCreateReqVO.setAmount(purchaseDetailCreateReqVO.getSinglePrice().multiply(purchaseDetailCreateReqVO.getOrderQty())); + } else { + CurrencyexchangeDO currencyexchangeDO = currencyexchangeService.selectCurrencyexchangeExist(stdcostpriceDO.getCurrency(), "CNY"); + purchaseDetailCreateReqVO.setAmount(purchaseDetailCreateReqVO.getSinglePrice().multiply(purchaseDetailCreateReqVO.getOrderQty()).multiply(currencyexchangeDO.getRate())); + } + } catch (ServiceException ex) { + importRemark += ex.getMessage() + ","; + } + } + } + }); + return errorList; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java index d003f4d8..966f356f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java @@ -1,16 +1,14 @@ package com.win.module.wms.service.purchasePlan; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainCreateReqVO; -import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainExportReqVO; -import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainPageReqVO; -import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainUpdateReqVO; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.purchasePlan.vo.*; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO; -import com.win.framework.common.pojo.PageResult; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 要货计划主 Service 接口 @@ -89,4 +87,13 @@ public interface PurchasePlanMainService { * @return */ public PurchasePlanDetailDO selectPurchasePlan(String pnubmer, String psupplierCode, String ppoNumber, String ppoLine, String pitemCode); + + /** + * 批量导入采购索赔申请主信息 + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importPurchasePlanMainList(List datas, Integer mode, boolean updatePart); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java index 46311dd2..ee0a6066 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java @@ -1,28 +1,30 @@ package com.win.module.wms.service.purchasePlan; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.exceptions.UtilException; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainCreateReqVO; -import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainExportReqVO; -import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainPageReqVO; -import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainUpdateReqVO; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.module.wms.controller.purchasePlan.vo.*; +import com.win.module.wms.convert.purchasePlan.PurchasePlanDetailConvert; +import com.win.module.wms.convert.purchasePlan.PurchasePlanMainConvert; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO; +import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO; import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanDetailMapper; +import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanMainMapper; +import com.win.module.wms.enums.DictTypeConstants; 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.purchasePlan.PurchasePlanMainDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.purchasePlan.PurchasePlanMainConvert; -import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanMainMapper; +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.*; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASE_PLAN_MAIN_NOT_EXISTS; /** * 要货计划主 Service 实现类 @@ -120,4 +122,37 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService { throw new UtilException( "根据计划单号" + pnubmer + ",供应商代码" + psupplierCode + "未查找到要货计划"); } } + + public List importPurchasePlanMainList(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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + + createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + PurchasePlanMainDO createObj =PurchasePlanMainConvert.INSTANCE.convert(createReqVO); + purchasePlanMainMapper.insert(createObj); + List< PurchasePlanDetailCreateReqVO> subList = createReqVO.getSubList(); + List< PurchasePlanDetailDO> subDOList = PurchasePlanDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (PurchasePlanDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + purchasePlanDetailMapper.insertBatch(subDOList); + }); + return errorList; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainService.java index 968d9eb1..65bdb60c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainService.java @@ -1,15 +1,13 @@ package com.win.module.wms.service.purchasereceiptRequest; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExportReqVO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainPageReqVO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.purchasereceiptRequest.vo.*; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 采购收货申请主 Service 接口 @@ -80,4 +78,14 @@ public interface PurchasereceiptRequestMainService { */ List getPurchasereceiptRequestMainList(PurchasereceiptRequestMainExportReqVO exportReqVO); + + /** + * 批量导入采购索赔申请主信息 + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importPurchasereceiptRequestMainList(List datas, Integer mode, boolean updatePart); + } 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 636b0aa9..be0d1472 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 @@ -1,24 +1,28 @@ package com.win.module.wms.service.purchasereceiptRequest; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainExportReqVO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainPageReqVO; -import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainUpdateReqVO; -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.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.framework.common.pojo.PageResult; - +import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.module.wms.controller.purchasereceiptRequest.vo.*; +import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert; import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; +import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestDetailMapper; import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestMainMapper; +import com.win.module.wms.enums.DictTypeConstants; +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.*; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS; /** * 采购收货申请主 Service 实现类 @@ -32,6 +36,9 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq @Resource private PurchasereceiptRequestMainMapper purchasereceiptRequestMainMapper; + @Resource + private PurchasereceiptRequestDetailMapper purchasereceiptRequestDetailMapper; + @Override public Long createPurchasereceiptRequestMain(PurchasereceiptRequestMainCreateReqVO createReqVO) { // 插入 @@ -87,4 +94,37 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq return purchasereceiptRequestMainMapper.selectList(exportReqVO); } + @Override + public List importPurchasereceiptRequestMainList(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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + + createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + PurchasereceiptRequestMainDO createObj = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO); + purchasereceiptRequestMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = PurchasereceiptRequestDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (PurchasereceiptRequestDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + purchasereceiptRequestDetailMapper.insertBatch(subDOList); + }); + return errorList; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainService.java index d3441259..f17efc10 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainService.java @@ -1,15 +1,13 @@ package com.win.module.wms.service.repleinshRequest; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestMainCreateReqVO; -import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestMainExportReqVO; -import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestMainPageReqVO; -import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.repleinshRequest.vo.*; +import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 补料申请主 Service 接口 @@ -78,5 +76,13 @@ public interface RepleinshRequestMainService { * @return 补料申请主列表 */ List getRepleinshRequestMainList(RepleinshRequestMainExportReqVO exportReqVO); + /** + * 批量导入采购索赔申请主信息 + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importRepleinshRequestMainList(List datas, Integer mode, boolean updatePart); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java index e29e14a6..52271bdf 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java @@ -1,22 +1,27 @@ package com.win.module.wms.service.repleinshRequest; +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.repleinshRequest.vo.RepleinshRequestMainCreateReqVO; -import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestMainExportReqVO; -import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestMainPageReqVO; -import com.win.module.wms.controller.repleinshRequest.vo.RepleinshRequestMainUpdateReqVO; +import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.module.wms.controller.repleinshRequest.vo.*; +import com.win.module.wms.convert.repleinshRequest.RepleinshRequestDetailConvert; import com.win.module.wms.convert.repleinshRequest.RepleinshRequestMainConvert; +import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestDetailDO; import com.win.module.wms.dal.dataobject.repleinshRequest.RepleinshRequestMainDO; +import com.win.module.wms.dal.mysql.repleinshRequest.RepleinshRequestDetailMapper; import com.win.module.wms.dal.mysql.repleinshRequest.RepleinshRequestMainMapper; +import com.win.module.wms.enums.DictTypeConstants; 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.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; import static com.win.module.wms.enums.ErrorCodeConstants.REPLEINSH_REQUEST_MAIN_NOT_EXISTS; /** @@ -31,6 +36,9 @@ public class RepleinshRequestMainServiceImpl implements RepleinshRequestMainServ @Resource private RepleinshRequestMainMapper repleinshRequestMainMapper; + @Resource + private RepleinshRequestDetailMapper repleinshRequestDetailMapper; + @Override public Long createRepleinshRequestMain(RepleinshRequestMainCreateReqVO createReqVO) { // 插入 @@ -88,4 +96,37 @@ public class RepleinshRequestMainServiceImpl implements RepleinshRequestMainServ return repleinshRequestMainMapper.selectList(exportReqVO); } + @Override + public List importRepleinshRequestMainList(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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + + createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + RepleinshRequestMainDO createObj =RepleinshRequestMainConvert.INSTANCE.convert(createReqVO); + repleinshRequestMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = RepleinshRequestDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (RepleinshRequestDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + repleinshRequestDetailMapper.insertBatch(subDOList); + }); + return errorList; + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleMainService.java index 09dd04d1..07407a58 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleMainService.java @@ -1,16 +1,14 @@ package com.win.module.wms.service.sale; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.sale.vo.SaleMainCreateReqVO; -import com.win.module.wms.controller.sale.vo.SaleMainExportReqVO; -import com.win.module.wms.controller.sale.vo.SaleMainPageReqVO; -import com.win.module.wms.controller.sale.vo.SaleMainUpdateReqVO; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.sale.vo.*; import com.win.module.wms.dal.dataobject.sale.SaleDetailDO; import com.win.module.wms.dal.dataobject.sale.SaleMainDO; -import com.win.framework.common.pojo.PageResult; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 销售订单主 Service 接口 @@ -88,4 +86,14 @@ public interface SaleMainService { * @return 销售订单子列表 */ public SaleDetailDO selectSaleDetailDoExist(String psoNumber, String psoLine, String pitemCode); + + /** + * 批量导入采购索赔申请主信息 + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importSaleMainList(List datas, Integer mode, boolean updatePart); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleMainServiceImpl.java index eed1063e..ea089597 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/sale/SaleMainServiceImpl.java @@ -1,28 +1,28 @@ package com.win.module.wms.service.sale; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.exceptions.UtilException; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.sale.vo.SaleMainCreateReqVO; -import com.win.module.wms.controller.sale.vo.SaleMainExportReqVO; -import com.win.module.wms.controller.sale.vo.SaleMainPageReqVO; -import com.win.module.wms.controller.sale.vo.SaleMainUpdateReqVO; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.sale.vo.*; +import com.win.module.wms.convert.sale.SaleDetailConvert; +import com.win.module.wms.convert.sale.SaleMainConvert; import com.win.module.wms.dal.dataobject.sale.SaleDetailDO; +import com.win.module.wms.dal.dataobject.sale.SaleMainDO; import com.win.module.wms.dal.mysql.sale.SaleDetailMapper; +import com.win.module.wms.dal.mysql.sale.SaleMainMapper; 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.sale.SaleMainDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.sale.SaleMainConvert; -import com.win.module.wms.dal.mysql.sale.SaleMainMapper; +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.*; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; +import static com.win.module.wms.enums.ErrorCodeConstants.SALE_MAIN_NOT_EXISTS; /** * 销售订单主 Service 实现类 @@ -113,4 +113,36 @@ public class SaleMainServiceImpl implements SaleMainService { throw exception(SALE_MAIN_NOT_EXISTS); } } + + @Override + public List importSaleMainList(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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + + SaleMainDO createObj = SaleMainConvert.INSTANCE.convert(createReqVO); + saleMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = SaleDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (SaleDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + saleDetailMapper.insertBatch(subDOList); + }); + return errorList; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java index 3707dfff..4bc70ba1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java @@ -1,15 +1,13 @@ package com.win.module.wms.service.supplierdeliverRequest; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainCreateReqVO; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainExportReqVO; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainPageReqVO; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.supplierdeliverRequest.vo.*; +import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestMainDO; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 供应商发货申请主 Service 接口 @@ -78,5 +76,14 @@ public interface SupplierdeliverRequestMainService { * @return 供应商发货申请主列表 */ List getSupplierdeliverRequestMainList(SupplierdeliverRequestMainExportReqVO exportReqVO); + /** + * 批量导入采购索赔申请主信息 + * + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importSupplierdeliverRequestMainList(List datas, Integer mode, boolean updatePart); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java index 7d904fbf..7476232d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java @@ -1,24 +1,28 @@ package com.win.module.wms.service.supplierdeliverRequest; +import cn.hutool.core.collection.CollUtil; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainCreateReqVO; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainExportReqVO; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainPageReqVO; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainUpdateReqVO; -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.supplierdeliverRequest.SupplierdeliverRequestMainDO; import com.win.framework.common.pojo.PageResult; - +import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.module.wms.controller.supplierdeliverRequest.vo.*; +import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestDetailConvert; import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestMainConvert; +import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestDetailDO; +import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestMainDO; +import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverRequestDetailMapper; import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverRequestMainMapper; +import com.win.module.wms.enums.DictTypeConstants; +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.*; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; +import static com.win.module.wms.enums.ErrorCodeConstants.SUPPLIERDELIVER_REQUEST_MAIN_NOT_EXISTS; /** * 供应商发货申请主 Service 实现类 @@ -31,6 +35,8 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq @Resource private SupplierdeliverRequestMainMapper supplierdeliverRequestMainMapper; + @Resource + private SupplierdeliverRequestDetailMapper supplierdeliverRequestDetailMapper; @Override public Long createSupplierdeliverRequestMain(SupplierdeliverRequestMainCreateReqVO createReqVO) { @@ -49,10 +55,12 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq SupplierdeliverRequestMainDO updateObj = SupplierdeliverRequestMainConvert.INSTANCE.convert(updateReqVO); supplierdeliverRequestMainMapper.updateById(updateObj); } + @Override public PageResult getSupplierdeliverRequestMainSenior(CustomConditions conditions) { return supplierdeliverRequestMainMapper.selectSenior(conditions); } + @Override public void deleteSupplierdeliverRequestMain(Long id) { // 校验存在 @@ -87,4 +95,37 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq return supplierdeliverRequestMainMapper.selectList(exportReqVO); } + + public List importSupplierdeliverRequestMainList(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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + + createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + SupplierdeliverRequestMainDO createObj = SupplierdeliverRequestMainConvert.INSTANCE.convert(createReqVO); + supplierdeliverRequestMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = SupplierdeliverRequestDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (SupplierdeliverRequestDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + supplierdeliverRequestDetailMapper.insertBatch(subDOList); + }); + return errorList; + } + } 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 c562c130..c6d1e630 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 @@ -1,17 +1,14 @@ package com.win.module.wms.service.work; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.work.vo.WorkMainCreateReqVO; -import com.win.module.wms.controller.work.vo.WorkMainExportReqVO; -import com.win.module.wms.controller.work.vo.WorkMainPageReqVO; -import com.win.module.wms.controller.work.vo.WorkMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.work.vo.*; import com.win.module.wms.dal.dataobject.work.WorkDetailDO; import com.win.module.wms.dal.dataobject.work.WorkMainDO; -import com.win.framework.common.pojo.PageResult; + +import javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 生产订单主 Service 接口 @@ -90,4 +87,15 @@ public interface WorkMainService { * @return */ WorkDetailDO selectWorkExist(String pnumber,String pitemCode); + + /** + * 批量导入采购索赔申请主信息 + * @param datas 导入采购索赔申请主信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param updatePart 是否支持更新 + * @return 导入结果 + */ + public List importWorkMainList(List datas, Integer mode, boolean updatePart); + + } 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 29a156e4..3c60904b 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 @@ -1,30 +1,28 @@ package com.win.module.wms.service.work; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.exceptions.UtilException; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.win.framework.common.exception.ErrorCode; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.work.vo.WorkMainCreateReqVO; -import com.win.module.wms.controller.work.vo.WorkMainExportReqVO; -import com.win.module.wms.controller.work.vo.WorkMainPageReqVO; -import com.win.module.wms.controller.work.vo.WorkMainUpdateReqVO; -import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.work.vo.*; +import com.win.module.wms.convert.work.WorkDetailConvert; +import com.win.module.wms.convert.work.WorkMainConvert; 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 org.springframework.stereotype.Service; -import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; -import java.util.*; - -import com.win.module.wms.dal.dataobject.work.WorkMainDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.work.WorkMainConvert; -import com.win.module.wms.dal.mysql.work.WorkMainMapper; +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.*; +import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; +import static com.win.module.wms.enums.ErrorCodeConstants.WORK_MAIN_NOT_EXISTS; /** * 生产订单主 Service 实现类 @@ -114,4 +112,36 @@ public class WorkMainServiceImpl implements WorkMainService { } }throw exception(WORK_MAIN_NOT_EXISTS); } + + @Override + 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 + boolean isError = false; +// try { +// if(mode != null){ +// validatePurchaseclaimRequestMainExists(null); +// } +// } catch (ServiceException ex) { +// isError = true; +// importRemark += ex.getMessage() + ","; +// } + + WorkMainDO createObj = WorkMainConvert.INSTANCE.convert(createReqVO); + workMainMapper.insert(createObj); + List subList = createReqVO.getSubList(); + List subDOList = WorkDetailConvert.INSTANCE.convertList03(subList); + // 新增子表数据 + for (WorkDetailDO detailDO : subDOList) { + // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList + detailDO.setNumber(createReqVO.getNumber()); + } + workDetailMapper.insertBatch(subDOList); + }); + return errorList; + } }