蔡德晨 5 rokov pred
rodič
commit
a9ecb8f4f6

+ 38 - 13
src/main/java/com/jeeplus/modules/sg/overheadline/web/OverheadLineController.java

@@ -654,30 +654,40 @@ public class OverheadLineController extends BaseController {
   @RequestMapping("/bddtz")
   public String bddtz(FtData ftData, Model model, RedirectAttributes redirectAttributes){
     String id = ftData.getId();
-    String itemType = ftData.getItemType();
+    String itemType = itemService.get(id).getType();
     String state  = ftData.getState();  // 1:增加 2:减少
     String data1 = ftData.getTableData();   //表格数据JOSN字符串
     String row = data1.replaceAll(""","\\\"");
     //将JSON字符串转为list
     List<DdtzData> ts = (List<DdtzData>) JSONArray.parseArray(row, DdtzData.class);
+    List<JkxlDetailFee> list = overheadLineService.getList(id,itemType);
     try {
       //更新细节费用表
       for(DdtzData ddtzData: ts){
         double tzFee = Double.valueOf(ddtzData.getFee());
         String wbsCode = ddtzData.getWbsCode();
-        double totalFee = overheadLineService.getDate(id,wbsCode).getTotalFee();
-        if(state.equals("1")){
-          totalFee = totalFee+tzFee;
-        }
-        if(state.equals("2")){
-          totalFee = totalFee-tzFee;
+        JkxlDetailFee jkxlDetailFee1 = overheadLineService.getDate(id,wbsCode);
+        List<JkxlDetailFee> list1 = new ArrayList<>();
+        JkxlDetailFee jkxlDetailFee2 = getParent(jkxlDetailFee1,list,list1);
+        list1.add(jkxlDetailFee1);
+        for(JkxlDetailFee jkxlDetailFee3 : list1) {
+          if(jkxlDetailFee3.getWbsCode().equals("20000000")){
+            continue;
+          }
+          double totalFee = jkxlDetailFee3.getTotalFee();
+          if (state.equals("1")) {
+            totalFee = totalFee + tzFee;
+          }
+          if (state.equals("2")) {
+            totalFee = totalFee - tzFee;
+          }
+//          JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
+//          jkxlDetailFee.setId(id);
+//          jkxlDetailFee.setWbsCode(wbsCode);
+          jkxlDetailFee3.setTotalFee(totalFee);
+          overheadLineService.updataDate(jkxlDetailFee3);
         }
-        JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
-        jkxlDetailFee.setId(id);
-        jkxlDetailFee.setWbsCode(wbsCode);
-        jkxlDetailFee.setTotalFee(totalFee);
-        overheadLineService.updataDate(jkxlDetailFee);
-        
+
       }
       //更新未识别费用表
       JkxlAdjustFee jkxlAdjustFee = new JkxlAdjustFee();
@@ -692,6 +702,21 @@ public class OverheadLineController extends BaseController {
     return "redirect:/a/jkxl/list?id="+id+"&type="+itemType;
   }
 
+  private JkxlDetailFee getParent(JkxlDetailFee jkxlDetailFee,List<JkxlDetailFee> list,List<JkxlDetailFee> list1){
+    if(jkxlDetailFee.getParentNode().equals("-1")){
+      return jkxlDetailFee;
+    }
+    JkxlDetailFee jkxlDetailFee1 = null;
+    for(JkxlDetailFee jkxlDetailFee2:list){
+      if(jkxlDetailFee2.getWbsCode().equals(jkxlDetailFee.getParentNode())){
+        jkxlDetailFee1 = jkxlDetailFee2;
+        list1.add(jkxlDetailFee1);
+        break;
+      }
+    }
+    return getParent(jkxlDetailFee1,list,list1);
+  }
+