蔡德晨 5 tahun lalu
induk
melakukan
0c22de0773

+ 9 - 0
src/main/java/com/jeeplus/modules/sg/overheadline/entity/DdtzData.java

@@ -6,6 +6,7 @@ public class DdtzData {
     private String fee;  //费用
     private String wbsys;  //调整费用类型
     private String bl;   //比例
+    private String parentNode; //父节点
 
 
     public String getBl() {
@@ -47,4 +48,12 @@ public class DdtzData {
     public void setWbsys(String wbsys) {
         this.wbsys = wbsys;
     }
+
+    public String getParentNode() {
+        return parentNode;
+    }
+
+    public void setParentNode(String parentNode) {
+        this.parentNode = parentNode;
+    }
 }

+ 1 - 0
src/main/java/com/jeeplus/modules/sg/overheadline/mapper/xml/OverheadLineMapper.xml

@@ -114,6 +114,7 @@
 	<select id="getAdjust" parameterType="String" resultType="com.jeeplus.modules.sg.overheadline.entity.JkxlDetailFee">
 		select
 		a.simple_describe as 'describe',
+		a.parent_node as parentNode,
 		a.short_id as wbsCode
 		FROM sg_wbs_elements a LEFT JOIN sg_fee_detail_jkxl b on a.short_id = b.wbs_code
 		<where>

+ 2 - 0
src/main/java/com/jeeplus/modules/sg/overheadline/util/BashInfo.java

@@ -128,6 +128,8 @@ public class BashInfo {
     public static final String JS_KJJG="扣减甲供材超供材料费";
     public static final String JS_GCJS="工程结算价";
 
+    public static final String INVALIDFORMAT = "文件格式错误";
+
 
 
     //架空线路主体模块WBSID

+ 43 - 0
src/main/java/com/jeeplus/modules/sg/overheadline/web/OverheadLineController.java

@@ -638,6 +638,49 @@ public class OverheadLineController extends BaseController {
     return "redirect:/a/jkxl/list?id="+id+"&type="+itemType;
   }
 
+  /**
+   * 变电站单独调整
+   */
+  @RequestMapping("/bddtz")
+  public String bddtz(FtData ftData, Model model, RedirectAttributes redirectAttributes){
+    String id = ftData.getId();
+    String itemType = ftData.getItemType();
+    String state  = ftData.getState();  // 1:增加 2:减少
+    String data1 = ftData.getTableData();   //表格数据JOSN字符串
+    String row = data1.replaceAll("&quot;","\\\"");
+    //将JSON字符串转为list
+    List<DdtzData> ts = (List<DdtzData>) JSONArray.parseArray(row, DdtzData.class);
+    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 jkxlDetailFee = new JkxlDetailFee();
+        jkxlDetailFee.setId(id);
+        jkxlDetailFee.setWbsCode(wbsCode);
+        jkxlDetailFee.setTotalFee(totalFee);
+        overheadLineService.updataDate(jkxlDetailFee);
+      }
+      //更新未识别费用表
+      JkxlAdjustFee jkxlAdjustFee = new JkxlAdjustFee();
+      jkxlAdjustFee.setType(ftData.getType());
+      jkxlAdjustFee.setId(id);
+      feeAdjustService.updateFee(jkxlAdjustFee);
+
+    }catch (Exception e){
+      addMessage(redirectAttributes, "调整失败");
+    }
+    addMessage(redirectAttributes, "调整成功");
+    return "redirect:/a/jkxl/list?id="+id+"&type="+itemType;
+  }
+
 
 
 

+ 23 - 3
src/main/java/com/jeeplus/modules/sg/project/service/ProjectService.java

@@ -14,6 +14,7 @@ import com.jeeplus.modules.sg.project.entity.WbsSelection;
 import com.jeeplus.modules.sg.project.mapper.ItemMapper;
 import com.jeeplus.modules.sg.project.mapper.ProjectMapper;
 import com.jeeplus.modules.sg.substation.service.SubstationService;
+import com.jeeplus.modules.sg.substation.util.SubstationInfo;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@@ -48,10 +49,29 @@ public class ProjectService extends CrudService<ProjectMapper, WbsProject> {
         return wbsProject;
     }
 
-    public void save(MultipartFile file ,WbsItem wbsItem) throws IOException, InvalidFormatException {
+    @Transactional(readOnly = false)
+    public String save(MultipartFile file ,WbsItem wbsItem) throws IOException, InvalidFormatException {
         ImportExcel jk = new ImportExcel(file,1,new String[]{BashInfo.SHEET_GCHZ,BashInfo.SHEET_GCHZ1},false); //架空汇总
-        ImportExcel dljz = new ImportExcel(file, 1, BashInfo.SHEET_JZHZB,true);   //电缆线路建筑工程费用汇总表
-        ImportExcel dlaz = new ImportExcel(file, 1, BashInfo.SHEET_HZHZB,true);   //电缆线路安装工程费用汇总表
+        if(ImportExcel.getSheet(jk) != null){
+            wbsItem.setType("1");
+            overheadLineService.saveJk(file,wbsItem);
+            return "1";
+        }
+        ImportExcel dljz = new ImportExcel(file, 1, BashInfo.SHEET_JZHZB,false);   //电缆线路建筑工程费用汇总表
+        ImportExcel dlaz = new ImportExcel(file, 1, BashInfo.SHEET_HZHZB,false);   //电缆线路安装工程费用汇总表
+        if(ImportExcel.getSheet(dlaz) != null || ImportExcel.getSheet(dljz) != null){
+            wbsItem.setType("2");
+            overheadLineService.saveDl(file,wbsItem);
+            return "2";
+        }
+        ImportExcel bdjz = new ImportExcel(file, 1, SubstationInfo.SHEET_JZHZB,false);   //变电站建筑工程费用汇总表
+        ImportExcel bdaz = new ImportExcel(file, 1, SubstationInfo.SHEET_HZHZB,false);   //变电站安装工程费用汇总表
+        if(ImportExcel.getSheet(bdjz) != null || ImportExcel.getSheet(bdaz) != null){
+            wbsItem.setType("3");
+            substationService.save(file,wbsItem);
+            return "3";
+        }
+        return BashInfo.INVALIDFORMAT;
     }
 
 

+ 26 - 20
src/main/java/com/jeeplus/modules/sg/project/web/ProjectController.java

@@ -8,6 +8,7 @@ import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.sg.overheadline.entity.JkxlDetailFee;
 import com.jeeplus.modules.sg.overheadline.entity.Settlement;
 import com.jeeplus.modules.sg.overheadline.service.OverheadLineService;
+import com.jeeplus.modules.sg.overheadline.util.BashInfo;
 import com.jeeplus.modules.sg.project.entity.WbsItem;
 import com.jeeplus.modules.sg.project.entity.WbsProject;
 import com.jeeplus.modules.sg.project.entity.WbsSelection;
@@ -94,29 +95,34 @@ public class ProjectController extends BaseController {
      */
     @RequestMapping("/import")
     public String importFile(MultipartFile file,WbsItem wbsItem, RedirectAttributes redirectAttributes, HttpServletRequest request, Model model) throws IOException, InvalidFormatException {
-        String type = wbsItem.getType();   //项目类型
+//        String type = wbsItem.getType();   //项目类型
         String id = getId();
         wbsItem.setId(id);
-//        try {
+        try {
 //            保存数据到数据库
-            if(type.equals("1")) {
-                overheadLineService.saveJk(file,wbsItem);
-            }
-            if (type.equals("2")) {
-                overheadLineService.saveDl(file,wbsItem);
-            }
-            if (type.equals("3")) {
-                substationService.save(file,wbsItem);
-            }
-//        } catch (RuntimeException e) {
-//            addMessage(redirectAttributes, "导入失败,"+e.getMessage());
-//            return "redirect:/a/project/list";
-//        }   catch (Exception e){
-//            addMessage(redirectAttributes, "导入失败");
-//            return "redirect:/a/project/list";
-//        }
-        addMessage(redirectAttributes, "导入成功");
-        return "redirect:/a/jkxl/list?id="+id+"&type="+type;
+//            if(type.equals("1")) {
+//                overheadLineService.saveJk(file,wbsItem);
+//            }
+//            if (type.equals("2")) {
+//                overheadLineService.saveDl(file,wbsItem);
+//            }
+//            if (type.equals("3")) {
+//                substationService.save(file,wbsItem);
+//            }
+             String str = projectService.save(file,wbsItem);
+             if(str.equals(BashInfo.INVALIDFORMAT)){
+                 throw new RuntimeException(str);
+             }
+             addMessage(redirectAttributes, "导入成功");
+             return "redirect:/a/jkxl/list?id="+id+"&type="+str;
+        } catch (RuntimeException e) {
+            addMessage(redirectAttributes, "导入失败,"+e.getMessage());
+            return "redirect:/a/project/list";
+        }   catch (Exception e){
+            addMessage(redirectAttributes, "导入失败");
+            return "redirect:/a/project/list";
+        }
+//        return "redirect:/a/jkxl/list?id="+id;
     }
 
     //导出

+ 38 - 25
src/main/java/com/jeeplus/modules/sg/project/web/ProjectTemController.java

@@ -4,6 +4,7 @@ import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.core.web.BaseController;
 import com.jeeplus.modules.sg.overheadline.service.OverheadLineService;
+import com.jeeplus.modules.sg.overheadline.util.BashInfo;
 import com.jeeplus.modules.sg.project.entity.WbsItem;
 import com.jeeplus.modules.sg.project.entity.WbsProject;
 import com.jeeplus.modules.sg.project.entity.WbsSelection;
@@ -90,20 +91,26 @@ public class ProjectTemController extends BaseController {
                     }
                 }
 //            保存数据到数据库
-                if (itemTypes[i].equals("1")) {
-                    String id = getId();
-                    wbsItem.setId(id);
-                    overheadLineService.saveJk(file[i],wbsItem);
-                }
-                if (itemTypes[i].equals("2")) {
-                    String id = getId();
-                    wbsItem.setId(id);
-                    overheadLineService.saveDl(file[i],wbsItem);
-                }
-                if (itemTypes[i].equals("3")) {
-                    String id = getId();
-                    wbsItem.setId(id);
-                    substationService.save(file[i],wbsItem);
+//                if (itemTypes[i].equals("1")) {
+//                    String id = getId();
+//                    wbsItem.setId(id);
+//                    overheadLineService.saveJk(file[i],wbsItem);
+//                }
+//                if (itemTypes[i].equals("2")) {
+//                    String id = getId();
+//                    wbsItem.setId(id);
+//                    overheadLineService.saveDl(file[i],wbsItem);
+//                }
+//                if (itemTypes[i].equals("3")) {
+//                    String id = getId();
+//                    wbsItem.setId(id);
+//                    substationService.save(file[i],wbsItem);
+//                }
+                String id = getId();
+                wbsItem.setId(id);
+                String str = projectService.save(file[i],wbsItem);
+                if(str.equals(BashInfo.INVALIDFORMAT)){
+                    throw new RuntimeException(str);
                 }
             }
         } catch (RuntimeException e) {
@@ -129,21 +136,27 @@ public class ProjectTemController extends BaseController {
      */
     @RequestMapping("/importfile")
     public String importFile(MultipartFile file,WbsItem wbsItem, RedirectAttributes redirectAttributes, HttpServletRequest request, Model model) {
-        String type = wbsItem.getType();   //项目类型
+//        String type = wbsItem.getType();   //项目类型
         String projectId = wbsItem.getProjectId();
         String id = getId();
         wbsItem.setId(id);
         try {
 //            保存数据到数据库
-            if(type.equals("1")) {
-                overheadLineService.saveJk(file, wbsItem);
-            }
-            if (type.equals("2")) {
-                overheadLineService.saveDl(file, wbsItem);
-            }
-            if (type.equals("3")) {
-                substationService.save(file, wbsItem);
+//            if(type.equals("1")) {
+//                overheadLineService.saveJk(file, wbsItem);
+//            }
+//            if (type.equals("2")) {
+//                overheadLineService.saveDl(file, wbsItem);
+//            }
+//            if (type.equals("3")) {
+//                substationService.save(file, wbsItem);
+//            }
+            String str = projectService.save(file,wbsItem);
+            if(str.equals(BashInfo.INVALIDFORMAT)){
+                throw new RuntimeException(str);
             }
+            addMessage(redirectAttributes, "导入成功");
+            return "redirect:/a/jkxl/list?id="+id+"&type="+str+"&projectId="+projectId;
         } catch (RuntimeException e) {
             addMessage(redirectAttributes, "导入失败,"+e.getMessage());
             return "redirect:/a/project/tem/list?projectId="+projectId;
@@ -151,8 +164,8 @@ public class ProjectTemController extends BaseController {
             addMessage(redirectAttributes, "导入失败");
             return "redirect:/a/project/tem/list?projectId="+projectId;
         }
-        addMessage(redirectAttributes, "导入成功");
-        return "redirect:/a/jkxl/list?id="+id+"&type="+type+"&projectId="+projectId;
+//        addMessage(redirectAttributes, "导入成功");
+//        return "redirect:/a/jkxl/list?id="+id+"&type="+type+"&projectId="+projectId;
     }