diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java index c2ab64d6..0efd8afa 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.nflg.wms.admin.pojo.dto.PdfPageDTO; +import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest; import com.nflg.wms.admin.repository.InventoryForOutRepository; import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository; import com.nflg.wms.admin.service.BasdeSerialNumberControllerService; @@ -168,6 +169,22 @@ public class OutAssistanceController extends BaseController { return ApiResult.success(vo); } + /** + * 修改订单项数量 + */ + @PostMapping("updateItemNum") + public ApiResult updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) { + WmsOutAssistanceItem item = outAssistanceItemService.getById(request.getId()); + VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项不存在"); + BigDecimal min = item.getNum().subtract(item.getLeft()); + VUtil.trueThrowBusinessError(request.getNum().compareTo(min) < 0).throwMessage("数量不能小于" + min); + BigDecimal difference = request.getNum().subtract(item.getNum()); + item.setLeft(item.getLeft().add(difference)); + item.setNum(request.getNum()); + outAssistanceItemService.updateById(item); + return ApiResult.success(); + } + /** * 获取订单项(PDA使用) */ @@ -433,7 +450,7 @@ public class OutAssistanceController extends BaseController { ); Map> dmaps = records.stream().collect(Collectors.groupingBy(OutMaterialScanRecord::getKey7)); OptRecordDTO optRecordDTO = new OptRecordDTO(); - optRecordDTO.setOperationType((short)1); + optRecordDTO.setOperationType((short) 1); optRecordDTO.setOrderId(order.getNo()); optRecordService.add(optRecordDTO); SubcontractedOrderConfirmDTO dto = sapService.zwm3a04(new SubcontractedOrderConfirmQO() diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java index 21e736df..6a9c739d 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.nflg.wms.admin.pojo.dto.PdfPageDTO; +import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest; import com.nflg.wms.admin.repository.InventoryForOutRepository; import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository; import com.nflg.wms.admin.service.BasdeSerialNumberControllerService; @@ -171,6 +172,22 @@ public class OutCostCenterController extends BaseController { return ApiResult.success(vo); } + /** + * 修改订单项数量 + */ + @PostMapping("updateItemNum") + public ApiResult updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) { + WmsOutCostcenterItem item = outCostcenterItemService.getById(request.getId()); + VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项不存在"); + BigDecimal min = item.getNum().subtract(item.getLeft()); + VUtil.trueThrowBusinessError(request.getNum().compareTo(min) < 0).throwMessage("数量不能小于" + min); + BigDecimal difference = request.getNum().subtract(item.getNum()); + item.setLeft(item.getLeft().add(difference)); + item.setNum(request.getNum()); + outCostcenterItemService.updateById(item); + return ApiResult.success(); + } + /** * 获取订单项(PDA使用) */ diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java index 74998d07..f7309e16 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.nflg.wms.admin.pojo.dto.PdfPageDTO; +import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest; import com.nflg.wms.admin.repository.InventoryForOutRepository; import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository; import com.nflg.wms.admin.service.BasdeSerialNumberControllerService; @@ -267,23 +268,25 @@ public class OutProduceController extends BaseController { return ApiResult.success(outProduceService.search(request)); } - /** - * 解锁库存(根据订单) - */ - @PostMapping("0/releaseNumByOrder") - public ApiResult releaseNumByOrder(@Valid @RequestBody @NotEmpty List ids) { - outProduceService.releaseNum(ids); - return ApiResult.success(); - } - - /** - * 解锁库存(根据明细) - */ - @PostMapping("0/releaseNumByItem") - public ApiResult releaseNumByItem(@Valid @RequestBody @NotEmpty List ids) { - outProduceItemService.releaseNum(ids); - return ApiResult.success(); - } +// /** +// * 解锁库存(根据订单) +// * @deprecated 不需要这个方法了 +// */ +// @PostMapping("0/releaseNumByOrder") +// public ApiResult releaseNumByOrder(@Valid @RequestBody @NotEmpty List ids) { +// outProduceService.releaseNum(ids); +// return ApiResult.success(); +// } +// +// /** +// * 解锁库存(根据明细) +// * @deprecated 不需要这个方法了 +// */ +// @PostMapping("0/releaseNumByItem") +// public ApiResult releaseNumByItem(@Valid @RequestBody @NotEmpty List ids) { +// outProduceItemService.releaseNum(ids); +// return ApiResult.success(); +// } /** * 修改备注 @@ -321,6 +324,21 @@ public class OutProduceController extends BaseController { return ApiResult.success(vo); } + /** + * 修改订单项数量 + */ + @PostMapping("updateItemNum") + public ApiResult updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) { + WmsOutProduceItem item = outProduceItemService.getById(request.getId()); + VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项不存在"); + VUtil.trueThrowBusinessError(request.getNum().compareTo(item.getNum()) < 0).throwMessage("数量不能小于" + item.getNum()); + BigDecimal difference = request.getNum().subtract(item.getSqsl()); + item.setLockNum(item.getLockNum().add(difference)); + item.setSqsl(request.getNum()); + outProduceItemService.updateById(item); + return ApiResult.success(); + } + /** * 获取订单项(PDA使用) */ diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/request/UpdateItemNumRequest.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/request/UpdateItemNumRequest.java new file mode 100644 index 00000000..80571aec --- /dev/null +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/pojo/request/UpdateItemNumRequest.java @@ -0,0 +1,21 @@ +package com.nflg.wms.admin.pojo.request; + +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class UpdateItemNumRequest { + + @NotNull + private Long id; + + /** + * 新的数量 + */ + @NotNull + @Min(value = 0) + private BigDecimal num; +} diff --git a/nflg-wms-admin/src/test/java/com/nflg/wms/admin/ATest.java b/nflg-wms-admin/src/test/java/com/nflg/wms/admin/ATest.java index 67f7e921..e54fc93b 100644 --- a/nflg-wms-admin/src/test/java/com/nflg/wms/admin/ATest.java +++ b/nflg-wms-admin/src/test/java/com/nflg/wms/admin/ATest.java @@ -3,26 +3,38 @@ package com.nflg.wms.admin; import cn.hutool.core.util.StrUtil; import com.nflg.wms.common.util.DateTimeUtil; import org.junit.jupiter.api.Test; +import org.springframework.util.Assert; +import java.math.BigDecimal; import java.time.LocalDateTime; public class ATest { @Test - public void test1(){ - Long index=2L; - System.out.println("K"+ StrUtil.padPre(String.valueOf(index),6,"0")); + public void test1() { + Long index = 2L; + System.out.println("K" + StrUtil.padPre(String.valueOf(index), 6, "0")); } @Test - public void test2(){ - String index="0000"; - System.out.println(StrUtil.removeAllPrefix(index,"0")); + public void test2() { + String index = "0000"; + System.out.println(StrUtil.removeAllPrefix(index, "0")); } @Test - public void test3(){ - String date=DateTimeUtil.format(LocalDateTime.now(), "yyMMdd"); + public void test3() { + String date = DateTimeUtil.format(LocalDateTime.now(), "yyMMdd"); System.out.println(date); } + + @Test + public void test4() { + BigDecimal num1 = new BigDecimal("5"); + BigDecimal num2 = new BigDecimal("2"); + BigDecimal left = new BigDecimal("3"); + BigDecimal a = left.add(num2.subtract(num1)); + System.out.println(a); + Assert.isTrue(a.compareTo(BigDecimal.ZERO) == 0, "数量错误"); + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ApplyReturnRequestItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ApplyReturnRequestItemVO.java index 74aa218b..5d8c34c0 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ApplyReturnRequestItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ApplyReturnRequestItemVO.java @@ -1,5 +1,6 @@ package com.nflg.wms.common.pojo.vo; +import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import lombok.experimental.Accessors; @@ -56,6 +57,20 @@ public class ApplyReturnRequestItemVO { */ private BigDecimal requestQuantity; + /** + * 剩余数量 + */ + private BigDecimal left; + + /** + * 领料数量最小值 + */ + private BigDecimal requestQuantityLimit; + + public BigDecimal getRequestQuantityLimit() { + return requestQuantity.subtract(left); + } + /** * 出库状态 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutAssistanceItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutAssistanceItemVO.java index 6d4803c5..8da3c672 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutAssistanceItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutAssistanceItemVO.java @@ -111,6 +111,15 @@ public class OutAssistanceItemVO { */ private BigDecimal left; + /** + * 领料数量最小值 + */ + private BigDecimal numLimit; + + public BigDecimal getNumLimit() { + return num.subtract(left); + } + /** * 发货仓库 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutCostcenterInfoItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutCostcenterInfoItemVO.java index b3f313d2..a31122cd 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutCostcenterInfoItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutCostcenterInfoItemVO.java @@ -105,4 +105,13 @@ public class OutCostcenterInfoItemVO { * 待领数量 */ private BigDecimal left; + + /** + * 领料数量最小值 + */ + private BigDecimal numLimit; + + public BigDecimal getNumLimit() { + return num.subtract(left); + } } diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceInfoItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceInfoItemVO.java index 98bf605a..a9041eb1 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceInfoItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/OutProduceInfoItemVO.java @@ -126,6 +126,15 @@ public class OutProduceInfoItemVO { */ private BigDecimal lockNum; + /** + * 申请数量最小值 + */ + private BigDecimal sqslLimit; + + public BigDecimal getSqslLimit() { + return num; + } + /** * 已领数量 */