PDA上架查询修改1
This commit is contained in:
+7
-7
@@ -540,23 +540,23 @@ public class StockReceiptOrderApplicationService {
|
||||
}
|
||||
// 只有当获取到值时才更新attributeValue(避免覆盖已有的值)
|
||||
if (fieldValue != null) {
|
||||
// 扩展属性1-4:优先使用 material_more_detail 的值(按 material_detail_unique_id 存储,每个明细独立)
|
||||
// 避免从 ReceiptMaterialDetailPO 反射取值(主项/子项可能共用 in_unique_id,导致取到同一 in_material_detail 的错误值)
|
||||
// 子项(level=2)与主项共用 in_unique_id,ReceiptMaterialDetailPO 反射取值会得到 in_material_detail 的值,覆盖子项真实数据
|
||||
// 故 batch_ref_no、invoice_no、sheet_ref_no、box_pallet_no、ext_attr 等均优先用 material_more_detail
|
||||
boolean isChild = receiptMaterialDetailPO.getLevel() != null && receiptMaterialDetailPO.getLevel() == 2;
|
||||
boolean isExtAttr = usedFieldName != null && (
|
||||
"ext_attr_1".equalsIgnoreCase(usedFieldName) || "extAttr1".equals(usedFieldName)
|
||||
|| "ext_attr_2".equalsIgnoreCase(usedFieldName) || "extAttr2".equals(usedFieldName)
|
||||
|| "ext_attr_3".equalsIgnoreCase(usedFieldName) || "extAttr3".equals(usedFieldName)
|
||||
|| "ext_attr_4".equalsIgnoreCase(usedFieldName) || "extAttr4".equals(usedFieldName));
|
||||
if (isExtAttr) {
|
||||
// 扩展属性:优先从 material_more_detail 表查询(按 material_detail_unique_id + batch_detail_id)
|
||||
boolean preferMaterialMoreDetail = isExtAttr || isChild;
|
||||
if (preferMaterialMoreDetail) {
|
||||
String attrFromDb = getExtAttrFromMaterialMoreDetail(receiptMaterialDetailPO.getUniqueId(), batchDetailFeignPO.getBatchDetailId());
|
||||
if (StringUtils.isNotBlank(attrFromDb)) {
|
||||
materialMoreDetailPO.setAttributeValue(attrFromDb);
|
||||
log.debug("扩展属性 batchDetailId={}, 使用 material_more_detail 的值={}",
|
||||
log.debug("批次属性 batchDetailId={}, 使用 material_more_detail 的值={}",
|
||||
materialMoreDetailPO.getBatchDetailId(), attrFromDb);
|
||||
} else if (StringUtils.isNotBlank(materialMoreDetailPO.getAttributeValue())) {
|
||||
// 已有值(来自 queryListChildren 的 merge)则保留
|
||||
log.debug("扩展属性 batchDetailId={}, 保留已有值={}",
|
||||
log.debug("批次属性 batchDetailId={}, 保留已有值={}",
|
||||
materialMoreDetailPO.getBatchDetailId(), materialMoreDetailPO.getAttributeValue());
|
||||
} else {
|
||||
materialMoreDetailPO.setAttributeValue(fieldValue);
|
||||
|
||||
Reference in New Issue
Block a user