发测试

This commit is contained in:
秦鸿展
2026-07-31 16:41:19 +08:00
parent 564b8ff8aa
commit 5fec54ac63
@@ -545,9 +545,71 @@ public class StockInOrderApplicationService {
info.setKhdm(userNcCode); info.setKhdm(userNcCode);
List<InMaterialDetailPO> materialDetailList = info.getMaterialDetailList(); List<InMaterialDetailPO> materialDetailList = info.getMaterialDetailList();
if (materialDetailList != null && !materialDetailList.isEmpty()) { if (materialDetailList != null && !materialDetailList.isEmpty()) {
for (InMaterialDetailPO inMaterialDetailPO : materialDetailList) { // 收集所有有效的物料基础信息ID
// TODO: 设置物料详情信息 Set<Long> materialBaseInfoIdSet = new HashSet<>();
inMaterialDetailPO.setKhdm(userNcCode); 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); info.setMaterialDetailList(materialDetailList);
} }