‘linchangsheng’ 9 månader sedan
förälder
incheckning
dd0e521cea

+ 22 - 8
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseExcelLogic.java

@@ -1132,16 +1132,15 @@ public class OrderBaseExcelLogic {
                 for (PgOrderProduct pgOrderProduct : pgOrderProductList) {
 
                  //判断有无导入过
-                    PgOrderProduct pgOrderProductUp = pgOrderProductService.lambdaQuery()
-                            .in(PgOrderProduct::getOrderBaseId, pgOrderBase.getId()).last("limit 1").one();
+                    List<PgOrderProductDetail> pgOrderProductDetails = pgOrderProductDetailService.lambdaQuery()
+                            .in(PgOrderProductDetail::getOrderBaseId, pgOrderBase.getId()).list();
 
-                    if (pgOrderProductUp != null){
+                    if (!CollectionUtils.isEmpty(pgOrderProductDetails)){
 
-                        pgOrderProduct.setId(pgOrderProductUp.getId());
+                        pgOrderProduct.setId(pgOrderProduct.getId());
                         pgOrderProduct.updateById();
 
-                        List<PgOrderProductDetail> pgOrderProductDetails = pgOrderProductDetailService.lambdaQuery()
-                                .in(PgOrderProductDetail::getOrderBaseId, pgOrderBase.getId()).list();
+
 
                         int sort = 0;
                         List<PgOrderProductDetail> pgOrderProductDetailList = pgOrderProductDetails.stream()
@@ -1149,7 +1148,7 @@ public class OrderBaseExcelLogic {
 
                         for (PgOrderProductDetail pgOrderProductDetail : pgOrderProductDetailList) {
                             pgOrderProductDetail.setSort(sort+1);
-                            pgOrderProductDetail.setOrderProductId(pgOrderProductUp.getProductId());
+                            pgOrderProductDetail.setOrderProductId(pgOrderProduct.getProductId());
 
                             pgOrderProductDetail.updateById();
                             sort++;
@@ -1162,11 +1161,26 @@ public class OrderBaseExcelLogic {
                             if (sort > pgOrderProduct.getNum())
                                 break;
                             pgOrderProductDetail.setSort(sort+1);
-                            pgOrderProductDetail.setOrderProductId(pgOrderProductUp.getProductId());
+                            pgOrderProductDetail.setOrderProductId(pgOrderProduct.getProductId());
 
                             pgOrderProductDetail.updateById();
                             sort++;
                         }
+                        if (sort < pgOrderProduct.getNum()){
+                            List<PgOrderProductDetail> newProductDetail = new ArrayList<>();
+                            while(true){
+                                if (sort > pgOrderProduct.getNum())
+                                    break;
+                                PgOrderProductDetail pgOrderProductDetail = BeanUtil.toBean(pgOrderProduct, PgOrderProductDetail.class);
+                                pgOrderProductDetail.setId(null);
+                                pgOrderProductDetail.setNum(1);
+                                pgOrderProductDetail.setSort(sort + 1);
+                                pgOrderProductDetail.setOrderProductId(pgOrderProduct.getId());
+                                newProductDetail.add(pgOrderProductDetail);
+                                sort++;
+                            }
+                            pgOrderProductDetailService.saveBatch(newProductDetail);
+                        }
 
                     }else {