소스 검색

fix:采购订单增加排序字段,防止插入和查询时乱序导致原数据更新时重排序

lumaojun 3 주 전
부모
커밋
3bde85970c

+ 1 - 0
easydo-mes/src/main/java/easydo/technology/model/PurchasePlanDetail.java

@@ -8,6 +8,7 @@ public class PurchasePlanDetail {
     private String planId;
     private String materialCode;
     private java.math.BigDecimal number;
+    private Integer sortOrder;
 
     // 非数据库字段
     private ProductMaterial material;

+ 9 - 3
easydo-mes/src/main/java/easydo/technology/service/impl/PurchasePlanServiceImpl.java

@@ -18,6 +18,7 @@ import javax.annotation.Resource;
 import javax.sql.DataSource;
 import java.sql.Connection;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -115,9 +116,10 @@ public class PurchasePlanServiceImpl implements PurchasePlanService {
                 }
 
                 // 5. 补全明细列表 ChildrenList
-                PurchasePlanDetail detailParam = new PurchasePlanDetail();
-                detailParam.setPlanId(model.getId());
-                List<PurchasePlanDetail> detailList = jdbcClient.getJdbcList(detailParam, connection);
+                Map<String, Object> detailQuery = new HashMap<>();
+                detailQuery.put("planId", model.getId());
+                detailQuery.put("orderBy", "sortOrder_asc");
+                List<PurchasePlanDetail> detailList = jdbcClient.getJdbcList(detailQuery, PurchasePlanDetail.class, connection);
                 if (detailList != null) {
                     for (PurchasePlanDetail detail : detailList) {
                         // 5.1 补全明细中的物料信息 ProductMaterial
@@ -163,8 +165,10 @@ public class PurchasePlanServiceImpl implements PurchasePlanService {
             // 4) 插入明细
             List<PurchasePlanDetail> detailList = model.getChildrenList();
             if (detailList != null) {
+                int sortOrder = 0;
                 for (PurchasePlanDetail detail : detailList) {
                     detail.setPlanId(model.getId());
+                    detail.setSortOrder(sortOrder++);
                     jdbcClient.jdbcInsert(detail, connection);
                 }
             }
@@ -195,8 +199,10 @@ public class PurchasePlanServiceImpl implements PurchasePlanService {
             // 3) 插入新明细
             List<PurchasePlanDetail> detailList = model.getChildrenList();
             if (detailList != null) {
+                int sortOrder = 0;
                 for (PurchasePlanDetail detail : detailList) {
                     detail.setPlanId(model.getId());
+                    detail.setSortOrder(sortOrder++);
                     jdbcClient.jdbcInsert(detail, connection);
                 }
             }