From 03ccabd2cd734f2680f530d1482e0befbc4e2453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Wed, 20 Dec 2023 15:32:28 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=B6=E5=93=81=E4=B8=8A=E6=9E=B6=20?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E7=94=9F=E6=88=90=E8=AE=B0=E5=BD=95=20?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=20=E7=94=B3=E8=AF=B7=E5=8D=95=E5=8F=B7?= =?UTF-8?q?=E5=BF=85=E5=A1=AB=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../productputawayRecord/vo/ProductputawayRecordMainBaseVO.java | 1 - 1 file changed, 1 deletion(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordMainBaseVO.java index ec745d88..0c4c9b52 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordMainBaseVO.java @@ -24,7 +24,6 @@ public class ProductputawayRecordMainBaseVO { private Long id; @Schema(description = "申请单号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "申请单号不能为空") private String requestNumber; @Schema(description = "任务单号") From 5b36c54d8fab15edb8b3469c7d892c415333fdb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Wed, 20 Dec 2023 16:58:14 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=89=A9=E5=93=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/ProductreceiptRecordMainBaseVO.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainBaseVO.java index e1310561..3db4d8a2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainBaseVO.java @@ -25,7 +25,6 @@ public class ProductreceiptRecordMainBaseVO { private Long id; @Schema(description = "申请单号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "申请单号不能为空") private String requestNumber; @Schema(description = "任务单号") @@ -44,20 +43,16 @@ public class ProductreceiptRecordMainBaseVO { private String shift; @Schema(description = "出库事务类型", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "出库事务类型不能为空") private String outTransactionType; @Schema(description = "入库事务类型", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "入库事务类型不能为空") private String inTransactionType; @Schema(description = "执行时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "执行时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime executeTime; @Schema(description = "生效日期", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "生效日期不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime activeDate; @@ -70,30 +65,25 @@ public class ProductreceiptRecordMainBaseVO { private LocalDateTime dueTime; @Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "部门不能为空") private String departmentCode; @Schema(description = "接口类型") private String interfaceType; @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "单据号不能为空") private String number; @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "业务类型不能为空") private String businessType; @Schema(description = "备注") private String remark; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "创建时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime createTime; @Schema(description = "创建者Id", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "创建者Id不能为空") private String creator; @Schema(description = "代码") @@ -109,7 +99,6 @@ public class ProductreceiptRecordMainBaseVO { private String toAreaCodes; @Schema(description = "是否可用", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "是否可用不能为空") private String available; @Schema(description ="更新时间") From 7b53736a2b11e02a2cea5b2f0069c03b24f266ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Wed, 20 Dec 2023 16:58:21 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E7=89=A9=E5=93=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/balance/BalanceController.java | 14 ++- .../wms/service/balance/BalanceService.java | 2 + .../service/balance/BalanceServiceImpl.java | 89 +++++++++++++++++++ 3 files changed, 101 insertions(+), 4 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/balance/BalanceController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/balance/BalanceController.java index 743706ca..fe920d14 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/balance/BalanceController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/balance/BalanceController.java @@ -7,10 +7,8 @@ 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.balance.vo.BalanceExcelVO; -import com.win.module.wms.controller.balance.vo.BalanceExportReqVO; -import com.win.module.wms.controller.balance.vo.BalancePageReqVO; -import com.win.module.wms.controller.balance.vo.BalanceRespVO; +import com.win.module.wms.controller.balance.vo.*; +import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainUpdateReqVO; import com.win.module.wms.convert.balance.BalanceConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.service.balance.BalanceService; @@ -40,6 +38,14 @@ public class BalanceController { @Resource private AdminUserApi userApi; + @PutMapping("/update") + @Operation(summary = "更新库存余额") + @PreAuthorize("@ss.hasPermission('wms:balance:update')") + public CommonResult updateBalance(@Valid @RequestBody BalanceUpdateReqVO updateReqVO) { + balanceService.updateBalance(updateReqVO); + return success(true); + } + @GetMapping("/page") @Operation(summary = "获得库存余额分页") @PreAuthorize("@ss.hasPermission('wms:balance:query')") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceService.java index 691a34c4..710302d3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceService.java @@ -4,6 +4,7 @@ import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.balance.vo.BalanceExportReqVO; import com.win.module.wms.controller.balance.vo.BalancePageReqVO; +import com.win.module.wms.controller.balance.vo.BalanceUpdateReqVO; import com.win.module.wms.dal.dataobject.balance.BalanceDO; import java.util.List; @@ -83,4 +84,5 @@ public interface BalanceService { */ public List selectUniqueId(String packingNumber, String locationCode, List inventoryStatus); + void updateBalance(BalanceUpdateReqVO updateReqVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java index aa8692b5..b37080eb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/balance/BalanceServiceImpl.java @@ -3,16 +3,34 @@ package com.win.module.wms.service.balance; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +import com.win.module.system.api.user.AdminUserApi; import com.win.module.wms.controller.balance.vo.BalanceExportReqVO; import com.win.module.wms.controller.balance.vo.BalancePageReqVO; +import com.win.module.wms.controller.balance.vo.BalanceUpdateReqVO; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.balance.BalanceConvert; +import com.win.module.wms.convert.productdismantleRecord.ProductdismantleRecordMainConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; +import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordMainDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.balance.BalanceMapper; +import com.win.module.wms.service.transaction.TransactionService; +import com.win.module.wms.util.JobUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; +import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTDISMANTLE_RECORD_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.UNPLANNEDISSUE_REQUEST_DETAIL_BALANCE_NOT_EXISTS; + /** * 库存余额 Service 实现类 * @@ -22,6 +40,12 @@ import java.util.List; @Validated public class BalanceServiceImpl implements BalanceService { + @Resource + private TransactionService transactionService; + @Resource + private AdminUserApi userApi; + @Resource + private JobUtils jobUtils; @Resource private BalanceMapper balanceMapper; @@ -144,4 +168,69 @@ public class BalanceServiceImpl implements BalanceService { return null; } } + + private BalanceDO validateBalanceExists(Long id) { + BalanceDO balanceDO = balanceMapper.selectById(id); + if (balanceDO == null) { + throw exception(UNPLANNEDISSUE_REQUEST_DETAIL_BALANCE_NOT_EXISTS); + } + return balanceDO; + } + + @Override + @Transactional + public void updateBalance(BalanceUpdateReqVO updateReqVO) { + // 校验存在 + // 修改前 + BalanceDO balanceDO = validateBalanceExists(updateReqVO.getId()); + // 修改后 + BalanceDO updateBalanceDO = BalanceConvert.INSTANCE.convert(updateReqVO); + //库存事务 + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + List transactionCreateReqVOList = new ArrayList<>(); + // 判断修改的数据项 + // 入动作 + BeanUtils.copyProperties(updateBalanceDO, transactionCreateReqVOIn); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType("RCT-CHG"); // 更改入库 + transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVOIn.setBusinessType(""); + transactionCreateReqVOIn.setOwnerCode(updateBalanceDO.getOwnerCode()); + transactionCreateReqVOIn.setRecordNumber(""); + transactionCreateReqVOIn.setId(null); + transactionCreateReqVOIn.setPackingNumber(balanceDO.getPackingNumber()); + transactionCreateReqVOIn.setBatch(updateBalanceDO.getBatch()); + transactionCreateReqVOIn.setContainerNumber(balanceDO.getContainerNumber()); + transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); + transactionCreateReqVOIn.setWarehouseCode(balanceDO.getWarehouseCode()); + transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode()); + transactionCreateReqVOIn.setInventoryStatus(updateBalanceDO.getInventoryStatus()); + transactionCreateReqVOIn.setQty(updateBalanceDO.getQty()); + transactionCreateReqVOIn.setExpireDate(updateBalanceDO.getExpireDate()); + transactionCreateReqVOList.add(transactionCreateReqVOIn); + // 出动作 + BeanUtils.copyProperties(balanceDO, transactionCreateReqVOOut); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType("ISS-CHG"); + transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setBusinessType(""); + transactionCreateReqVOOut.setOwnerCode(balanceDO.getOwnerCode()); + transactionCreateReqVOOut.setRecordNumber(""); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOOut.setPackingNumber(balanceDO.getPackingNumber()); + transactionCreateReqVOOut.setBatch(balanceDO.getBatch()); + transactionCreateReqVOOut.setContainerNumber(balanceDO.getContainerNumber()); + transactionCreateReqVOOut.setAmount(balanceDO.getAmount()); + transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode()); + transactionCreateReqVOOut.setLocationCode(balanceDO.getLocationCode()); + transactionCreateReqVOOut.setInventoryStatus(balanceDO.getInventoryStatus()); + transactionCreateReqVOOut.setQty(balanceDO.getQty()); + transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate()); + transactionCreateReqVOList.add(transactionCreateReqVOOut); + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + } }