|
|
@ -121,7 +121,7 @@ public class ScrapServiceImpl extends AbstractController implements ScrapService |
|
|
labelInfo.setLocationId(handlingUnit.getLocationId()); |
|
|
labelInfo.setLocationId(handlingUnit.getLocationId()); |
|
|
labelInfo.setWarehouseId(handlingUnit.getWarehouseId()); |
|
|
labelInfo.setWarehouseId(handlingUnit.getWarehouseId()); |
|
|
labelInfo.setInStockFlag(handlingUnit.getInStockFlag()); |
|
|
labelInfo.setInStockFlag(handlingUnit.getInStockFlag()); |
|
|
|
|
|
|
|
|
|
|
|
labelInfo.setEngChgLevel(handlingUnit.getEngChgLevel()); |
|
|
return labelInfo; |
|
|
return labelInfo; |
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
@ -209,14 +209,19 @@ public class ScrapServiceImpl extends AbstractController implements ScrapService |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 查询对应的库存记录,增加WDR条件 |
|
|
|
|
|
|
|
|
String engChgLevel = StringUtils.isNotBlank(label.getEngChgLevel()) |
|
|
|
|
|
? label.getEngChgLevel() |
|
|
|
|
|
: (StringUtils.isNotBlank(handlingUnit.getEngChgLevel()) ? handlingUnit.getEngChgLevel() : "1"); |
|
|
|
|
|
|
|
|
|
|
|
// 查询对应的库存记录,增加WDR和ENG_CHG_LEVEL条件 |
|
|
QueryWrapper<InventoryStock> stockWrapper = new QueryWrapper<>(); |
|
|
QueryWrapper<InventoryStock> stockWrapper = new QueryWrapper<>(); |
|
|
stockWrapper.eq("site", site) |
|
|
stockWrapper.eq("site", site) |
|
|
.eq("part_no", label.getPartNo()) |
|
|
.eq("part_no", label.getPartNo()) |
|
|
.eq("batch_no", label.getBatchNo()) |
|
|
.eq("batch_no", label.getBatchNo()) |
|
|
.eq("location_id", label.getLocationId()) |
|
|
.eq("location_id", label.getLocationId()) |
|
|
.eq("warehouse_id", label.getWarehouseId()) |
|
|
.eq("warehouse_id", label.getWarehouseId()) |
|
|
.eq("wdr", handlingUnit.getWdr() != null ? handlingUnit.getWdr() : "*"); |
|
|
|
|
|
|
|
|
.eq("wdr", handlingUnit.getWdr() != null ? handlingUnit.getWdr() : "*") |
|
|
|
|
|
.eq("eng_chg_level", engChgLevel); |
|
|
|
|
|
|
|
|
InventoryStock stock = inventoryStockService.getOne(stockWrapper); |
|
|
InventoryStock stock = inventoryStockService.getOne(stockWrapper); |
|
|
if (stock != null) { |
|
|
if (stock != null) { |
|
|
@ -241,16 +246,17 @@ public class ScrapServiceImpl extends AbstractController implements ScrapService |
|
|
.eq(InventoryStock::getPartNo, label.getPartNo()) |
|
|
.eq(InventoryStock::getPartNo, label.getPartNo()) |
|
|
.eq(InventoryStock::getBatchNo, label.getBatchNo()) |
|
|
.eq(InventoryStock::getBatchNo, label.getBatchNo()) |
|
|
.eq(InventoryStock::getLocationId, label.getLocationId()) |
|
|
.eq(InventoryStock::getLocationId, label.getLocationId()) |
|
|
.eq(InventoryStock::getWdr, handlingUnit.getWdr() != null ? handlingUnit.getWdr() : "*"); |
|
|
|
|
|
|
|
|
.eq(InventoryStock::getWdr, handlingUnit.getWdr() != null ? handlingUnit.getWdr() : "*") |
|
|
|
|
|
.eq(InventoryStock::getEngChgLevel, engChgLevel); |
|
|
|
|
|
|
|
|
inventoryStockService.update(stock, updateWrapper); |
|
|
inventoryStockService.update(stock, updateWrapper); |
|
|
log.info("库存更新成功 - 物料: {}, 批次: {}, 库位: {}, WDR: {}, 原库存: {}, 报废数量: {}, 新库存: {}", |
|
|
|
|
|
|
|
|
log.info("库存更新成功 - 物料: {}, 批次: {}, 库位: {}, WDR: {}, ENG_CHG_LEVEL: {}, 原库存: {}, 报废数量: {}, 新库存: {}", |
|
|
label.getPartNo(), label.getBatchNo(), label.getLocationId(), |
|
|
label.getPartNo(), label.getBatchNo(), label.getLocationId(), |
|
|
handlingUnit.getWdr() != null ? handlingUnit.getWdr() : "", currentQty, label.getQuantity(), newQty); |
|
|
|
|
|
|
|
|
handlingUnit.getWdr() != null ? handlingUnit.getWdr() : "", engChgLevel, currentQty, label.getQuantity(), newQty); |
|
|
} else { |
|
|
} else { |
|
|
log.warn("未找到对应的库存记录 - 物料: {}, 批次: {}, 库位: {}, WDR: {}", |
|
|
|
|
|
|
|
|
log.warn("未找到对应的库存记录 - 物料: {}, 批次: {}, 库位: {}, WDR: {}, ENG_CHG_LEVEL: {}", |
|
|
label.getPartNo(), label.getBatchNo(), label.getLocationId(), |
|
|
label.getPartNo(), label.getBatchNo(), label.getLocationId(), |
|
|
handlingUnit.getWdr() != null ? handlingUnit.getWdr() : ""); |
|
|
|
|
|
|
|
|
handlingUnit.getWdr() != null ? handlingUnit.getWdr() : "", engChgLevel); |
|
|
throw new RuntimeException("库存不存在"); |
|
|
throw new RuntimeException("库存不存在"); |
|
|
} |
|
|
} |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
@ -279,12 +285,17 @@ public class ScrapServiceImpl extends AbstractController implements ScrapService |
|
|
continue; |
|
|
continue; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 生成汇总键:物料号+批次号+库位+WDR |
|
|
|
|
|
String summaryKey = String.format("%s|%s|%s|%s", |
|
|
|
|
|
|
|
|
String engChgLevel = StringUtils.isNotBlank(label.getEngChgLevel()) |
|
|
|
|
|
? label.getEngChgLevel() |
|
|
|
|
|
: (StringUtils.isNotBlank(handlingUnit.getEngChgLevel()) ? handlingUnit.getEngChgLevel() : "1"); |
|
|
|
|
|
|
|
|
|
|
|
// 生成汇总键:物料号+批次号+库位+WDR+ENG_CHG_LEVEL |
|
|
|
|
|
String summaryKey = String.format("%s|%s|%s|%s|%s", |
|
|
label.getPartNo(), |
|
|
label.getPartNo(), |
|
|
label.getBatchNo() != null ? label.getBatchNo() : "", |
|
|
label.getBatchNo() != null ? label.getBatchNo() : "", |
|
|
label.getLocationId() != null ? label.getLocationId() : "", |
|
|
label.getLocationId() != null ? label.getLocationId() : "", |
|
|
handlingUnit.getWdr() != null ? handlingUnit.getWdr() : "*" |
|
|
|
|
|
|
|
|
handlingUnit.getWdr() != null ? handlingUnit.getWdr() : "*", |
|
|
|
|
|
engChgLevel |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
ScrapSummaryInfo summaryInfo = summaryMap.computeIfAbsent(summaryKey, k -> { |
|
|
ScrapSummaryInfo summaryInfo = summaryMap.computeIfAbsent(summaryKey, k -> { |
|
|
@ -293,6 +304,7 @@ public class ScrapServiceImpl extends AbstractController implements ScrapService |
|
|
info.setBatchNo(label.getBatchNo() != null ? label.getBatchNo() : ""); |
|
|
info.setBatchNo(label.getBatchNo() != null ? label.getBatchNo() : ""); |
|
|
info.setLocationId(label.getLocationId() != null ? label.getLocationId() : ""); |
|
|
info.setLocationId(label.getLocationId() != null ? label.getLocationId() : ""); |
|
|
info.setWdr(handlingUnit.getWdr() != null ? handlingUnit.getWdr() : "*"); |
|
|
info.setWdr(handlingUnit.getWdr() != null ? handlingUnit.getWdr() : "*"); |
|
|
|
|
|
info.setEngChgLevel(engChgLevel); |
|
|
info.setTotalQty(BigDecimal.ZERO); |
|
|
info.setTotalQty(BigDecimal.ZERO); |
|
|
info.setHuList(new ArrayList<>()); |
|
|
info.setHuList(new ArrayList<>()); |
|
|
return info; |
|
|
return info; |
|
|
@ -332,7 +344,7 @@ public class ScrapServiceImpl extends AbstractController implements ScrapService |
|
|
Map.entry("ifsLocationNo", summaryInfo.getLocationId() != null ? summaryInfo.getLocationId() : ""), |
|
|
Map.entry("ifsLocationNo", summaryInfo.getLocationId() != null ? summaryInfo.getLocationId() : ""), |
|
|
Map.entry("ifsLotBatchNo", summaryInfo.getBatchNo() != null ? summaryInfo.getBatchNo() : ""), |
|
|
Map.entry("ifsLotBatchNo", summaryInfo.getBatchNo() != null ? summaryInfo.getBatchNo() : ""), |
|
|
Map.entry("ifsSerialNo", "*"), |
|
|
Map.entry("ifsSerialNo", "*"), |
|
|
Map.entry("ifsEngChgLevel", "1"), |
|
|
|
|
|
|
|
|
Map.entry("ifsEngChgLevel", summaryInfo.getEngChgLevel() != null ? summaryInfo.getEngChgLevel() : "1"), |
|
|
Map.entry("ifsWdrNo", summaryInfo.getWdr() != null ? summaryInfo.getWdr() : "*"), |
|
|
Map.entry("ifsWdrNo", summaryInfo.getWdr() != null ? summaryInfo.getWdr() : "*"), |
|
|
Map.entry("ifsHandlingUntiID", "0"), |
|
|
Map.entry("ifsHandlingUntiID", "0"), |
|
|
Map.entry("ifsQtyScrapped", summaryInfo.getTotalQty()), // 保持 BigDecimal 精度 |
|
|
Map.entry("ifsQtyScrapped", summaryInfo.getTotalQty()), // 保持 BigDecimal 精度 |
|
|
@ -378,6 +390,7 @@ public class ScrapServiceImpl extends AbstractController implements ScrapService |
|
|
private String batchNo; |
|
|
private String batchNo; |
|
|
private String locationId; |
|
|
private String locationId; |
|
|
private String wdr; |
|
|
private String wdr; |
|
|
|
|
|
private String engChgLevel; |
|
|
private BigDecimal totalQty; |
|
|
private BigDecimal totalQty; |
|
|
private List<String> huList; |
|
|
private List<String> huList; |
|
|
|
|
|
|
|
|
@ -394,6 +407,9 @@ public class ScrapServiceImpl extends AbstractController implements ScrapService |
|
|
public String getWdr() { return wdr; } |
|
|
public String getWdr() { return wdr; } |
|
|
public void setWdr(String wdr) { this.wdr = wdr; } |
|
|
public void setWdr(String wdr) { this.wdr = wdr; } |
|
|
|
|
|
|
|
|
|
|
|
public String getEngChgLevel() { return engChgLevel; } |
|
|
|
|
|
public void setEngChgLevel(String engChgLevel) { this.engChgLevel = engChgLevel; } |
|
|
|
|
|
|
|
|
public BigDecimal getTotalQty() { return totalQty; } |
|
|
public BigDecimal getTotalQty() { return totalQty; } |
|
|
public void setTotalQty(BigDecimal totalQty) { this.totalQty = totalQty; } |
|
|
public void setTotalQty(BigDecimal totalQty) { this.totalQty = totalQty; } |
|
|
|
|
|
|
|
|
|