feat(inventory): 添加储位管理功能支持
- 在OutDifferenceItemVO中新增推荐储位和扫码储位字段 - 修改OutMaterialScanRecord添加基于储位的唯一键生成 - 更新InventoryController中的库存出库逻辑,增加储位信息传递 - 在扫描记录控制器中实现储位匹配和差异对比功能 - 修复注释中的布尔值说明错误 - 优化代码格式和空行清理
This commit is contained in:
parent
7fab12f680
commit
a76ee52afb
|
|
@ -81,6 +81,9 @@ public class InCostCenterBackController extends BaseController {
|
|||
@Resource
|
||||
private IWmsQrCodeMasterService qrCodeMasterService;
|
||||
|
||||
// @Resource
|
||||
// private IWmsWarehouseService
|
||||
|
||||
/**
|
||||
* 查询SAP领料订单数据
|
||||
*/
|
||||
|
|
@ -183,7 +186,7 @@ public class InCostCenterBackController extends BaseController {
|
|||
vo.setLgort2(CollectionUtil.get(storageService.getWarehouseNo(order.getWerks(), item.getMatnr()), 0));
|
||||
}
|
||||
vo.setLgpbe(storageService.getBinNo(item.getMatnr(), order.getWerks(), vo.getLgort2()));
|
||||
|
||||
// vo.setIsDisableLocation();
|
||||
return vo;
|
||||
}).toList()
|
||||
)
|
||||
|
|
|
|||
|
|
@ -285,7 +285,8 @@ public class InventoryController extends BaseController {
|
|||
@PostMapping("getForOut")
|
||||
public ApiResult<List<InventoryForOutVO>> getForOut(@Valid @RequestBody @NotNull InventoryForOutQO qo) {
|
||||
List<WmsInventory> inventories = inventoryService.getForOutFIFO(qo.getFactoryNo(), qo.getWarehouseNo()
|
||||
, qo.getItems().stream().map(InventoryForOutItemQO::getMaterialNo).collect(Collectors.toSet()));
|
||||
, qo.getItems().stream().map(InventoryForOutItemQO::getMaterialNo).collect(Collectors.toSet())
|
||||
);
|
||||
List<InventoryForOutVO> vos = new ArrayList<>();
|
||||
qo.getItems().forEach(item -> {
|
||||
InventoryForOutVO vo = new InventoryForOutVO()
|
||||
|
|
@ -298,7 +299,7 @@ public class InventoryController extends BaseController {
|
|||
BigDecimal num = item.getNum();
|
||||
for (WmsInventory inventory : mis) {
|
||||
BigDecimal outNum = NumberUtil.min(num, inventory.getNum());
|
||||
vo.getItems().add(new InventoryForOutItemVO(inventory.getBatchNo(), inventory.getSerialNo(), outNum));
|
||||
vo.getItems().add(new InventoryForOutItemVO(inventory.getBatchNo(), inventory.getSerialNo(), inventory.getBinLocation(), outNum));
|
||||
num = num.subtract(outNum);
|
||||
if (num.compareTo(BigDecimal.ZERO) == 0) {
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -103,15 +103,19 @@ public class ScanRecordController extends BaseController {
|
|||
OutDifferenceItemVO itemVO = new OutDifferenceItemVO()
|
||||
.setRecommendbatchNo(item.getBatchNo())
|
||||
.setRecommendSerialNo(item.getSerialNo())
|
||||
.setRecommendBinNo(item.getBinNo())
|
||||
.setRecommendNum(item.getNum());
|
||||
List<OutMaterialScanRecord> mrecords = records.stream()
|
||||
.filter(r -> StrUtil.equals(r.getMaterialNo(), dto.getMaterialNo())
|
||||
&& StrUtil.equals(r.getBatchNo(), item.getBatchNo())
|
||||
&& StrUtil.equals(r.getSerialNo(), item.getSerialNo()))
|
||||
&& StrUtil.equals(r.getSerialNo(), item.getSerialNo())
|
||||
&& StrUtil.equals(r.getBinNo(), item.getBinNo())
|
||||
)
|
||||
.toList();
|
||||
if (CollectionUtil.isNotEmpty(mrecords)) {
|
||||
itemVO.setScanBatchNo(item.getBatchNo());
|
||||
itemVO.setScanSerialNo(item.getSerialNo());
|
||||
itemVO.setScanBinNo(item.getBinNo());
|
||||
itemVO.setScanNum(mrecords.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
records.removeAll(mrecords);
|
||||
}
|
||||
|
|
@ -126,8 +130,8 @@ public class ScanRecordController extends BaseController {
|
|||
OutDifferenceVO vo = vos.stream()
|
||||
.filter(it -> StrUtil.equals(it.getMaterialNo(), k))
|
||||
.findFirst()
|
||||
.orElseGet(()-> {
|
||||
OutDifferenceVO tv=new OutDifferenceVO().setMaterialNo(k);
|
||||
.orElseGet(() -> {
|
||||
OutDifferenceVO tv = new OutDifferenceVO().setMaterialNo(k);
|
||||
vos.add(tv);
|
||||
return tv;
|
||||
});
|
||||
|
|
@ -137,9 +141,11 @@ public class ScanRecordController extends BaseController {
|
|||
vo.getItems().add(new OutDifferenceItemVO()
|
||||
.setRecommendbatchNo("")
|
||||
.setRecommendSerialNo("")
|
||||
.setRecommendNum(BigDecimal.ZERO)
|
||||
.setRecommendBinNo("")
|
||||
// .setRecommendNum(BigDecimal.ZERO)
|
||||
.setScanBatchNo(StrUtil.split(key, "|").get(1))
|
||||
.setScanSerialNo(StrUtil.split(key, "|").get(2))
|
||||
.setScanBinNo(StrUtil.split(key, "|").get(3))
|
||||
.setScanNum(vv.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add)));
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -176,4 +176,11 @@ public class OutMaterialScanRecord {
|
|||
public String getKey8() {
|
||||
return materialNo + "|" + batchNo + "|" + this.serialNo;
|
||||
}
|
||||
|
||||
@Transient
|
||||
private String key9;
|
||||
|
||||
public String getKey9() {
|
||||
return materialNo + "|" + batchNo + "|" + this.serialNo + "|" + this.binNo;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,11 @@ public class OutDifferenceItemVO {
|
|||
*/
|
||||
private String recommendSerialNo;
|
||||
|
||||
/**
|
||||
* 推荐储位
|
||||
*/
|
||||
private String recommendBinNo;
|
||||
|
||||
/**
|
||||
* 推荐数量
|
||||
*/
|
||||
|
|
@ -34,6 +39,11 @@ public class OutDifferenceItemVO {
|
|||
*/
|
||||
private String scanSerialNo;
|
||||
|
||||
/**
|
||||
* 扫码储位
|
||||
*/
|
||||
private String scanBinNo;
|
||||
|
||||
/**
|
||||
* 扫码数量
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ public class OutProduceItemVO {
|
|||
}
|
||||
|
||||
/**
|
||||
* 是否启用储位管理
|
||||
* 是否启用储位管理,true为启用,false为不启用
|
||||
*/
|
||||
@JsonProperty("isDisableLocation")
|
||||
private Boolean isDisableLocation = true;
|
||||
|
|
|
|||
Loading…
Reference in New Issue