feat(wms): 添加订单项数量修改功能

- 在PurchaseReturnController中新增updateItemNum方法用于修改采购退货订单项数量
- 在TransferCompanyController中新增updateItemNum方法用于修改转储公司订单项数量
- 在TransferFactoryController中新增updateItemNum方法用于修改工厂调拨订单项数量
- 新增UpdateItemNumRequest请求类用于接收数量修改参数
- 添加业务逻辑验证确保修改后的数量不低于最小限制值
- 更新TransferCompanyItemVO和TransferFactoryItemVO添加数量限制相关字段
This commit is contained in:
曹鹏飞 2026-03-24 16:47:13 +08:00
parent f2bccd0a4a
commit b4cdc6387e
5 changed files with 69 additions and 0 deletions

View File

@ -8,6 +8,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
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.service.BasdeSerialNumberControllerService; import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
import com.nflg.wms.admin.service.SapService; import com.nflg.wms.admin.service.SapService;
import com.nflg.wms.admin.util.PdfGeneratorUtil; import com.nflg.wms.admin.util.PdfGeneratorUtil;
@ -109,6 +110,22 @@ public class PurchaseReturnController extends BaseController {
return ApiResult.success(vos); return ApiResult.success(vos);
} }
/**
* 修改订单项数量
*/
@PostMapping("updateItemNum")
public ApiResult<Void> updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) {
WmsReturnRequestItem item = returnRequestItemService.getById(request.getId());
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("订单项不存在");
BigDecimal min = item.getRequestQuantity().subtract(item.getLeft());
VUtil.trueThrowBusinessError(request.getNum().compareTo(min) < 0).throwMessage("数量不能小于" + min);
BigDecimal difference = request.getNum().subtract(item.getRequestQuantity());
item.setLeft(item.getLeft().add(difference));
item.setRequestQuantity(request.getNum());
returnRequestItemService.updateById(item);
return ApiResult.success();
}
/** /**
* 获取送货单的入库信息 * 获取送货单的入库信息
* *

View File

@ -10,6 +10,7 @@ import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
import com.nflg.wms.admin.pojo.dto.ZWM3A17DTO; import com.nflg.wms.admin.pojo.dto.ZWM3A17DTO;
import com.nflg.wms.admin.pojo.dto.ZWM3A17Item1DTO; import com.nflg.wms.admin.pojo.dto.ZWM3A17Item1DTO;
import com.nflg.wms.admin.pojo.dto.ZWM3A17Item2DTO; import com.nflg.wms.admin.pojo.dto.ZWM3A17Item2DTO;
import com.nflg.wms.admin.pojo.request.UpdateItemNumRequest;
import com.nflg.wms.admin.repository.InMaterialScanRecordRespository; import com.nflg.wms.admin.repository.InMaterialScanRecordRespository;
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;
@ -223,6 +224,22 @@ public class TransferCompanyController extends BaseController {
return ApiResult.success(vo); return ApiResult.success(vo);
} }
/**
* 修改订单项数量
*/
@PostMapping("updateItemNum")
public ApiResult<Void> updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) {
WmsTransferCompanyItem item = transferCompanyItemService.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());
transferCompanyItemService.updateById(item);
return ApiResult.success();
}
/** /**
* 获取转储单PDA使用 * 获取转储单PDA使用
*/ */

View File

@ -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.InMaterialScanRecordRespository; import com.nflg.wms.admin.repository.InMaterialScanRecordRespository;
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;
@ -221,6 +222,22 @@ public class TransferFactoryController extends BaseController {
return ApiResult.success(vo); return ApiResult.success(vo);
} }
/**
* 修改订单项数量
*/
@PostMapping("updateItemNum")
public ApiResult<Void> updateItemNum(@Valid @RequestBody UpdateItemNumRequest request) {
WmsTransferFactoryItem item = transferFactoryItemService.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());
transferFactoryItemService.updateById(item);
return ApiResult.success();
}
/** /**
* 获取调拨单PDA使用 * 获取调拨单PDA使用
*/ */

View File

@ -140,6 +140,15 @@ public class TransferCompanyItemVO {
return num.subtract(left); return num.subtract(left);
} }
/**
* 转储数量最小值
*/
private BigDecimal numLimit;
public BigDecimal getNumLimit() {
return outNum;
}
/** /**
* 已入库数量 * 已入库数量
*/ */

View File

@ -125,6 +125,15 @@ public class TransferFactoryItemVO {
return num.subtract(left); return num.subtract(left);
} }
/**
* 调库数量最小值
*/
private BigDecimal numLimit;
public BigDecimal getNumLimit() {
return num.subtract(left);
}
/** /**
* 已入库数量 * 已入库数量
*/ */