Browse Source

库存事务接口

master
刘忱 2 years ago
parent
commit
2172afdca6
  1. 271
      win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java
  2. 11
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/inventoryAction/InventoryActionEnum.java
  3. 82
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/TransactionController.java
  4. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionBaseVO.java
  5. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionCreateReqListVO.java
  6. 67
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferlog/TransferlogController.java
  7. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferlog/vo/TransferlogBaseVO.java
  8. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/rule/RuleConvert.java
  9. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transaction/TransactionDO.java
  10. 24
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java
  11. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transaction/TransactionMapper.java
  12. 52
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionService.java
  13. 118
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transaction/TransactionServiceImpl.java
  14. 31
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferlog/TransferlogService.java
  15. 50
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferlog/TransferlogServiceImpl.java

271
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;

11
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; // 入库
}

82
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<String> createTransaction(@Valid @RequestBody TransactionCreateReqVO createReqVO) {
return success(transactionService.createTransaction(createReqVO));
public CommonResult<Integer> createTransaction(@Valid @RequestBody List<TransactionCreateReqVO> createReqVOList) {
return success(transactionService.createTransaction(createReqVOList));
}
@PutMapping("/update")
@Operation(summary = "更新库存事务")
@PreAuthorize("@ss.hasPermission('wms:transaction:update')")
public CommonResult<Boolean> 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<Boolean> 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<TransactionRespVO> 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<Integer> 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<List<TransactionRespVO>> getTransactionList(@RequestParam("ids") Collection<String> ids) {
List<TransactionDO> 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<TransactionDO> list = transactionService.getTransactionList(exportReqVO);
// 导出 Excel
List<TransactionExcelVO> datas = TransactionConvert.INSTANCE.convertList02(list);

14
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)

24
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<TransactionCreateReqVO> transactionList;
/**
* 库存转移日志列表
*/
private List<TransferlogCreateReqVO> transferlogList;
}

67
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<String> createTransferlog(@Valid @RequestBody TransferlogCreateReqVO createReqVO) {
return success(transferlogService.createTransferlog(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新库存转移日志")
@PreAuthorize("@ss.hasPermission('wms:transferlog:update')")
public CommonResult<Boolean> 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<Boolean> deleteTransferlog(@RequestParam("id") Long id) {
transferlogService.deleteTransferlog(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得库存转移日志")

1
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)

1
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<RuleRespVO> convertList(List<RuleDO> list);
PageResult<RuleRespVO> convertPage(PageResult<RuleDO> page);
RuleDO convert(RuleRespVO bean);
}

18
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;
/**
* 事务号
*/

24
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<BalanceDO> {
/**
* 更新库存余额数量出库qty是负数
*/
default Boolean updateBalanceQty(BalanceCreateReqVO reqVO, RuleDO ruleDO) {
default Boolean updateBalanceQty(BalanceCreateReqVO reqVO, RuleRespVO ruleRespVO, String inventoryAction) {
QueryWrapper<BalanceDO> 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> {
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);
}

9
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<TransactionDO> {
.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<TransactionDO> selectSenior(CustomConditions conditions) {
return selectPage(conditions, QueryWrapperUtils.structure(conditions));

52
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<TransactionDO> getTransactionSenior(CustomConditions conditions);
Integer createTransaction(@Valid List<TransactionCreateReqVO> 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<TransactionCreateReqVO> transactionCreateReqVOList, List<TransferlogCreateReqVO> transferlogCreateReqVOList);
/**
* 获得库存事务列表
* 获得用高级搜索库存事务分页列表
*
* @param ids 编号
* @return 库存事务列表
* @param conditions 分页排序和自定义条件
* @return 分页列表
*/
List<TransactionDO> getTransactionList(Collection<String> ids);
PageResult<TransactionDO> getTransactionSenior(CustomConditions conditions);
/**
* 获得库存事务分页

118
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<TransactionDO> 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<TransactionCreateReqVO> 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<TransactionCreateReqVO> transactionCreateReqVOList, List<TransferlogCreateReqVO> 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<TransactionDO> getTransactionList(Collection<String> ids) {
return transactionMapper.selectBatchIds(ids);
public PageResult<TransactionDO> getTransactionSenior(CustomConditions conditions) {
return transactionMapper.selectSenior(conditions);
}
@Override

31
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<TransferlogDO> getTransferlogSenior(CustomConditions conditions);
/**
* 更新库存转移日志
*
* @param updateReqVO 更新信息
*/
void updateTransferlog(@Valid TransferlogUpdateReqVO updateReqVO);
/**
* 删除库存转移日志
*
* @param id 编号
*/
void deleteTransferlog(Long id);
/**
* 获得库存转移日志
*

50
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<TransferlogDO> 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);

Loading…
Cancel
Save