发测试
This commit is contained in:
+65
-3
@@ -545,9 +545,71 @@ public class StockInOrderApplicationService {
|
||||
info.setKhdm(userNcCode);
|
||||
List<InMaterialDetailPO> materialDetailList = info.getMaterialDetailList();
|
||||
if (materialDetailList != null && !materialDetailList.isEmpty()) {
|
||||
for (InMaterialDetailPO inMaterialDetailPO : materialDetailList) {
|
||||
// TODO: 设置物料详情信息
|
||||
inMaterialDetailPO.setKhdm(userNcCode);
|
||||
// 收集所有有效的物料基础信息ID
|
||||
Set<Long> materialBaseInfoIdSet = new HashSet<>();
|
||||
for (InMaterialDetailPO detail : materialDetailList) {
|
||||
if (detail.getMaterialBaseInfoId() != null && detail.getMaterialBaseInfoId() > 0) {
|
||||
materialBaseInfoIdSet.add(detail.getMaterialBaseInfoId());
|
||||
}
|
||||
}
|
||||
|
||||
// 批量查询物料基础信息,try-catch保护,防止没有ID时NPE
|
||||
Map<Long, MaterialBaseInfoPO> materialBaseInfoMap = new HashMap<>();
|
||||
for (Long materialBaseInfoId : materialBaseInfoIdSet) {
|
||||
try {
|
||||
MaterialBaseInfoPO materialBaseInfoPO = materialBaseInfoService.getInfo(materialBaseInfoId);
|
||||
if (materialBaseInfoPO != null) {
|
||||
materialBaseInfoMap.put(materialBaseInfoId, materialBaseInfoPO);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.warn("获取物料基础信息失败,物料基础信息ID:{},错误:{}", materialBaseInfoId, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// 填充明细的物料字段(物料编码、抄码、条码、单位等)
|
||||
Long shipperId = info.getShipperId();
|
||||
for (InMaterialDetailPO detail : materialDetailList) {
|
||||
detail.setKhdm(userNcCode);
|
||||
Long materialBaseInfoId = detail.getMaterialBaseInfoId();
|
||||
MaterialBaseInfoPO materialBaseInfoPO = null;
|
||||
|
||||
if (materialBaseInfoId != null && materialBaseInfoId > 0) {
|
||||
materialBaseInfoPO = materialBaseInfoMap.get(materialBaseInfoId);
|
||||
}
|
||||
// 兜底:ID=0时用物料名称反查
|
||||
if (materialBaseInfoPO == null && StringUtils.isNotBlank(detail.getMaterialName())) {
|
||||
try {
|
||||
MaterialBaseInfoDO queryDO = new MaterialBaseInfoDO();
|
||||
queryDO.setMaterialName(detail.getMaterialName().trim());
|
||||
if (shipperId != null && shipperId > 0) {
|
||||
queryDO.setShipperId(shipperId);
|
||||
}
|
||||
List<MaterialBaseInfoPO> list = materialBaseInfoService.queryList(queryDO);
|
||||
if (list != null && !list.isEmpty()) {
|
||||
materialBaseInfoPO = list.get(0);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.warn("兜底反查物料失败,物料名:{}", detail.getMaterialName());
|
||||
}
|
||||
}
|
||||
|
||||
if (materialBaseInfoPO != null) {
|
||||
if (StringUtils.isBlank(detail.getMaterialCode())) {
|
||||
detail.setMaterialCode(materialBaseInfoPO.getMaterialCode());
|
||||
}
|
||||
if (StringUtils.isBlank(detail.getBarCode())) {
|
||||
detail.setBarCode(materialBaseInfoPO.getBarCode());
|
||||
}
|
||||
if (StringUtils.isBlank(detail.getUnitCode())) {
|
||||
detail.setUnitCode(materialBaseInfoPO.getUnitCode());
|
||||
}
|
||||
if (StringUtils.isBlank(detail.getUnitName())) {
|
||||
detail.setUnitName(materialBaseInfoPO.getUnitName());
|
||||
}
|
||||
detail.setPackId(materialBaseInfoPO.getPackId());
|
||||
detail.setPackCode(materialBaseInfoPO.getPackCode());
|
||||
detail.setPackName(materialBaseInfoPO.getPackName());
|
||||
}
|
||||
}
|
||||
info.setMaterialDetailList(materialDetailList);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user