Przeglądaj źródła

修改跨区以大代小逻辑

[user3] 4 lat temu
rodzic
commit
a549233e1b

+ 13 - 0
src/main/java/com/jeeplus/modules/sg/balancedlibrary/liKuResourcePool/entity/LiKuResourcePool.java

@@ -112,6 +112,11 @@ public class LiKuResourcePool extends DataEntity<LiKuResourcePool> {
      * */
     private Integer whereFrom;
 
+    /**
+     * 记录段长数据拆分后属于哪个段长
+     */
+    private Integer segBelongs;
+
     @ExcelField(title = "序号", align = 2, sort = 1)
     public String getSerialNumber() {
         return serialNumber;
@@ -348,4 +353,12 @@ public class LiKuResourcePool extends DataEntity<LiKuResourcePool> {
     public void setWhereFrom(Integer whereFrom) {
         this.whereFrom = whereFrom;
     }
+
+    public Integer getSegBelongs() {
+        return segBelongs;
+    }
+
+    public void setSegBelongs(Integer segBelongs) {
+        this.segBelongs = segBelongs;
+    }
 }

+ 1 - 1
src/main/java/com/jeeplus/modules/sg/balancedlibrary/liKuResourcePool/mapper/xml/LiKuResourcePoolMapper.xml

@@ -136,7 +136,7 @@
 	</insert>
 	
 	<insert id="insertList">
-		replace into bla_resource_pool(
+		insert into bla_resource_pool(
 		id,
  		create_by,
  		create_date,

+ 51 - 3
src/main/java/com/jeeplus/modules/sg/balancedlibrary/liKuResourcePool/web/LiKuResourcePoolController.java

@@ -178,7 +178,8 @@ public class LiKuResourcePoolController extends BaseController {
 		try {
 			ImportExcel ei = new ImportExcel(file, 0, 0);
 			List<LiKuResourcePool> list = new ArrayList<>();
-			for (int i = 1; i <= ei.getLastDataRowNum(); i++) {
+			int lastDataRowNum = ei.getLastDataRowNum();
+			for (int i = 1; i <= lastDataRowNum; i++) {
 				LiKuResourcePool pool = new LiKuResourcePool();
 				Row row = ei.getRow(i);
 				pool.setSerialNumber(String.valueOf(row.getCell(0)));
@@ -213,11 +214,58 @@ public class LiKuResourcePoolController extends BaseController {
 				list.add(pool);
 			}
 			if (list.size() > 0) {
+				List<LiKuResourcePool> insertList = new ArrayList<>();
+				for (LiKuResourcePool pool :
+						list) {
+					Integer isSectionLength = pool.getIsSectionLength();
+					if (isSectionLength.compareTo(LiKuUtils.YES) == 0) {
+						String lengthOfCable = pool.getLengthOfCable();
+						if (null != lengthOfCable && !"".equals(lengthOfCable)) {
+							String[] split = lengthOfCable.split(";");
+							for (int i = 0; i < split.length; i++) {
+								LiKuResourcePool liKu = new LiKuResourcePool();
+								liKu.setSerialNumber(pool.getSerialNumber());
+								liKu.setFactory(pool.getFactory());
+								liKu.setBatch(pool.getBatch());
+								liKu.setMaterialCode(pool.getMaterialCode());
+								liKu.setMaterialDescription(pool.getMaterialDescription());
+								liKu.setUnitOfMeasurement(pool.getUnitOfMeasurement());
+								liKu.setInventoryAmount(Double.valueOf(split[i]));
+								liKu.setInventoryLocation(pool.getInventoryLocation());
+								liKu.setInvLocation(pool.getInvLocation());
+								liKu.setInvLocationDes(pool.getInvLocationDes());
+								liKu.setSupplierName(pool.getSupplierName());
+								liKu.setSpecialStock(pool.getSpecialStock());
+								liKu.setExtendedCoding(pool.getExtendedCoding());
+								liKu.setExtendedDescription(pool.getExtendedDescription());
+								liKu.setLengthOfCable(pool.getLengthOfCable());
+								liKu.setRingCage(pool.getRingCage());
+								liKu.setTerminalWarranty(pool.getTerminalWarranty());
+								liKu.setSpecialParameters(pool.getSpecialParameters());
+								liKu.setRemarks(pool.getRemarks());
+								liKu.setDaysStorage(pool.getDaysStorage());
+								liKu.setMonthStorage(pool.getMonthStorage());
+								liKu.setIsExpansion(pool.getIsExpansion());
+								liKu.setNumberOfNiches(pool.getNumberOfNiches());
+								liKu.setRemaining(Double.valueOf(split[i]));
+								liKu.setIsSectionLength(pool.getIsSectionLength());
+								liKu.setWhereFrom(pool.getWhereFrom());
+								liKu.setSegBelongs(i);
+								insertList.add(liKu);
+							}
+						} else {
+							pool.setSegBelongs(1);
+							insertList.add(pool);
+						}
+					}else {
+						insertList.add(pool);
+					}
+				}
 				//利库资源池每次重新导入数据,将原有数据清空
 				service.clearLiKuResource();
-				service.insertList(list);
+				service.insertList(insertList);
+				j.setMsg("已成功导入 " + insertList.size() + " 条利库资源池记录");
 			}
-			j.setMsg("已成功导入 " + list.size() + " 条利库资源池记录");
 		} catch (Exception e) {
 			j.setSuccess(false);
 			j.setMsg("导入利库资源池失败!失败信息:"+e.getMessage());

+ 324 - 60
src/main/java/com/jeeplus/modules/sg/balancedlibrary/materialReportDetails/web/MaterialReportDetailsController.java

@@ -807,7 +807,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
             //本部-丹阳
@@ -891,7 +899,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
             //本部-句容
@@ -975,7 +991,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
 
@@ -1060,7 +1084,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
             //杨中-丹阳
@@ -1144,7 +1176,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
             //扬中-句容
@@ -1228,7 +1268,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
 
@@ -1313,7 +1361,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
             //丹阳-扬中
@@ -1397,7 +1453,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
             //丹阳-句容
@@ -1481,7 +1545,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
 
@@ -1566,7 +1638,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
             //句容-扬中
@@ -1650,7 +1730,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
             //句容-丹阳
@@ -1734,7 +1822,15 @@ public class MaterialReportDetailsController extends BaseController {
                             }
                         }
                     }
-                    details.setRegionalList(detailsList);
+                    List<MaterialDetails> regionalList = details.getRegionalList();
+                    if (null != regionalList && regionalList.size() > 0) {
+                        regionalList.addAll(detailsList);
+                        details.setRegionalList(regionalList);
+                    } else {
+                        regionalList = new ArrayList<>();
+                        regionalList.addAll(detailsList);
+                    }
+                    details.setRegionalList(regionalList);
                 }
             }
 
@@ -1789,8 +1885,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -1877,8 +1973,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -1964,8 +2060,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2051,8 +2147,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2140,8 +2236,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2212,7 +2308,14 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
                 //本部-丹阳跨域以大代小
@@ -2227,8 +2330,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2299,7 +2402,14 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
                 //本部-句容跨域以大代小
@@ -2314,8 +2424,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2386,7 +2496,14 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
 
@@ -2402,8 +2519,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2474,7 +2591,14 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
                 //扬中-丹阳跨域以大代小
@@ -2489,8 +2613,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2561,7 +2685,14 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
                 //扬中-句容跨域以大代小
@@ -2576,8 +2707,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2648,7 +2779,14 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
 
@@ -2664,8 +2802,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2736,7 +2874,14 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
                 //丹阳-扬中跨域以大代小
@@ -2751,8 +2896,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2823,7 +2968,14 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
                 //丹阳-句容跨域以大代小
@@ -2838,8 +2990,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2910,7 +3062,14 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
 
@@ -2926,8 +3085,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -2998,7 +3157,14 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
 
@@ -3014,8 +3180,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -3086,7 +3252,14 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
                 //句容-丹阳跨域以大代小
@@ -3101,8 +3274,8 @@ public class MaterialReportDetailsController extends BaseController {
                         }
                         //物资需求数量
                         BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
-                    //总需求数量
-                    BigDecimal all = BigDecimal.valueOf(details.getTotal());
+                        //总需求数量
+                        BigDecimal all = BigDecimal.valueOf(details.getTotal());
                         //利库数量
                         BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
                         if (all.compareTo(numberOfNiches) == 0) {
@@ -3173,14 +3346,82 @@ public class MaterialReportDetailsController extends BaseController {
                                 }
                             }
                         }
-                        details.setRegionalRepList(detailsList);
+                        List<MaterialDetails> regionalRepList = details.getRegionalRepList();
+                        if (null != regionalRepList && regionalRepList.size() > 0) {
+                            regionalRepList.addAll(detailsList);
+                            details.setRegionalRepList(regionalRepList);
+                        } else {
+                            regionalRepList = new ArrayList<>();
+                        }
+                        details.setRegionalRepList(regionalRepList);
                     }
                 }
             }
 
             /****************************************段长比对*****************************************************/
+            //本部-本部
+            if (bBPoolList.size() > 0 && bBSegmentList.size() > 0) {
+                //计算最优解的集合
+                List<MaterialReportDetails> calculation = new ArrayList<>();
+                //最优解情况
+                List<MaterialReportDetails> bestChose = new ArrayList<>();
+                for (LiKuResourcePool pool :
+                        bBPoolList) {
+                    String poolCode = pool.getMaterialCode();
+                    String poExCode = pool.getExtendedCoding();
+                    //剩余数量
+                    BigDecimal remain = BigDecimal.valueOf(pool.getRemaining());
+                    //利库数量
+                    BigDecimal niches = BigDecimal.valueOf(pool.getNumberOfNiches());
+                    //库存总量
+                    BigDecimal amount = BigDecimal.valueOf(pool.getInventoryAmount());
+                    if (amount.compareTo(niches) == 0) {
+                        continue;
+                    }
+                    //通过物料编码,扩展编码,是否完成利库,获取符合当前利库线段数据的项目集合数据
+                    calculation = Calculation(bBSegmentList, poolCode, poExCode);
+                    //计算最优解
+                    if (bestChose.size() > 0) {
+
+                    }
+                }
+            }
+            //扬中-扬中
+            //丹阳-丹阳
+            //句容-句容
+
+            //本部-扬中
+            //本部-丹阳
+            //本部-句容
+
+            //杨中-本部
+            //杨中-丹阳
+            //杨中-句容
+
+            //句容-本部
+            //句容-扬中
+            //句容-丹阳
+
+            //段长跨域利库
+            //本部-本部
+            //扬中-扬中
+            //丹阳-丹阳
+            //句容-句容
+
+            //本部-扬中
+            //本部-丹阳
+            //本部-句容
+
+            //杨中-本部
+            //杨中-丹阳
+            //杨中-句容
+
+            //句容-本部
+            //句容-扬中
+            //句容-丹阳
+            /****************************************段长以大代小********************************************/
+
 
-            //物资上报明细,根据本部>扬中>丹阳>句容分组
             /*****************************************历史记录保存**************************************************/
             if (compareHistories.size() > 0) {
 
@@ -3235,7 +3476,8 @@ public class MaterialReportDetailsController extends BaseController {
                                 localRepList) {
                             localLiKuBatch += a.getLiKuBatch() + ",";
                             localLiKuWareHouse += a.getWarehouseLocation() + ",";
-                            numberOfLocalLiKu += a.getNumberOfNiches() + ",";;
+                            numberOfLocalLiKu += a.getNumberOfNiches() + ",";
+                            ;
                         }
                         details.setLocalLiKuBatch(localLiKuBatch);
                         details.setLocalLiKuWareHouse(localLiKuWareHouse);
@@ -3303,7 +3545,8 @@ public class MaterialReportDetailsController extends BaseController {
                                 localRepList) {
                             localLiKuBatch += a.getLiKuBatch() + ",";
                             localLiKuWareHouse += a.getWarehouseLocation() + ",";
-                            numberOfLocalLiKu += a.getNumberOfNiches() + ",";;
+                            numberOfLocalLiKu += a.getNumberOfNiches() + ",";
+                            ;
                         }
                         details.setLocalLiKuBatch(localLiKuBatch);
                         details.setLocalLiKuWareHouse(localLiKuWareHouse);
@@ -3371,7 +3614,8 @@ public class MaterialReportDetailsController extends BaseController {
                                 localRepList) {
                             localLiKuBatch += a.getLiKuBatch() + ",";
                             localLiKuWareHouse += a.getWarehouseLocation() + ",";
-                            numberOfLocalLiKu += a.getNumberOfNiches() + ",";;
+                            numberOfLocalLiKu += a.getNumberOfNiches() + ",";
+                            ;
                         }
                         details.setLocalLiKuBatch(localLiKuBatch);
                         details.setLocalLiKuWareHouse(localLiKuWareHouse);
@@ -3473,6 +3717,26 @@ public class MaterialReportDetailsController extends BaseController {
         return j;
     }
 
+    /***
+     * 通过项目编码,扩展编码,查询在物资上报中,符合利库数据集合,计算后续最优解
+     * */
+    private List<MaterialReportDetails> Calculation(List<MaterialReportDetails> bBSegmentList, String poolCode, String poExCode) {
+        List<MaterialReportDetails> returnList = new ArrayList<>();
+        for (MaterialReportDetails details :
+                bBSegmentList) {
+            String code = details.getMaterialCode();
+            String exCode = details.getExtendedCoding();
+            //物资需求数量
+            BigDecimal total = BigDecimal.valueOf(details.getNumberOfApplications());
+            //利库数量
+            BigDecimal numberOfNiches = BigDecimal.valueOf(details.getNumberOfNiches());
+            if (poolCode.equals(code) && poExCode.equals(exCode) && total.compareTo(numberOfNiches) != 0) {
+                returnList.add(details);
+            }
+        }
+        return returnList;
+    }
+
     private void poolSort(List<LiKuResourcePool> bBNonPoolList) {
         Comparator<LiKuResourcePool> reversed = Comparator.comparing(LiKuResourcePool::getDaysStorage).reversed();
         Comparator<LiKuResourcePool> comparator = Comparator.comparing(LiKuResourcePool::getInventoryAmount).reversed();

+ 1 - 1
src/main/webapp/webpage/modules/sg/balancedlibrary/liKuResourcePool/liKuResourcePoolList.js

@@ -239,7 +239,7 @@ $(document).ready(function() {
 				   }
 				   ,{
 					   field: 'remaining',
-					   title: '申请数量',
+					   title: '剩余数量',
 					   sortable: true,
 					   sortName: 'remaining'