diff --git a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java index 03fa7b21..9265f33e 100644 --- a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java +++ b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java @@ -2,140 +2,143 @@ package com.win.module.system.enums.serialNumber; public enum RuleCodeEnum { - PURCHASE_CLAIM_RECORD("PurchaseClaimRecord"), - PURCHASE_ORDER("PurchaseOrder"), - WORK_ORDER("WorkOrder"), - SALE_ORDER("SaleOrder"), - PURCHASE_PLAN("PurchasePlan"), - WORK_PLAN("WorkPlan"), - MATERIAL_PREPARE_PLAN("MaterialPreparePlan"), - DELIVER_PLAN("DeliverPlan"), - PRODUCT_PREPARE_PLAN("ProductPreparePlan"), - COUNT_PLAN("CountPlan"), - PURCHASE_PREDICTION("PurchasePrediction"), - SUPPLIER_EVALUATION("SupplierEvaluation"), - SUPPLIER_DELIVER_REQUEST("SupplierDeliverRequest"), - PURCHASE_RECEIPT_REQUEST("PurchaseReceiptRequest"), - PURCHASE_RETURN_REQUEST("PurchaseReturnRequest"), - PURCHASE_CLAIM_REQUEST("PurchaseClaimRequest"), - SUPPLIER_INVOICE_REQUEST("SupplierInvoiceRequest"), - INSPECT_REQUEST("InspectRequest"), - PURCHASE_PUTAWAY_REQUEST("PurchasePutawayRequest"), - REPLEINMENT_REQUEST("RepleinmentRequest"), - PICK_REQUEST("PickRequest"), - ISSUE_REQUEST("IssueRequest"), - RETURN_TO_STORE_REQUEST("ReturnToStoreRequest"), - RETURN_TO_HOLD("ReturnToHOld"), - PRODUCT_RECEIPT_REQUEST("ProductReceiptRequest"), - PRODUCT_PUTAWAY_REQUEST("ProductPutawayRequest"), - PRODUCT_DISASSEMBLE_REQUEST("ProductDisassembleRequest"), - PRODUCT_REPAIR_REQUEST("ProductRepairRequest"), - PRODUCT_SCRAP_REQUEST("ProductScrapRequest"), - DELIVER_REQUEST("DeliverRequest"), - CUSTOMER_REJECT_REQUEST("CustomerRejectRequest"), - CUSTOMER_SETTLE_REQUEST("CustomerSettleRequest"), - INVENTORY_INITIAL_REQUEST("InventoryInitialRequest"), - MOVE_REQUEST("MoveRequest"), - OK_TO_HOLD_REQUEST("OkToHoldRequest"), - HOLD_TO_OK_REQUEST("HoldToOkRequest"), - HOLD_TO_SCRAP_REQUEST("HoldToScrapRequest"), - OK_TO_SCRAP_REQUEST("OktoScrapRequest"), - SCRAP_TO_HOLD_REQUEST("ScrapToHoldRequest"), - TRANSFER_REQUEST("TransferRequest"), - UNPLANNED_RECEIPT_REQUEST("UnplannedReceiptRequest"), - UNPLANNED_DELIVER_REQUEST("UnplannedDeliverRequest"), - SCRAP_REQUEST("ScrapRequest"), - COUNT_REQUEST("CountRequest"), - COUNT_ADJUST_REQUEST("CountAdjustRequest"), - QTY_ADJUST_REQUEST("QtyAdjustRequest"), - OFFLINE_SETTLEMENT_REQUEST("OfflineSettlementRequest"), - ONLINE_SETTLEMENT_REQUEST("OnlineSettlementRequest"), - INVENTORY_MOVE_REQUEST("InventoryMoveRequest"), - INVENTORY_CHANGE_REQUEST("InventoryChangeRequest"), - PRODUCTION_RETURN_REQUEST("ProductionReturnRequest"), - CUSTOMER_RECEIPT_REQUEST("CustomerReceiptRequest"), - CHECK_RE_REQUEST("CheckReRequest"), - PURCHASE_RECEIPT_JOB("PurchaseReceiptJob"), - PURCHASE_RETURN_JOB("PurchaseReturnJob"), - INSPECT_JOB("InspectJob"), - PURCHASE_PUTAWAY_JOB("PurchasePutawayJob"), - PICK_JOB("PickJob"), - ISSUE_JOB("IssueJob"), - ISSUE_RECEIPT_JOB("IssueReceiptJob"), - REPLEINMENT_JOB("RepleinmentJob"), - RETURN_TO_STORE_JOB("ReturnToStoreJob"), - RETURN_TO_HOLD_JOB("ReturnToHoldJob"), - MOVE_JOB("MoveJob"), - OK_TO_HOLD_JOB("OkToHoldJob"), - HOLD_TO_OK_JOB("HoldToOkJob"), - HOLD_TO_SCRAP_JOB("HoldToScrapJob"), - OK_TO_SCRAP_JOB("OkToScrapJob"), - SCRAP_TO_HOLD_JOB("ScrapToHoldJob"), - TRANSFER_DELIVER_JOB("TransferDeliverJob"), - TRANSFER_RECEIPT_JOB("TransferReceiptJob"), - UNPLANNED_RECEIPT_JOB("UnplannedReceiptJob"), - UNPLANNED_DELIVER_JOB("UnplannedDeliverJob"), - SCRAP_JOB("ScrapJob"), - PRODUCT_RECEIPT_JOB("ProductReceiptJob"), - PRODUCT_PUTAWAY_JOB("ProductPutawayJob"), - PRODUCT_SCRAP_JOB("ProductScrapJob"), - DELIVER_JOB("DeliverJob"), - CUSTOMER_REJECT_JOB("CustomerRejectJob"), - COUNT_JOB("CountJob"), - INVENTORY_MOVE_JOB("InventoryMoveJob"), - PRODUCTION_RETURN_JOB("ProductionReturnJob"), - PRODUCTION_RECEIPT_JOB("ProductionReceiptJob"), - CHECK_JOB("CheckJob"), - PRODUCT_DISMANTLE_JOB("ProductDismantleJob"), - SUPPLIER_DELIVER_RECORD("SupplierDeliverRecord"), - PURCHASE_RECEIPT_RECORD("PurchaseReceiptRecord"), - PURCHASE_RETURN_RECORD("PurchaseReturnRecord"), - SUPPLIER_CLAIM_RECORD("SupplierClaimRecord"), - SUPPLIER_INVOICE_RECORD("SupplierInvoiceRecord"), - INSPECT_RECORD("InspectRecord"), - PURCHASE_PUTAWAY_RECORD("PurchasePutawayRecord"), - ISSUE_RECORD("IssueRecord"), - ISSUE_RECEIPT_RECORD("IssueReceiptRecord"), - PICK_RECORD("PickRecord"), - REPLEINMENT_RECORD("RepleinmentRecord"), - PRODUCT_RECEIPT_RECORD("ProductReceiptRecord"), - PRODUCT_PUTAWAY_RECORD("ProductPutawayRecord"), - RETURN_TO_STORE_RECORD("ReturnToStoreRecord"), - RETURN_TO_HOLD_RECORD("ReturnToHoldRecord"), - PRODUCT_DISASSEMBLE_RECORD("ProductDisassembleRecord"), - PRODUCT_REPAIR_RECORD("ProductRepairRecord"), - PRODUCT_SCRAP_RECORD("ProductScrapRecord"), - DELIVER_RECORD("DeliverRecord"), - CHECK_RECORD("CheckRecord"), - CUSTOMER_REJECT_RECORD("CustomerRejectRecord"), - INVENTORY_INITIAL_RECORD("InventoryInitialRecord"), - MOVE_RECORD("MoveRecord"), - OK_TO_HOLD_RECORD("OkToHoldRecord"), - HOLD_TO_OK_RECORD("HoldToOkRecord"), - HOLD_TO_SCRAP_RECORD("HoldToScrapRecord"), - OK_TO_SCRAP_RECORD("OktoScrapRecord"), - SCRAP_TO_HOLD_RECORD("ScrapToHoldRecord"), - TRANSFER_DELIVER_RECORD("TransferDeliverRecord"), - TRANSFER_RECEIPT_RECORD("TransferReceiptRecord"), - UNPLANNED_RECEIPT_RECORD("UnplannedReceiptRecord"), - UNPLANNED_DELIVER_RECORD("UnplannedDeliverRecord"), - SCRAP_RECORD("ScrapRecord"), - COUNT_RECORD("CountRecord"), - COUNT_ADJUST_RECORD("CountAdjustRecord"), - QTY_ADJUST_RECORD("QtyAdjustRecord"), - SPLIT_PACKAGE_RECORD("SplitPackageRecord"), - MERGE_PACKAGE_RECORD("MergePackageRecord"), - OVER_PACKAGE_RECORD("OverPackageRecord"), - CONTAINER_BIND_RECORD("ContainerBindRecord"), - CONTAINER_UNBIND_RECORD("ContainerUnbindRecord"), - OFFLINE_SETTLEMENT_RECORD("OfflineSettlementRecord"), - ONLINE_SETTLEMENT_RECORD("OnlineSettlementRecord"), - CUSTOMER_RECEIPT_RECORD("CustomerReceiptRecord"), - PRODUCTION_RECEIPT_RECORD("ProductionReceiptRecord"), - CUSTOMER_SETTLE_RECORD("CustomerSettleRecord"), - INVENTORY_CHANGE_RECORD("InventoryChangeRecord"), - INVENTORY_MOVE_RECORD("InventoryMoveRecord"), - ASN_NUMBER("AsnNumber"); + PURCHASE_ORDER("PurchaseOrder"), // 采购订单 + WORK_ORDER("WorkOrder"), // 生产订单 + SALE_ORDER("SaleOrder"), // 销售订单 + PURCHASE_PLAN("PurchasePlan"), // 采购计划 + WORK_PLAN("WorkPlan"), // 生产计划 + MATERIAL_PREPARE_PLAN("MaterialPreparePlan"), // 备料计划 + DELIVER_PLAN("DeliverPlan"), // 发货计划 + PRODUCT_PREPARE_PLAN("ProductPreparePlan"), // 备货计划 + COUNT_PLAN("CountPlan"), // 盘点计划 + PURCHASE_PREDICTION("PurchasePrediction"), // 要货预测 + SUPPLIER_EVALUATION("SupplierEvaluation"), // 供应商评价 + SUPPLIER_DELIVER_REQUEST("SupplierDeliverRequest"), // 供应商发货申请 + PURCHASE_RECEIPT_REQUEST("PurchaseReceiptRequest"), // 采购收货申请 + PURCHASE_RETURN_REQUEST("PurchaseReturnRequest"), // 采购退货申请 + PURCHASE_CLAIM_REQUEST("PurchaseClaimRequest"), // 采购索赔申请 + SUPPLIER_INVOICE_REQUEST("SupplierInvoiceRequest"), // 供应商发票申请 + INSPECT_REQUEST("InspectRequest"), // 到货检验申请 + PURCHASE_PUTAWAY_REQUEST("PurchasePutawayRequest"), // 采购上架申请 + REPLEINMENT_REQUEST("RepleinmentRequest"), // 补料申请 + PICK_REQUEST("PickRequest"), // 拣料申请 + ISSUE_REQUEST("IssueRequest"), // 发料申请 + RETURN_TO_STORE_REQUEST("ReturnToStoreRequest"), // 合格退料申请 + RETURN_TO_HOLD("ReturnToHOld"), // 隔离退料申请 + PRODUCT_RECEIPT_REQUEST("ProductReceiptRequest"), // 制品收货申请 + PRODUCT_PUTAWAY_REQUEST("ProductPutawayRequest"), // 制品上架申请 + PRODUCT_DISASSEMBLE_REQUEST("ProductDisassembleRequest"), // 制品拆解申请 + PRODUCT_REPAIR_REQUEST("ProductRepairRequest"), // 制品返修申请 + PRODUCT_SCRAP_REQUEST("ProductScrapRequest"), // 制品报废申请 + DELIVER_REQUEST("DeliverRequest"), // 发货申请 + CUSTOMER_REJECT_REQUEST("CustomerRejectRequest"), // 客户退货申请 + CUSTOMER_SETTLE_REQUEST("CustomerSettleRequest"), // 客户结算申请 + INVENTORY_INITIAL_REQUEST("InventoryInitialRequest"), // 库存初始化申请 + MOVE_REQUEST("MoveRequest"), // 位移申请 + OK_TO_HOLD_REQUEST("OkToHoldRequest"), // 合格转隔离申请 + HOLD_TO_OK_REQUEST("HoldToOkRequest"), // 隔离转合格申请 + HOLD_TO_SCRAP_REQUEST("HoldToScrapRequest"), // 隔离转报废申请 + OK_TO_SCRAP_REQUEST("OktoScrapRequest"), // 合格转报废申请 + SCRAP_TO_HOLD_REQUEST("ScrapToHoldRequest"), // 报废转隔离申请 + TRANSFER_REQUEST("TransferRequest"), // 调拨申请 + UNPLANNED_RECEIPT_REQUEST("UnplannedReceiptRequest"), // 计划外入库申请 + UNPLANNED_DELIVER_REQUEST("UnplannedDeliverRequest"), // 计划外出库申请 + SCRAP_REQUEST("ScrapRequest"), // 报废出库申请 + COUNT_REQUEST("CountRequest"), // 盘点申请 + COUNT_ADJUST_REQUEST("CountAdjustRequest"), // 盘点调整申请 + QTY_ADJUST_REQUEST("QtyAdjustRequest"), // 数量调整申请 + OFFLINE_SETTLEMENT_REQUEST("OfflineSettlementRequest"), // 下线结算申请 + ONLINE_SETTLEMENT_REQUEST("OnlineSettlementRequest"), // 上线结算申请 + INVENTORY_MOVE_REQUEST("InventoryMoveRequest"), // 库存转移申请 + INVENTORY_CHANGE_REQUEST("InventoryChangeRequest"), // 库存修改申请 + PRODUCTION_RETURN_REQUEST("ProductionReturnRequest"), // 生产退料申请 + CUSTOMER_RECEIPT_REQUEST("CustomerReceiptRequest"), // 客户收货申请 + CHECK_RE_REQUEST("CheckReRequest"), // 校验比对申请 + PURCHASE_RECEIPT_JOB("PurchaseReceiptJob"), // 采购收货任务 + PURCHASE_RETURN_JOB("PurchaseReturnJob"), // 采购退货任务 + INSPECT_JOB("InspectJob"), // 到货检验任务 + PURCHASE_PUTAWAY_JOB("PurchasePutawayJob"), // 原料上架任务 + PICK_JOB("PickJob"), // 拣料任务 + ISSUE_JOB("IssueJob"), // 发料任务 + ISSUE_RECEIPT_JOB("IssueReceiptJob"), // 发料接收任务 + REPLEINMENT_JOB("RepleinmentJob"), // 补料任务 + RETURN_TO_STORE_JOB("ReturnToStoreJob"), // 合格退料任务 + RETURN_TO_HOLD_JOB("ReturnToHoldJob"), // 隔离退料任务 + MOVE_JOB("MoveJob"), // 自由移动任务 + OK_TO_HOLD_JOB("OkToHoldJob"), // 合格转隔离任务 + HOLD_TO_OK_JOB("HoldToOkJob"), // 隔离转合格任务 + HOLD_TO_SCRAP_JOB("HoldToScrapJob"), // 隔离转报废任务 + OK_TO_SCRAP_JOB("OkToScrapJob"), // 合格转报废任务 + SCRAP_TO_HOLD_JOB("ScrapToHoldJob"), // 报废转隔离任务 + TRANSFER_DELIVER_JOB("TransferDeliverJob"), // 调拨发货任务 + TRANSFER_RECEIPT_JOB("TransferReceiptJob"), // 调拨收货任务 + UNPLANNED_RECEIPT_JOB("UnplannedReceiptJob"), // 计划外入库任务 + UNPLANNED_DELIVER_JOB("UnplannedDeliverJob"), // 计划外出库任务 + SCRAP_JOB("ScrapJob"), // 报废出库任务 + PRODUCT_RECEIPT_JOB("ProductReceiptJob"), // 制品收货任务 + PRODUCT_PUTAWAY_JOB("ProductPutawayJob"), // 制品上架任务 + PRODUCT_SCRAP_JOB("ProductScrapJob"), // 制品报废任务 + DELIVER_JOB("DeliverJob"), // 发货任务 + CUSTOMER_REJECT_JOB("CustomerRejectJob"), // 客户退货任务 + COUNT_JOB("CountJob"), // 盘点任务 + INVENTORY_MOVE_JOB("InventoryMoveJob"), // 库存转移任务 + PRODUCTION_RETURN_JOB("ProductionReturnJob"), // 生产退料任务 + PRODUCTION_RECEIPT_JOB("ProductionReceiptJob"), // 生产收料任务 + CHECK_JOB("CheckJob"), // 检验比对任务 + PRODUCT_DISMANTLE_JOB("ProductDismantleJob"), // 制品拆解任务 + SUPPLIER_DELIVER_RECORD("SupplierDeliverRecord"), // 供应商发货记录 + PURCHASE_RECEIPT_RECORD("PurchaseReceiptRecord"), // 采购收货记录 + PURCHASE_RETURN_RECORD("PurchaseReturnRecord"), // 采购退货记录 + SUPPLIER_CLAIM_RECORD("SupplierClaimRecord"), // 供应商索赔记录 + SUPPLIER_INVOICE_RECORD("SupplierInvoiceRecord"), // 供应商发票记录 + INSPECT_RECORD("InspectRecord"), // 到货检验记录 + PURCHASE_PUTAWAY_RECORD("PurchasePutawayRecord"), // 原料上架记录 + ISSUE_RECORD("IssueRecord"), // 发料记录 + ISSUE_RECEIPT_RECORD("IssueReceiptRecord"), // 发料接收记录 + PICK_RECORD("PickRecord"), // 拣料记录 + REPLEINMENT_RECORD("RepleinmentRecord"), // 补料记录 + PRODUCT_RECEIPT_RECORD("ProductReceiptRecord"), // 制品收货记录 + PRODUCT_PUTAWAY_RECORD("ProductPutawayRecord"), // 制品上架记录 + RETURN_TO_STORE_RECORD("ReturnToStoreRecord"), // 生产退料记录 + RETURN_TO_HOLD_RECORD("ReturnToHoldRecord"), // 退料上架记录 + PRODUCT_DISASSEMBLE_RECORD("ProductDisassembleRecord"), // 制品拆解记录 + PRODUCT_REPAIR_RECORD("ProductRepairRecord"), // 制品返修记录 + PRODUCT_SCRAP_RECORD("ProductScrapRecord"), // 制品报废记录 + DELIVER_RECORD("DeliverRecord"), // 发货记录 + CHECK_RECORD("CheckRecord"), // 校验记录 + CUSTOMER_REJECT_RECORD("CustomerRejectRecord"), // 客户退货记录 + INVENTORY_INITIAL_RECORD("InventoryInitialRecord"), // 库存初始化记录 + MOVE_RECORD("MoveRecord"), // 位移记录 + OK_TO_HOLD_RECORD("OkToHoldRecord"), // 合格转隔离记录 + HOLD_TO_OK_RECORD("HoldToOkRecord"), // 隔离转合格记录 + HOLD_TO_SCRAP_RECORD("HoldToScrapRecord"), // 隔离转报废记录 + OK_TO_SCRAP_RECORD("OktoScrapRecord"), // 合格转报废记录 + SCRAP_TO_HOLD_RECORD("ScrapToHoldRecord"), // 报废转隔离记录 + TRANSFER_DELIVER_RECORD("TransferDeliverRecord"), // 调拨发出记录 + TRANSFER_RECEIPT_RECORD("TransferReceiptRecord"), // 调拨接收记录 + UNPLANNED_RECEIPT_RECORD("UnplannedReceiptRecord"), // 计划外入库记录 + UNPLANNED_DELIVER_RECORD("UnplannedDeliverRecord"), // 计划外出库记录 + SCRAP_RECORD("ScrapRecord"), // 报废出库记录 + COUNT_RECORD("CountRecord"), // 盘点记录 + COUNT_ADJUST_RECORD("CountAdjustRecord"), // 盘点调整记录 + QTY_ADJUST_RECORD("QtyAdjustRecord"), // 数量调整记录 + SPLIT_PACKAGE_RECORD("SplitPackageRecord"), // 拆包记录 + MERGE_PACKAGE_RECORD("MergePackageRecord"), // 合包记录 + OVER_PACKAGE_RECORD("OverPackageRecord"), // 翻包记录 + CONTAINER_BIND_RECORD("ContainerBindRecord"), // 器具绑定记录 + CONTAINER_UNBIND_RECORD("ContainerUnbindRecord"), // 器具解绑记录 + OFFLINE_SETTLEMENT_RECORD("OfflineSettlementRecord"), // 下线结算记录 + ONLINE_SETTLEMENT_RECORD("OnlineSettlementRecord"), // 上线结算记录 + CUSTOMER_RECEIPT_RECORD("CustomerReceiptRecord"), // 客户收货记录 + PRODUCTION_RECEIPT_RECORD("ProductionReceiptRecord"), // 生产收料记录 + PURCHASE_CLAIM_RECORD("PurchaseClaimRecord"), // 采购索赔记录 + CUSTOMER_SETTLE_RECORD("CustomerSettleRecord"), // 客户结算记录 + INVENTORY_CHANGE_RECORD("InventoryChangeRecord"), // 库存修改记录 + INVENTORY_MOVE_RECORD("InventoryMoveRecord"), // 库存转移记录 + ASN_NUMBER("AsnNumber"), // 发货单号 + INVENTORY_TRANSACTION("InventoryTransaction"), // 库存事务 + TRANSFER_LOG("TransferLog"), // 库存转移日志 + ; private final String code; diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/inventoryAction/InventoryActionEnum.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/inventoryAction/InventoryActionEnum.java new file mode 100644 index 00000000..5437dd17 --- /dev/null +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/inventoryAction/InventoryActionEnum.java @@ -0,0 +1,11 @@ +package com.win.module.wms.enums.inventoryAction; + +/** + * 订单状态枚举 + */ +public enum InventoryActionEnum { + + OUT,// 出库 + IN; // 入库 + +} 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/transaction/TransactionController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/TransactionController.java index cb7ece5c..d83492c6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/TransactionController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/TransactionController.java @@ -1,35 +1,30 @@ package com.win.module.wms.controller.transaction; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.transaction.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.transaction.TransactionConvert; +import com.win.module.wms.dal.dataobject.transaction.TransactionDO; +import com.win.module.wms.service.transaction.TransactionService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.util.List; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.win.module.wms.controller.transaction.vo.*; -import com.win.module.wms.dal.dataobject.transaction.TransactionDO; -import com.win.module.wms.convert.transaction.TransactionConvert; -import com.win.module.wms.service.transaction.TransactionService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 库存事务") @RestController @@ -46,44 +41,17 @@ public class TransactionController { @PostMapping("/create") @Operation(summary = "创建库存事务") @PreAuthorize("@ss.hasPermission('wms:transaction:create')") - public CommonResult createTransaction(@Valid @RequestBody TransactionCreateReqVO createReqVO) { - return success(transactionService.createTransaction(createReqVO)); + public CommonResult createTransaction(@Valid @RequestBody List createReqVOList) { + return success(transactionService.createTransaction(createReqVOList)); } - @PutMapping("/update") - @Operation(summary = "更新库存事务") - @PreAuthorize("@ss.hasPermission('wms:transaction:update')") - public CommonResult updateTransaction(@Valid @RequestBody TransactionUpdateReqVO updateReqVO) { - transactionService.updateTransaction(updateReqVO); - return success(true); - } - - @DeleteMapping("/delete") - @Operation(summary = "删除库存事务") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('wms:transaction:delete')") - public CommonResult deleteTransaction(@RequestParam("id") Long id) { - transactionService.deleteTransaction(id); - return success(true); - } - - @GetMapping("/get") - @Operation(summary = "获得库存事务") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - @PreAuthorize("@ss.hasPermission('wms:transaction:query')") - public CommonResult getTransaction(@RequestParam("id") String id) { - TransactionDO transaction = transactionService.getTransaction(id); - return success(TransactionConvert.INSTANCE.convert(transaction)); + @PostMapping("/createTransactionAndTransferLog") + @Operation(summary = "创建库存事务并增加库存转运日志") + @PreAuthorize("@ss.hasPermission('wms:transaction:create')") + public CommonResult createTransactionAndTransferLog(@Valid @RequestBody TransactionCreateReqListVO transactionCreateReqListVO) { + return success(transactionService.createTransaction(transactionCreateReqListVO.getTransactionList(), transactionCreateReqListVO.getTransferlogList())); } - @GetMapping("/list") - @Operation(summary = "获得库存事务列表") - @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") - @PreAuthorize("@ss.hasPermission('wms:transaction:query')") - public CommonResult> getTransactionList(@RequestParam("ids") Collection ids) { - List list = transactionService.getTransactionList(ids); - return success(TransactionConvert.INSTANCE.convertList(list)); - } @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:Transaction:query')") @@ -97,6 +65,7 @@ public class TransactionController { } return success(result); } + @GetMapping("/page") @Operation(summary = "获得库存事务分页") @PreAuthorize("@ss.hasPermission('wms:transaction:query')") @@ -109,8 +78,7 @@ public class TransactionController { @Operation(summary = "导出库存事务 Excel") @PreAuthorize("@ss.hasPermission('wms:transaction:export')") @OperateLog(type = EXPORT) - public void exportTransactionExcel(@Valid TransactionExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + public void exportTransactionExcel(@Valid TransactionExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = transactionService.getTransactionList(exportReqVO); // 导出 Excel List datas = TransactionConvert.INSTANCE.convertList02(list); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionBaseVO.java index 2b28e637..57fe6816 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionBaseVO.java @@ -1,17 +1,12 @@ package com.win.module.wms.controller.transaction.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.math.BigDecimal; -import java.math.BigDecimal; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.time.LocalDateTime; -import 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; @@ -26,7 +21,6 @@ public class TransactionBaseVO { private Long id; @Schema(description = "事务号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "事务号不能为空") private String number; @Schema(description = "事务类型", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionCreateReqListVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionCreateReqListVO.java new file mode 100644 index 00000000..e28d82af --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionCreateReqListVO.java @@ -0,0 +1,24 @@ +package com.win.module.wms.controller.transaction.vo; + +import com.win.module.wms.controller.transferlog.vo.TransferlogCreateReqVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.ToString; + +import java.util.List; + +@Schema(description = "管理后台 - 库存事务创建 Request VO") +@Data +@ToString(callSuper = true) +public class TransactionCreateReqListVO { + + /** + * 库存事务列表 + */ + private List transactionList; + + /** + * 库存转移日志列表 + */ + private List transferlogList; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferlog/TransferlogController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferlog/TransferlogController.java index 04338a5f..8079f5c5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferlog/TransferlogController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferlog/TransferlogController.java @@ -1,35 +1,35 @@ package com.win.module.wms.controller.transferlog; +import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.framework.excel.core.util.ExcelUtils; +import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; -import com.win.module.wms.controller.transferlog.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.controller.transferlog.vo.TransferlogExcelVO; +import com.win.module.wms.controller.transferlog.vo.TransferlogExportReqVO; +import com.win.module.wms.controller.transferlog.vo.TransferlogPageReqVO; +import com.win.module.wms.controller.transferlog.vo.TransferlogRespVO; +import com.win.module.wms.convert.transferlog.TransferlogConvert; +import com.win.module.wms.dal.dataobject.transferlog.TransferlogDO; +import com.win.module.wms.service.transferlog.TransferlogService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.util.Collection; +import java.util.List; -import com.win.framework.common.pojo.PageResult; -import com.win.framework.common.pojo.CommonResult; import static com.win.framework.common.pojo.CommonResult.success; - -import com.win.framework.excel.core.util.ExcelUtils; - -import com.win.framework.operatelog.core.annotations.OperateLog; -import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*; - -import com.win.module.wms.controller.transferlog.vo.*; -import com.win.module.wms.dal.dataobject.transferlog.TransferlogDO; -import com.win.module.wms.convert.transferlog.TransferlogConvert; -import com.win.module.wms.service.transferlog.TransferlogService; +import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 库存转移日志") @RestController @@ -43,21 +43,6 @@ public class TransferlogController { @Resource private AdminUserApi userApi; - @PostMapping("/create") - @Operation(summary = "创建库存转移日志") - @PreAuthorize("@ss.hasPermission('wms:transferlog:create')") - public CommonResult createTransferlog(@Valid @RequestBody TransferlogCreateReqVO createReqVO) { - return success(transferlogService.createTransferlog(createReqVO)); - } - - @PutMapping("/update") - @Operation(summary = "更新库存转移日志") - @PreAuthorize("@ss.hasPermission('wms:transferlog:update')") - public CommonResult updateTransferlog(@Valid @RequestBody TransferlogUpdateReqVO updateReqVO) { - transferlogService.updateTransferlog(updateReqVO); - return success(true); - } - @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:itembasic:query')") @@ -71,14 +56,6 @@ public class TransferlogController { } return success(result); } - @DeleteMapping("/delete") - @Operation(summary = "删除库存转移日志") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('wms:transferlog:delete')") - public CommonResult deleteTransferlog(@RequestParam("id") Long id) { - transferlogService.deleteTransferlog(id); - return success(true); - } @GetMapping("/get") @Operation(summary = "获得库存转移日志") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferlog/vo/TransferlogBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferlog/vo/TransferlogBaseVO.java index 90482b72..12b93122 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferlog/vo/TransferlogBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferlog/vo/TransferlogBaseVO.java @@ -24,7 +24,6 @@ public class TransferlogBaseVO { private Long id; @Schema(description = "日志号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "日志号不能为空") private String number; @Schema(description = "事务类型", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/work/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/rule/RuleConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/rule/RuleConvert.java index 59a62f96..9420af70 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/rule/RuleConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/rule/RuleConvert.java @@ -29,5 +29,6 @@ public interface RuleConvert { List convertList(List list); PageResult convertPage(PageResult page); + RuleDO convert(RuleRespVO bean); } 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/dal/dataobject/purchaseclaimRequest/PurchaseclaimRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchaseclaimRequest/PurchaseclaimRequestDetailDO.java index 6b3d0997..f29fa9dd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchaseclaimRequest/PurchaseclaimRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/purchaseclaimRequest/PurchaseclaimRequestDetailDO.java @@ -1,12 +1,8 @@ package com.win.module.wms.dal.dataobject.purchaseclaimRequest; +import com.sun.xml.bind.v2.TODO; import lombok.*; -import java.util.*; import java.math.BigDecimal; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.math.BigDecimal; -import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import com.win.framework.mybatis.core.dataobject.BaseDO; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transaction/TransactionDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transaction/TransactionDO.java index c0a5ce0a..e916500c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transaction/TransactionDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transaction/TransactionDO.java @@ -1,16 +1,14 @@ package com.win.module.wms.dal.dataobject.transaction; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.sun.xml.bind.v2.TODO; +import com.win.framework.mybatis.core.dataobject.BaseDO; import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.math.BigDecimal; -import java.math.BigDecimal; + import java.math.BigDecimal; import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import com.baomidou.mybatisplus.annotation.*; -import com.win.framework.mybatis.core.dataobject.BaseDO; /** * 库存事务 DO @@ -29,8 +27,8 @@ public class TransactionDO extends BaseDO { /** * id */ - @TableId(type = IdType.INPUT) - private String id; + @TableId(type = IdType.AUTO) + private Long id; /** * 事务号 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java index 4fbfe74a..e08f8175 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java @@ -11,12 +11,14 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.balance.vo.BalanceCreateReqVO; import com.win.module.wms.controller.balance.vo.BalanceExportReqVO; import com.win.module.wms.controller.balance.vo.BalancePageReqVO; +import com.win.module.wms.controller.rule.vo.RuleRespVO; import com.win.module.wms.convert.balance.BalanceConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; -import com.win.module.wms.dal.dataobject.rule.RuleDO; +import com.win.module.wms.enums.inventoryAction.InventoryActionEnum; import org.apache.ibatis.annotations.Mapper; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.List; import static com.win.module.wms.enums.ErrorCodeConstants.LOCATION_DISABLE_NEGATIVE; @@ -32,7 +34,7 @@ public interface BalanceMapper extends BaseMapperX { /** * 更新库存余额数量,出库qty是负数 */ - default Boolean updateBalanceQty(BalanceCreateReqVO reqVO, RuleDO ruleDO) { + default Boolean updateBalanceQty(BalanceCreateReqVO reqVO, RuleRespVO ruleRespVO, String inventoryAction) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("packing_number", reqVO.getPackingNumber()); queryWrapper.eq("item_code", reqVO.getItemCode()); @@ -45,20 +47,26 @@ public interface BalanceMapper extends BaseMapperX { balanceDO = BalanceConvert.INSTANCE.convert(reqVO); result = this.insert(balanceDO); } else {//存在只更新数量 - balanceDO.setQty(balanceDO.getQty().add(reqVO.getQty())); + BigDecimal qtyNew = reqVO.getQty(); + BigDecimal amountNew = reqVO.getAmount(); + //出库变负数 + if (InventoryActionEnum.OUT.equals(inventoryAction)) { + qtyNew = BigDecimal.ZERO.subtract(qtyNew); + amountNew = BigDecimal.ZERO.subtract(amountNew); + } + balanceDO.setQty(balanceDO.getQty().add(qtyNew)); //计算单价和金额 - BigDecimal amount = balanceDO.getAmount().add(reqVO.getAmount()); - balanceDO.setAmount(amount); - balanceDO.setSinglePrice(amount.divide(balanceDO.getQty())); + balanceDO.setAmount(balanceDO.getAmount().add(amountNew)); + balanceDO.setSinglePrice(balanceDO.getAmount().divide(balanceDO.getQty(), 2, RoundingMode.HALF_UP)); result = this.updateById(balanceDO); } if(balanceDO.getQty().compareTo(BigDecimal.ZERO) == 0) {// 此处增加判断是否允许零库存 - JSONObject jsonObject = new JSONObject(ruleDO.getCondition()); + JSONObject jsonObject = new JSONObject(ruleRespVO.getCondition()); if(!"TRUE".equals(jsonObject.getStr("EnableKeepZero"))) { this.deleteById(balanceDO.getId()); } } else if(balanceDO.getQty().compareTo(BigDecimal.ZERO) < 0) {// 此处增加判断是否允许负库存 - JSONObject jsonObject = new JSONObject(ruleDO.getCondition()); + JSONObject jsonObject = new JSONObject(ruleRespVO.getCondition()); if(!"TRUE".equals(jsonObject.getStr("EnableNegative"))) { throw new ServiceException(LOCATION_DISABLE_NEGATIVE); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseclaimRequest/PurchaseclaimRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseclaimRequest/PurchaseclaimRequestMainMapper.java index 505d2802..adeac836 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseclaimRequest/PurchaseclaimRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchaseclaimRequest/PurchaseclaimRequestMainMapper.java @@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainExportReqVO; import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestMainPageReqVO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO; import org.apache.ibatis.annotations.Mapper; @@ -43,6 +44,10 @@ public interface PurchaseclaimRequestMainMapper extends BaseMapperX selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transaction/TransactionMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transaction/TransactionMapper.java index 7a96c88c..db3ab11f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transaction/TransactionMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transaction/TransactionMapper.java @@ -1,17 +1,17 @@ package com.win.module.wms.dal.mysql.transaction; -import java.util.*; - import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.mapper.BaseMapperX; +import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.transaction.vo.TransactionExportReqVO; import com.win.module.wms.controller.transaction.vo.TransactionPageReqVO; import com.win.module.wms.dal.dataobject.transaction.TransactionDO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 库存事务 Mapper * @@ -47,8 +47,7 @@ public interface TransactionMapper extends BaseMapperX { .eqIfPresent(TransactionDO::getAreaCode, reqVO.getAreaCode()) .eqIfPresent(TransactionDO::getLocationGroupCode, reqVO.getLocationGroupCode()) .eqIfPresent(TransactionDO::getErpLocationCode, reqVO.getErpLocationCode()) - .eqIfPresent(TransactionDO::getOwnerCode, reqVO.getOwnerCode()) - .orderByDesc(TransactionDO::getId)); + .eqIfPresent(TransactionDO::getOwnerCode, reqVO.getOwnerCode())); } default PageResult selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainService.java index cbb4931f..d4d827c8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainService.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.countPlan.vo.CountPlanMainCreateReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainExportReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainPageReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; import com.win.module.wms.dal.dataobject.countPlan.CountPlanMainDO; import com.win.framework.common.pojo.PageResult; @@ -79,4 +80,12 @@ public interface CountPlanMainService { */ List getCountPlanMainList(CountPlanMainExportReqVO exportReqVO); + /** + * Plan----VCount + * 校验盘点计划 + * @author chenfang + * @param pnumber + * @return + */ + CountPlanDetailDO selectCountPlanExist(String pnumber); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java index ba0b99b3..f8907575 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/countPlan/CountPlanMainServiceImpl.java @@ -1,10 +1,14 @@ package com.win.module.wms.service.countPlan; +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.countPlan.vo.CountPlanMainCreateReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainExportReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainPageReqVO; import com.win.module.wms.controller.countPlan.vo.CountPlanMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.countPlan.CountPlanDetailDO; +import com.win.module.wms.dal.mysql.countPlan.CountPlanDetailMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -32,6 +36,9 @@ public class CountPlanMainServiceImpl implements CountPlanMainService { @Resource private CountPlanMainMapper countPlanMainMapper; + @Resource + private CountPlanDetailMapper countPlanDetailMapper; + @Override public Long createCountPlanMain(CountPlanMainCreateReqVO createReqVO) { // 插入 @@ -87,4 +94,28 @@ public class CountPlanMainServiceImpl implements CountPlanMainService { return countPlanMainMapper.selectList(exportReqVO); } + @Override + public CountPlanDetailDO selectCountPlanExist(String pnumber){ + QueryWrapper queryWrapperMain = new QueryWrapper(); + queryWrapperMain.eq("number",pnumber); + queryWrapperMain.eq("available","TRUE"); + CountPlanMainDO countPlanMainDO = countPlanMainMapper.selectOne(queryWrapperMain); + if(countPlanMainDO != null){ + if(!"ClOSE".equals(countPlanMainDO.getStatus())){ + QueryWrapper queryWrapperDetail = new QueryWrapper(); + queryWrapperDetail.eq("number",pnumber); + queryWrapperDetail.eq("available","TRUE"); + CountPlanDetailDO countPlanDetailDO = countPlanDetailMapper.selectOne(queryWrapperDetail); + if(countPlanDetailDO != null){ + return countPlanDetailDO; + }else { + throw new UtilException("盘点计划" + pnumber + "无效"); + } + }else { + throw new UtilException("盘点计划" + pnumber + "已关闭"); + } + }else { + throw new UtilException("盘点计划" + pnumber + "无效"); + } + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainService.java index 6586c739..e4fd2be8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainService.java @@ -86,10 +86,9 @@ public interface CustomerreturnJobMainService { * @param pnumber 单据号 * @param psupplierCode 供应商代码 * @param pitemCode 物品代码 - * @param plineNumber 行号 * @return 采购订单子列表 */ - public PurchaseDetailDO productionDetailExist(String pnumber, String psupplierCode, String pitemCode, String ppoNumber,String poLine); + public PurchaseDetailDO productionDetailExist(String pnumber, String psupplierCode, String pitemCode,String poLine); /** * 校验销售订单明细 * diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainServiceImpl.java index 8ee9c761..f9587716 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnJob/CustomerreturnJobMainServiceImpl.java @@ -97,8 +97,8 @@ public class CustomerreturnJobMainServiceImpl implements CustomerreturnJobMainSe } //校验采购订单明细 @Override - public PurchaseDetailDO productionDetailExist(String pnumber, String psupplierCode, String pitemCode, String ppoNumber,String poLine) { - PurchaseDetailDO purchaseDetailDO = purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode, ppoNumber,poLine); + public PurchaseDetailDO productionDetailExist(String pnumber, String psupplierCode, String pitemCode,String poLine) { + PurchaseDetailDO purchaseDetailDO = purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode,poLine); return purchaseDetailDO; } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainService.java index adf1632e..7a914209 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainService.java @@ -87,10 +87,9 @@ public interface DeliverJobMainService { * @param pnumber 单据号 * @param psupplierCode 供应商代码 * @param pitemCode 物品代码 - * @param plineNumber 行号 * @return 采购订单子列表 */ - public PurchaseDetailDO productionDetailExist(String pnumber, String psupplierCode, String pitemCode, String ppoNumber,String poLine); + public PurchaseDetailDO productionDetailExist(String pnumber, String psupplierCode, String pitemCode,String poLine); /** * Order----VS * 校验销售订单明细 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java index 0c26bc1c..35810343 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java @@ -99,8 +99,8 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService { } //校验采购订单明细 @Override - public PurchaseDetailDO productionDetailExist(String pnumber, String psupplierCode, String pitemCode, String ppoNumber,String poLine) { - PurchaseDetailDO purchaseDetailDO = purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode, ppoNumber,poLine); + public PurchaseDetailDO productionDetailExist(String pnumber, String psupplierCode, String pitemCode,String poLine) { + PurchaseDetailDO purchaseDetailDO = purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode,poLine); return purchaseDetailDO; } @Override 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 b56fd1cd..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 接口 @@ -87,9 +85,16 @@ public interface PurchaseMainService { * @param pnumber 单据号 * @param psupplierCode 供应商代码 * @param pitemCode 物品代码 - * @param plineNumber 行号 * @return 采购订单子列表 */ - public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode, String ppoNumber,String poLine); + 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 2b325453..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; @@ -94,7 +125,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { } //公共方法 校验采购订单明细 @Override - public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode, String ppoNumber,String poLine) { + public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode,String poLine) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("number",pnumber); queryWrapper.eq("supplier_code",psupplierCode); @@ -105,12 +136,12 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { queryWrapper1.eq("master_id",purchaseMainDO.getId()); queryWrapper1.eq("number",pnumber); queryWrapper1.eq("po_line",poLine); - queryWrapper1.eq("po_number",ppoNumber); + queryWrapper1.eq("item_code",pitemCode); PurchaseDetailDO purchaseDetailDO = purchaseDetailMapper.selectOne(queryWrapper1); if(purchaseDetailDO != null && "TRUE".equals(purchaseDetailDO.getAvailable())){ return purchaseDetailDO; }else { - throw new UtilException( "采购订单明细:订单号" + ppoNumber + "、订单行" + poLine + "、零件号" + pitemCode + "、无效"); + throw new UtilException( "采购订单明细:订单号" + pnumber + "、订单行" + poLine + "、零件号" + pitemCode + "、无效"); } }else { throw new UtilException( "采购订单" + pnumber + "已经关闭"); @@ -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 feefe5d0..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 实现类 @@ -117,7 +119,40 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService { throw new UtilException( "要货计划" + pnubmer + "已经关闭"); } }else { - throw new UtilException( "要货计划" + pnubmer + "无效"); + 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/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java index 330c0620..7240d12b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java @@ -28,6 +28,7 @@ import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMai import com.win.module.wms.util.JobUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -166,6 +167,8 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest throw new UtilException("订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty); } } + @Override + @Transactional public List importPurchaseclaimRequestList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); @@ -173,7 +176,6 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { String messageMain = ""; - int detailErrorCount = 0; //主表校验方法 if(mode != null){ try { @@ -217,7 +219,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest } try { PurchaseDetailDO purchaseDetailDO = purchaseMainService.selectPurchaseDetailDoExist(detailDO.getNumber(), createReqVO.getSupplierCode() - , detailDO.getItemCode(), detailDO.getPoNumber(), detailDO.getPoLine()); + , detailDO.getItemCode(), detailDO.getPoLine()); try { ifPlanQtyBigThanOrderQty(detailDO.getPoLine(), purchaseDetailDO.getShippedQty(), detailDO.getQty(), purchaseDetailDO.getOrderQty()); }catch (Exception ex){ @@ -229,55 +231,66 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest PurchaseclaimRequestDetailCreateReqVO purchaseclaimRequestDetailCreateReqVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert1(detailDO); PurchaseclaimRequestImportErrorVO importVO = PurchaseclaimRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseclaimRequestDetailCreateReqVO); //进行子表的错误统计 - if(!messageDetail.isEmpty()){ - detailErrorCount ++; + //主表没有错误 写入库里 + if(!messageMain.equals("") || !messageDetail.equals("")){ + importVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importVO.setImportRemark(messageMain.substring(0,messageMain.length()-1)); + errorList.add(importVO); + }else { + detailDO.setNumber(createReqVO.getNumber()); + detailDO.setMasterId(createReqVO.getId()); + detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP)); } - //如果子表没有全错 - if(detailErrorCount != subDOList.size()){ - //主表没有错误 写入库里 - if(messageMain == null){ - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); - createReqVO.setNumber(number); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest"); - if(businesstypeDO != null){ - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest"); - if(requestsettingDO != null){ - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); - purchaseclaimRequestMainMapper.insert(createObj); - } //反之 跳出本次循环 进行下一个主表的循环 - if(messageMain != null || messageDetail != null) { - importVO.setImportStatus("失败"); - String messageAll = messageMain+ messageDetail; - importVO.setImportRemark(messageAll.substring(0,messageAll.length()-1)); - errorList.add(importVO); - continue; + } + if(!errorList.isEmpty()){ + // 判断如果不存在,在进行插入 + PurchaseclaimRequestMainDO existPurchaseclaimRequestMainDO = purchaseclaimRequestMainMapper.selectByAsnNumberAndSupplierCode(createReqVO.getAsnNumber(), createReqVO.getSupplierCode()); + if(existPurchaseclaimRequestMainDO == null && mode != 3){ + createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); + createReqVO.setNumber(number); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest"); + if(businesstypeDO != null){ + createReqVO.setBusinessType(businesstypeDO.getCode()); } - //如果子表没有错误 写库 - if(messageDetail == null){ - detailDO.setNumber(createReqVO.getNumber()); - detailDO.setMasterId(createReqVO.getId()); - detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP)); - purchaseclaimRequestDetailMapper.insertBatch(subDOList); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest"); + if(requestsettingDO != null){ + createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); + createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); + createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); + createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); } - //如果子表全错 - }else { - importVO.setImportStatus("失败"); - String messageAll = messageMain+ messageDetail; - importVO.setImportRemark(messageAll.substring(0,messageAll.length()-1)); - errorList.add(importVO); + PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); + purchaseclaimRequestMainMapper.insert(createObj); + purchaseclaimRequestDetailMapper.insertBatch(subDOList); + } + else if(existPurchaseclaimRequestMainDO != null && mode != 2){ + createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); + createReqVO.setNumber(number); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseClaimRequest"); + if(businesstypeDO != null){ + createReqVO.setBusinessType(businesstypeDO.getCode()); + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseClaimRequest"); + if(requestsettingDO != null){ + createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); + createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); + createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); + createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + PurchaseclaimRequestMainDO createObj = PurchaseclaimRequestMainConvert.INSTANCE.convert(createReqVO); + purchaseclaimRequestMainMapper.updateById(createObj); + purchaseclaimRequestDetailMapper.updateBatch(subDOList); } } } }); + //错误不为空并非部分更新,手工回滚 + if(!errorList.isEmpty() && !updatePart) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } return errorList; } - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/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/transaction/TransactionService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionService.java index e341038e..fa5251da 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionService.java @@ -1,15 +1,15 @@ package com.win.module.wms.service.transaction; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionExportReqVO; import com.win.module.wms.controller.transaction.vo.TransactionPageReqVO; -import com.win.module.wms.controller.transaction.vo.TransactionUpdateReqVO; +import com.win.module.wms.controller.transferlog.vo.TransferlogCreateReqVO; import com.win.module.wms.dal.dataobject.transaction.TransactionDO; -import com.win.framework.common.pojo.PageResult; + +import javax.validation.Valid; +import java.util.List; /** * 库存事务 Service 接口 @@ -21,47 +21,27 @@ public interface TransactionService { /** * 创建库存事务 * - * @param createReqVO 创建信息 + * @param createReqVOList 库存事务信息 * @return 编号 */ - String createTransaction(@Valid TransactionCreateReqVO createReqVO); - /** - * 获得用高级搜索库存事务分页列表 - * - * @param conditions 分页、排序和自定义条件 - * @return 分页列表 - */ - PageResult getTransactionSenior(CustomConditions conditions); + Integer createTransaction(@Valid List createReqVOList); /** - * 更新库存事务 + * 创建库存事务并增加库存转运日志 * - * @param updateReqVO 更新信息 - */ - void updateTransaction(@Valid TransactionUpdateReqVO updateReqVO); - - /** - * 删除库存事务 - * - * @param id 编号 - */ - void deleteTransaction(Long id); - - /** - * 获得库存事务 - * - * @param id 编号 - * @return 库存事务 + * @param transactionCreateReqVOList 库存事务信息 + * @param transferlogCreateReqVOList 库存转移日志信息 + * @return 编号 */ - TransactionDO getTransaction(String id); + Integer createTransaction(@Valid List transactionCreateReqVOList, List transferlogCreateReqVOList); /** - * 获得库存事务列表 + * 获得用高级搜索库存事务分页列表 * - * @param ids 编号 - * @return 库存事务列表 + * @param conditions 分页、排序和自定义条件 + * @return 分页列表 */ - List getTransactionList(Collection ids); + PageResult getTransactionSenior(CustomConditions conditions); /** * 获得库存事务分页 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java index 9b8a072f..6810a64e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java @@ -1,24 +1,30 @@ package com.win.module.wms.service.transaction; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.common.pojo.PageResult; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.balance.vo.BalanceCreateReqVO; +import com.win.module.wms.controller.rule.vo.RuleRespVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionExportReqVO; import com.win.module.wms.controller.transaction.vo.TransactionPageReqVO; -import com.win.module.wms.controller.transaction.vo.TransactionUpdateReqVO; -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.transaction.TransactionDO; -import com.win.framework.common.pojo.PageResult; - +import com.win.module.wms.controller.transferlog.vo.TransferlogCreateReqVO; import com.win.module.wms.convert.transaction.TransactionConvert; +import com.win.module.wms.convert.transferlog.TransferlogConvert; +import com.win.module.wms.dal.dataobject.transaction.TransactionDO; +import com.win.module.wms.dal.dataobject.transferlog.TransferlogDO; +import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.transaction.TransactionMapper; +import com.win.module.wms.dal.mysql.transferlog.TransferlogMapper; +import com.win.module.wms.service.rule.RuleService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; -import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.*; +import javax.annotation.Resource; +import java.util.List; /** * 库存事务 Service 实现类 @@ -32,52 +38,66 @@ public class TransactionServiceImpl implements TransactionService { @Resource private TransactionMapper transactionMapper; - @Override - public String createTransaction(TransactionCreateReqVO createReqVO) { - // 插入 - TransactionDO transaction = TransactionConvert.INSTANCE.convert(createReqVO); - transactionMapper.insert(transaction); - // 返回 - return transaction.getId(); - } + @Resource + private BalanceMapper balanceMapper; - @Override - public void updateTransaction(TransactionUpdateReqVO updateReqVO) { - // 校验存在 - validateTransactionExists(updateReqVO.getId()); - // 更新 - TransactionDO updateObj = TransactionConvert.INSTANCE.convert(updateReqVO); - transactionMapper.updateById(updateObj); - } - @Override - public PageResult getTransactionSenior(CustomConditions conditions) { - return transactionMapper.selectSenior(conditions); - } - @Override - public void deleteTransaction(Long id) { - // 校验存在 - validateTransactionExists(id); - // 删除 - transactionMapper.deleteById(id); - } + @Resource + private TransferlogMapper transferlogMapper; - private void validateTransactionExists(Long id) { - if (id == null) { - return; - } - if (transactionMapper.selectById(id) == null) { - throw exception(TRANSACTION_NOT_EXISTS); + @Resource + private RuleService ruleService; + + @Resource + private SerialNumberApi serialNumberApi; + + @Override + @Transactional + public Integer createTransaction(List createReqVOList) { + int result = 0; + for(TransactionCreateReqVO createReqVO : createReqVOList) { + TransactionDO transactionDO = TransactionConvert.INSTANCE.convert(createReqVO); + //生成单据号 + String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_TRANSACTION.getCode()); + transactionDO.setNumber(number); + result += transactionMapper.insert(transactionDO); + BalanceCreateReqVO balanceCreateReqVO = new BalanceCreateReqVO(); + BeanUtils.copyProperties(createReqVO, balanceCreateReqVO); + balanceCreateReqVO.setLastTransNumber(number); + RuleRespVO ruleRespVO = ruleService.warehouseStorage(createReqVO.getWarehouseCode(), createReqVO.getAreaCode(), createReqVO.getLocationGroupCode(), createReqVO.getLocationCode()); + balanceMapper.updateBalanceQty(balanceCreateReqVO, ruleRespVO, createReqVO.getInventoryAction()); } + return result; } @Override - public TransactionDO getTransaction(String id) { - return transactionMapper.selectById(id); + @Transactional + public Integer createTransaction(List transactionCreateReqVOList, List transferlogCreateReqVOList) { + int result = 0; + for(TransactionCreateReqVO createReqVO : transactionCreateReqVOList) { + TransactionDO transactionDO = TransactionConvert.INSTANCE.convert(createReqVO); + //生成单据号 + String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_TRANSACTION.getCode()); + transactionDO.setNumber(number); + result += transactionMapper.insert(transactionDO); + BalanceCreateReqVO balanceCreateReqVO = new BalanceCreateReqVO(); + BeanUtils.copyProperties(createReqVO, balanceCreateReqVO); + balanceCreateReqVO.setLastTransNumber(number); + RuleRespVO ruleRespVO = ruleService.warehouseStorage(createReqVO.getWarehouseCode(), createReqVO.getAreaCode(), createReqVO.getLocationGroupCode(), createReqVO.getLocationCode()); + balanceMapper.updateBalanceQty(balanceCreateReqVO, ruleRespVO, createReqVO.getInventoryAction()); + } + for(TransferlogCreateReqVO transferlogCreateReqVO : transferlogCreateReqVOList) { + TransferlogDO transferlogDO = TransferlogConvert.INSTANCE.convert(transferlogCreateReqVO); + //生成单据号 + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_LOG.getCode()); + transferlogDO.setNumber(number); + transferlogMapper.insert(transferlogDO); + } + return result; } @Override - public List getTransactionList(Collection ids) { - return transactionMapper.selectBatchIds(ids); + public PageResult getTransactionSenior(CustomConditions conditions) { + return transactionMapper.selectSenior(conditions); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferlog/TransferlogService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferlog/TransferlogService.java index 699ad76b..d851d1df 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferlog/TransferlogService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferlog/TransferlogService.java @@ -1,15 +1,13 @@ package com.win.module.wms.service.transferlog; -import java.util.*; -import javax.validation.*; - import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.transferlog.vo.TransferlogCreateReqVO; +import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.transferlog.vo.TransferlogExportReqVO; import com.win.module.wms.controller.transferlog.vo.TransferlogPageReqVO; -import com.win.module.wms.controller.transferlog.vo.TransferlogUpdateReqVO; import com.win.module.wms.dal.dataobject.transferlog.TransferlogDO; -import com.win.framework.common.pojo.PageResult; + +import java.util.Collection; +import java.util.List; /** * 库存转移日志 Service 接口 @@ -18,13 +16,6 @@ import com.win.framework.common.pojo.PageResult; */ public interface TransferlogService { - /** - * 创建库存转移日志 - * - * @param createReqVO 创建信息 - * @return 编号 - */ - String createTransferlog(@Valid TransferlogCreateReqVO createReqVO); /** * 获得用高级搜索户分页列表 * @@ -33,20 +24,6 @@ public interface TransferlogService { */ PageResult getTransferlogSenior(CustomConditions conditions); - /** - * 更新库存转移日志 - * - * @param updateReqVO 更新信息 - */ - void updateTransferlog(@Valid TransferlogUpdateReqVO updateReqVO); - - /** - * 删除库存转移日志 - * - * @param id 编号 - */ - void deleteTransferlog(Long id); - /** * 获得库存转移日志 * diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferlog/TransferlogServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferlog/TransferlogServiceImpl.java index c013fa44..4feae93d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferlog/TransferlogServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferlog/TransferlogServiceImpl.java @@ -1,24 +1,17 @@ package com.win.module.wms.service.transferlog; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.transferlog.vo.TransferlogCreateReqVO; +import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.transferlog.vo.TransferlogExportReqVO; import com.win.module.wms.controller.transferlog.vo.TransferlogPageReqVO; -import com.win.module.wms.controller.transferlog.vo.TransferlogUpdateReqVO; -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.transferlog.TransferlogDO; -import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.convert.transferlog.TransferlogConvert; import com.win.module.wms.dal.mysql.transferlog.TransferlogMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; -import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.*; +import javax.annotation.Resource; +import java.util.Collection; +import java.util.List; /** * 库存转移日志 Service 实现类 @@ -32,42 +25,11 @@ public class TransferlogServiceImpl implements TransferlogService { @Resource private TransferlogMapper transferlogMapper; - @Override - public String createTransferlog(TransferlogCreateReqVO createReqVO) { - // 插入 - TransferlogDO transferlog = TransferlogConvert.INSTANCE.convert(createReqVO); - transferlogMapper.insert(transferlog); - // 返回 - return transferlog.getId(); - } - - @Override - public void updateTransferlog(TransferlogUpdateReqVO updateReqVO) { - // 校验存在 - validateTransferlogExists(updateReqVO.getId()); - // 更新 - TransferlogDO updateObj = TransferlogConvert.INSTANCE.convert(updateReqVO); - transferlogMapper.updateById(updateObj); - } @Override public PageResult getTransferlogSenior(CustomConditions conditions) { return transferlogMapper.selectSenior(conditions); } - @Override - public void deleteTransferlog(Long id) { - // 校验存在 - validateTransferlogExists(id); - // 删除 - transferlogMapper.deleteById(id); - } - - private void validateTransferlogExists(Long id) { - if (transferlogMapper.selectById(id) == null) { - throw exception(TRANSFERLOG_NOT_EXISTS); - } - } - @Override public TransferlogDO getTransferlog(String id) { return transferlogMapper.selectById(id); 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 0dc1ae67..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,16 +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.module.wms.dal.dataobject.work.WorkMainDO; 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 javax.validation.Valid; +import java.util.Collection; +import java.util.List; /** * 生产订单主 Service 接口 @@ -80,4 +78,24 @@ public interface WorkMainService { */ List getWorkMainList(WorkMainExportReqVO exportReqVO); + /** + * Order----VW + * 校验生产订单 + * @author chenfang + * @param pnumber + * @param pitemCode + * @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 c75089ee..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,25 +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.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 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.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 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.WORK_MAIN_NOT_EXISTS; /** * 生产订单主 Service 实现类 @@ -33,6 +36,9 @@ public class WorkMainServiceImpl implements WorkMainService { @Resource private WorkMainMapper workMainMapper; + @Resource + private WorkDetailMapper workDetailMapper; + @Override public Long createWorkMain(WorkMainCreateReqVO createReqVO) { // 插入 @@ -89,4 +95,53 @@ public class WorkMainServiceImpl implements WorkMainService { return workMainMapper.selectList(exportReqVO); } + @Override + public WorkDetailDO selectWorkExist(String pnumber, String pitemCode){ + QueryWrapper queryWrapperMain = new QueryWrapper(); + queryWrapperMain.eq("number",pnumber); + queryWrapperMain.eq("available","TURE"); + WorkMainDO workMainDO = workMainMapper.selectOne(queryWrapperMain); + if(workMainDO != null){ + QueryWrapper queryWrapperDetail = new QueryWrapper(); + queryWrapperDetail.eq("item_code",pitemCode); + WorkDetailDO workDetailDO = workDetailMapper.selectOne(queryWrapperDetail); + if(workDetailDO != null){ + return workDetailDO; + }else { + throw new UtilException("生产订单明细:"+ pitemCode + "无效"); + } + }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; + } }