From 2172afdca63cab87401b099bdc7838d76e94ba9e Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Fri, 3 Nov 2023 14:12:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=BA=8B=E5=8A=A1=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/serialNumber/RuleCodeEnum.java | 271 +++++++++--------- .../inventoryAction/InventoryActionEnum.java | 11 + .../transaction/TransactionController.java | 82 ++---- .../transaction/vo/TransactionBaseVO.java | 14 +- .../vo/TransactionCreateReqListVO.java | 24 ++ .../transferlog/TransferlogController.java | 67 ++--- .../transferlog/vo/TransferlogBaseVO.java | 1 - .../module/wms/convert/rule/RuleConvert.java | 1 + .../dataobject/transaction/TransactionDO.java | 18 +- .../wms/dal/mysql/balance/BalanceMapper.java | 24 +- .../mysql/transaction/TransactionMapper.java | 9 +- .../transaction/TransactionService.java | 52 ++-- .../transaction/TransactionServiceImpl.java | 118 ++++---- .../transferlog/TransferlogService.java | 31 +- .../transferlog/TransferlogServiceImpl.java | 50 +--- 15 files changed, 347 insertions(+), 426 deletions(-) create mode 100644 win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/inventoryAction/InventoryActionEnum.java create mode 100644 win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionCreateReqListVO.java 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/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/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/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/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/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);