From 1536165d57b3c8450cbd53f45c61c36f66cc177c Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 12 三月 2026 16:52:38 +0800
Subject: [PATCH] fix: 生产计划的产品规格与物料编码数据为空
---
src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java | 44 ++++++++++++++++++++++++++++++++++++++------
1 files changed, 38 insertions(+), 6 deletions(-)
diff --git a/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java b/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
index de8cfe4..86d6439 100644
--- a/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
+++ b/src/main/java/com/ruoyi/productionPlan/service/impl/ProductionPlanServiceImpl.java
@@ -15,8 +15,10 @@
import com.ruoyi.common.utils.http.HttpUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.config.AliDingConfig;
+import com.ruoyi.production.pojo.ProductMaterial;
import com.ruoyi.production.pojo.ProductMaterialSku;
import com.ruoyi.production.pojo.ProductOrder;
+import com.ruoyi.production.service.ProductMaterialService;
import com.ruoyi.production.service.ProductMaterialSkuService;
import com.ruoyi.production.service.ProductOrderService;
import com.ruoyi.productionPlan.dto.ProductionPlanDto;
@@ -73,6 +75,9 @@
@Autowired
private ProductMaterialSkuService productMaterialSkuService;
+
+ @Autowired
+ private ProductMaterialService productMaterialService;
/**
* 鍚屾閿侊紝纭繚鎵嬪姩鍜屽畾鏃朵换鍔′笉鍚屾椂鎵ц
@@ -384,13 +389,23 @@
plan.setCustomerName(formData.getString("textField_lbkozohg"));
String materialCode = row.getString("textField_l9xo62q5");
+ plan.setMaterialCode(materialCode);
// 鏍规嵁鐗╂枡缂栫爜鏌ヨ鐗╂枡淇℃伅琛紝鍏宠仈鐗╂枡ID
if (StringUtils.isNotEmpty(materialCode)) {
LambdaQueryWrapper<ProductMaterialSku> skuQueryWrapper = new LambdaQueryWrapper<>();
skuQueryWrapper.eq(ProductMaterialSku::getMaterialCode, materialCode);
ProductMaterialSku sku = productMaterialSkuService.getOne(skuQueryWrapper);
- if (sku != null && sku.getMaterialId() != null) {
- plan.setProductMaterialId(sku.getMaterialId().intValue());
+ if (sku != null) {
+ plan.setProductMaterialSkuId(sku.getId());
+ if (sku.getMaterialId() != null) {
+ // 璁剧疆浜у搧鍚嶇О
+ ProductMaterial material = productMaterialService.getById(sku.getMaterialId());
+ if (material != null) {
+ plan.setProductName(material.getMaterialName());
+ }
+ }
+ // 璁剧疆瑙勬牸鍨嬪彿
+ plan.setProductSpec(sku.getSpecification());
}
}
@@ -467,19 +482,19 @@
// Map (formInstanceId + materialCode)
Map<String, ProductionPlan> existMap = new HashMap<>();
for (ProductionPlan p : existList) {
- String key = p.getFormInstanceId() + "_" + p.getProductMaterialId();
+ String key = p.getFormInstanceId() + "_" + p.getProductMaterialSkuId();
existMap.put(key, p);
}
// 閬嶅巻鍚屾鏁版嵁
for (ProductionPlan plan : list) {
- String key = plan.getFormInstanceId() + "_" + plan.getProductMaterialId();
+ String key = plan.getFormInstanceId() + "_" + plan.getProductMaterialSkuId();
ProductionPlan exist = existMap.get(key);
if (exist == null) {
// 鏂板
this.save(plan);
affected++;
- log.info("鏂板鏁版嵁 formInstanceId={}, materialCode={}", plan.getFormInstanceId(), plan.getProductMaterialId());
+ log.info("鏂板鏁版嵁 formInstanceId={}, materialCode={}", plan.getFormInstanceId(), plan.getProductMaterialSkuId());
} else {
// 鍒ゆ柇鏄惁闇�瑕佹洿鏂�
if (exist.getFormModifiedTime() == null || !exist.getFormModifiedTime().equals(plan.getFormModifiedTime())) {
@@ -487,7 +502,7 @@
plan.setCreateTime(exist.getCreateTime());
this.updateById(plan);
affected++;
- log.info("鏇存柊鏁版嵁 formInstanceId={}, materialCode={}", plan.getFormInstanceId(), plan.getProductMaterialId());
+ log.info("鏇存柊鏁版嵁 formInstanceId={}, materialCode={}", plan.getFormInstanceId(), plan.getProductMaterialSkuId());
}
}
}
@@ -541,6 +556,23 @@
entity.setDataSourceType(2);
entity.setDataSyncType(1);
+ // 鏍规嵁鐗╂枡缂栫爜濉厖鍏宠仈ID
+ if (StringUtils.isNotEmpty(dto.getMaterialCode())) {
+ LambdaQueryWrapper<ProductMaterialSku> skuQueryWrapper = new LambdaQueryWrapper<>();
+ skuQueryWrapper.eq(ProductMaterialSku::getMaterialCode, dto.getMaterialCode());
+ ProductMaterialSku sku = productMaterialSkuService.getOne(skuQueryWrapper);
+ if (sku != null) {
+ entity.setProductMaterialSkuId(sku.getId());
+ if (sku.getMaterialId() != null) {
+ ProductMaterial material = productMaterialService.getById(sku.getMaterialId());
+ if (material != null) {
+ entity.setProductName(material.getMaterialName());
+ }
+ }
+ entity.setProductSpec(sku.getSpecification());
+ }
+ }
+
entityList.add(entity);
}
this.saveBatch(entityList);
--
Gitblit v1.9.3