feat(wms): 添加订单项数量修改功能并优化相关实体类
- 在ApplyReturnRequestItemVO中添加剩余数量和领料数量最小值字段 - 在OutAssistanceItemVO、OutCostcenterInfoItemVO中添加领料数量最小值计算逻辑 - 在OutProduceInfoItemVO中添加申请数量最小值计算逻辑 - 新增UpdateItemNumRequest请求类用于接收数量修改参数 - 在OutAssistanceController、OutCostCenterController、OutProduceController中添加updateItemNum接口 - 修复OutProduceController中解锁库存方法的注释问题 - 在测试类中添加数量计算验证逻辑
This commit is contained in:
parent
2135376540
commit
680269fea5
|
|
@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
|
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.InventoryForOutRepository;
|
||||||
import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository;
|
import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository;
|
||||||
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
|
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
|
||||||
|
|
@ -168,6 +169,22 @@ public class OutAssistanceController extends BaseController {
|
||||||
return ApiResult.success(vo);
|
return ApiResult.success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改订单项数量
|
||||||
|
*/
|
||||||
|
@PostMapping("updateItemNum")
|
||||||
|
public ApiResult<Void> 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使用)
|
* 获取订单项(PDA使用)
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
|
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.InventoryForOutRepository;
|
||||||
import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository;
|
import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository;
|
||||||
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
|
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
|
||||||
|
|
@ -171,6 +172,22 @@ public class OutCostCenterController extends BaseController {
|
||||||
return ApiResult.success(vo);
|
return ApiResult.success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改订单项数量
|
||||||
|
*/
|
||||||
|
@PostMapping("updateItemNum")
|
||||||
|
public ApiResult<Void> 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使用)
|
* 获取订单项(PDA使用)
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
|
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.InventoryForOutRepository;
|
||||||
import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository;
|
import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository;
|
||||||
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
|
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
|
||||||
|
|
@ -267,23 +268,25 @@ public class OutProduceController extends BaseController {
|
||||||
return ApiResult.success(outProduceService.search(request));
|
return ApiResult.success(outProduceService.search(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* 解锁库存(根据订单)
|
// * 解锁库存(根据订单)
|
||||||
*/
|
// * @deprecated 不需要这个方法了
|
||||||
@PostMapping("0/releaseNumByOrder")
|
// */
|
||||||
public ApiResult<Void> releaseNumByOrder(@Valid @RequestBody @NotEmpty List<Long> ids) {
|
// @PostMapping("0/releaseNumByOrder")
|
||||||
outProduceService.releaseNum(ids);
|
// public ApiResult<Void> releaseNumByOrder(@Valid @RequestBody @NotEmpty List<Long> ids) {
|
||||||
return ApiResult.success();
|
// outProduceService.releaseNum(ids);
|
||||||
}
|
// return ApiResult.success();
|
||||||
|
// }
|
||||||
/**
|
//
|
||||||
* 解锁库存(根据明细)
|
// /**
|
||||||
*/
|
// * 解锁库存(根据明细)
|
||||||
@PostMapping("0/releaseNumByItem")
|
// * @deprecated 不需要这个方法了
|
||||||
public ApiResult<Void> releaseNumByItem(@Valid @RequestBody @NotEmpty List<Long> ids) {
|
// */
|
||||||
outProduceItemService.releaseNum(ids);
|
// @PostMapping("0/releaseNumByItem")
|
||||||
return ApiResult.success();
|
// public ApiResult<Void> releaseNumByItem(@Valid @RequestBody @NotEmpty List<Long> ids) {
|
||||||
}
|
// outProduceItemService.releaseNum(ids);
|
||||||
|
// return ApiResult.success();
|
||||||
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改备注
|
* 修改备注
|
||||||
|
|
@ -321,6 +324,21 @@ public class OutProduceController extends BaseController {
|
||||||
return ApiResult.success(vo);
|
return ApiResult.success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改订单项数量
|
||||||
|
*/
|
||||||
|
@PostMapping("updateItemNum")
|
||||||
|
public ApiResult<Void> 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使用)
|
* 获取订单项(PDA使用)
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -3,7 +3,9 @@ package com.nflg.wms.admin;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.nflg.wms.common.util.DateTimeUtil;
|
import com.nflg.wms.common.util.DateTimeUtil;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
public class ATest {
|
public class ATest {
|
||||||
|
|
@ -25,4 +27,14 @@ public class ATest {
|
||||||
String date = DateTimeUtil.format(LocalDateTime.now(), "yyMMdd");
|
String date = DateTimeUtil.format(LocalDateTime.now(), "yyMMdd");
|
||||||
System.out.println(date);
|
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, "数量错误");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.nflg.wms.common.pojo.vo;
|
package com.nflg.wms.common.pojo.vo;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
|
@ -56,6 +57,20 @@ public class ApplyReturnRequestItemVO {
|
||||||
*/
|
*/
|
||||||
private BigDecimal requestQuantity;
|
private BigDecimal requestQuantity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 剩余数量
|
||||||
|
*/
|
||||||
|
private BigDecimal left;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 领料数量最小值
|
||||||
|
*/
|
||||||
|
private BigDecimal requestQuantityLimit;
|
||||||
|
|
||||||
|
public BigDecimal getRequestQuantityLimit() {
|
||||||
|
return requestQuantity.subtract(left);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 出库状态
|
* 出库状态
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,15 @@ public class OutAssistanceItemVO {
|
||||||
*/
|
*/
|
||||||
private BigDecimal left;
|
private BigDecimal left;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 领料数量最小值
|
||||||
|
*/
|
||||||
|
private BigDecimal numLimit;
|
||||||
|
|
||||||
|
public BigDecimal getNumLimit() {
|
||||||
|
return num.subtract(left);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发货仓库
|
* 发货仓库
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -105,4 +105,13 @@ public class OutCostcenterInfoItemVO {
|
||||||
* 待领数量
|
* 待领数量
|
||||||
*/
|
*/
|
||||||
private BigDecimal left;
|
private BigDecimal left;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 领料数量最小值
|
||||||
|
*/
|
||||||
|
private BigDecimal numLimit;
|
||||||
|
|
||||||
|
public BigDecimal getNumLimit() {
|
||||||
|
return num.subtract(left);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -126,6 +126,15 @@ public class OutProduceInfoItemVO {
|
||||||
*/
|
*/
|
||||||
private BigDecimal lockNum;
|
private BigDecimal lockNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请数量最小值
|
||||||
|
*/
|
||||||
|
private BigDecimal sqslLimit;
|
||||||
|
|
||||||
|
public BigDecimal getSqslLimit() {
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 已领数量
|
* 已领数量
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue