xs před 5 roky
rodič
revize
dd84988bf9

+ 11 - 2
src/main/java/com/jeeplus/modules/sg/overheadline/service/OverheadLineService.java

@@ -4,6 +4,7 @@ import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.utils.sg.ExcelUtil;
 import com.jeeplus.modules.sg.overheadline.entity.JkxlAdjustFee;
 import com.jeeplus.modules.sg.overheadline.entity.JkxlDetailFee;
+import com.jeeplus.modules.sg.overheadline.entity.Settlement;
 import com.jeeplus.modules.sg.overheadline.entity.WbsProject;
 import com.jeeplus.modules.sg.overheadline.mapper.OverheadLineMapper;
 import com.jeeplus.modules.sg.overheadline.util.BashInfo;
@@ -99,9 +100,17 @@ public class OverheadLineService {
        ImportExcel qt = new ImportExcel(file,1,BashInfo.SHEET_QTFY);  //其他项目清单计价表
        ImportExcel total = new ImportExcel(file,1,BashInfo.SHEET_HZB );  //工程项目竣工结算汇总表
        ImportExcel gzhz = new ImportExcel(file,1,BashInfo.SHEET_GCHZ );   //架空线路工程费用汇总表
+       //数据核验数据
+       Map<String,Object[]> builtMap = BashInfo.getCompletionWorks(total);//获取工程项目竣工所有数据
+       double builtTotal = ExcelUtil.getDouble(gzhz,BashInfo.QT_HJ,0,2);//获取架空线路工程费用汇总表 分部分项 合计
+       double wordtotal =  ExcelUtil.getDouble(csqd,BashInfo.QT_HJ,0,4);//获取措施费清单计价表
+       double otherTotal =  ExcelUtil.getDouble(qt,BashInfo.QT_HJ,0,2);//获取其他项目费合计
+       int[] comlumn2 = {12,14,15};//定义所要数组
+       double[] divisiontotal=ExcelUtil.getDoubleArray(importExcel,BashInfo.PROJECTNAME,2,comlumn2);//获取分部分项比对数据清单
+       double feescount =  ExcelUtil.getDouble(gf,BashInfo.QT_HJ,0,4);//获取规费合计
        //数据核验并保存数据库
-       settlementService.save(file,id);
-       //获取补增值税税率调整差额和扣减甲供材超供材料费
+       settlementService.save(builtMap,builtTotal,divisiontotal,wordtotal,otherTotal,feescount,id);
+//       //获取补增值税税率调整差额和扣减甲供材超供材料费
        double[] wsbFees = ExcelUtil.getDoubleArray(total, new String[]{BashInfo.BZZSSL,BashInfo.KJJGCC},1,2);
        double[] originalTotalFees = ExcelUtil.getDoubleArray(gzhz,BashInfo.HZ_ALL,1,2); //获取合计费
        double[] zjgcFees = ExcelUtil.getDoubleArray(gzhz,BashInfo.HZ_ALL,1,3);  //获取直接工程费

+ 4 - 237
src/main/java/com/jeeplus/modules/sg/overheadline/service/SettlementService.java

@@ -21,14 +21,10 @@ public class SettlementService {
         添加结算工程表
      */
     @Transactional
-    public void save(MultipartFile file,String id){
-        try {
-            List<Settlement> settlementList = getSettlement(file,id);
-            for (Settlement settlement:settlementList){
-                settlementMapper.sava(settlement);
-            }
-        }catch (Exception c){
-            c.printStackTrace();
+    public void save(Map<String,Object[]> builtMap, double builtTotal, double[] divisiontotal, double wordtotal, double otherTotal, double feescount, String id){
+        List<Settlement> settlementList = BashInfo.getTotality(builtMap,builtTotal,divisiontotal,wordtotal,otherTotal,feescount,id);
+        for (Settlement settlement:settlementList){
+            settlementMapper.sava(settlement);
         }
     }
     /*
@@ -37,233 +33,4 @@ public class SettlementService {
     public List<Settlement> selectSettlementService(String id){
         return settlementMapper.selectSettlement(id);
     }
-
-    /*
-     获取结算数据
-    */
-    public List<Settlement> getSettlement(MultipartFile file, String id) throws  Exception{
-        ImportExcel completion = new ImportExcel(file,1, BashInfo.SHEET_HZB);//工程项目竣工结算汇总表
-        ImportExcel built = new ImportExcel(file,1,BashInfo.SHEET_GCHZ);//架空线路工程汇总表
-        ImportExcel division = new ImportExcel(file,1,BashInfo.SHEET_FBFXJJ);//分部分项工程量清单计价表
-        ImportExcel wordFirst = new ImportExcel(file,1,BashInfo.SHEET_CSB);//措施项目清单计价表(一)
-        ImportExcel otherProject = new ImportExcel(file,1,BashInfo.SHEET_QTFY);//其他项目清单计价表
-        ImportExcel feesProject  = new ImportExcel(file,1,BashInfo.SHEET_GFQD);//规费项目清单计价表
-        Map<String,Object[]> builtMap = getCompletionWorks(completion);
-        double builtTotal = ExcelUtil.getDouble(built,BashInfo.QT_HJ,0,2);//获取架空线路工程费用汇总表 分部分项 合计
-
-        double wordtotal =  ExcelUtil.getDouble(wordFirst,BashInfo.QT_HJ,0,4);//获取措施费清单计价表
-
-        double otherTotal =  ExcelUtil.getDouble(otherProject,BashInfo.QT_HJ,0,2);//获取其他项目费合计
-        int[] comlumn2 = {12,14,15};
-        double[] divisiontotal=ExcelUtil.getDoubleArray(division,BashInfo.PROJECTNAME,2,comlumn2);//获取分工清单
-        double feescount =  ExcelUtil.getDouble(feesProject,BashInfo.QT_HJ,0,4);//获取规费合计
-        return getTotality(builtMap,builtTotal,divisiontotal,wordtotal,otherTotal,feescount,id);
-    }
-    /*
-      获取《工程项目竣工结算汇总表》匹配数据
-     */
-    public Map<String,Object[]> getCompletionWorks(ImportExcel importExcel){
-        Map<String,Object[]> map  = new LinkedHashMap<String, Object[]>();
-        int lastDataRowNum =  importExcel.getLastDataRowNum();
-        String key="";
-        double val=0.0;
-        String text = "";
-        Object[] objects;
-        for (int i = 2; i < lastDataRowNum; i++) {
-            objects = new Object[2];
-            key =  importExcel.getValue(i+1,1);
-            if(key.contains(BashInfo.JS_SJ)){
-                key=BashInfo.JS_SJ;
-            }
-            switch (key){
-                case BashInfo.JS_FBFX:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case BashInfo.JS_CBRF:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case BashInfo.JS_CSXM:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case BashInfo.JS_QTXM:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case BashInfo.JS_GF:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case BashInfo.JS_SJ:
-
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case BashInfo.JS_FBRF:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case BashInfo.JS_JGJS:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case BashInfo.JS_BZZS:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case BashInfo.JS_KJJG:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-                case BashInfo.JS_GCJS:
-                    val = importExcel.getDouble(i+1,2);
-                    text=importExcel.getValue(i+1,3);
-                    objects[0] = val;
-                    objects[1] = text;
-                    map.put(key, objects);
-                    break;
-            }
-        }
-        return  map;
-    }
-    /*
-      结算汇总数据比对方法
-     */
-    public List<Settlement> getTotality(Map<String,Object[]> builtMap,double builtTotal,double[] divisiontotal,double wordtotal,double otherTotal,double feescount,String id){
-        List<Settlement> list = new ArrayList<Settlement>();
-        String key="";
-        double count=0.0;
-        double countProtect=0.0;
-        double creatProtect=0.0;
-        String status="1";
-        Settlement  settlement;
-        String reason = BashInfo.JS_REASON;
-        for (Map.Entry<String,Object[]> map:builtMap.entrySet()){
-            key = map.getKey();
-            Object[] val = map.getValue();
-            double money = Double.parseDouble(val[0].toString());
-            String remarks=val[1].toString();
-            switch (key){
-                case BashInfo.JS_FBFX:
-                    if(money==builtTotal&&money==divisiontotal[0]){
-                        status="0";
-                    }else {
-                        reason = BashInfo.RESON_FBFX;
-                    }
-                    count+=money;
-                    break;
-                case  BashInfo.JS_CBRF:
-                    if(money==divisiontotal[1]){
-                        status="0";
-                    }else {
-                        reason = BashInfo.RESON_CBRF;
-                    }
-                    count+=money;
-                    break;
-                case BashInfo.JS_CSXM:
-                    if(money==wordtotal){
-                        status="0";
-                    }else {
-                        reason = BashInfo.RESON_CSXM;
-                    }
-                    count+=money;
-                    break;
-                case BashInfo.JS_QTXM:
-                    if(money==otherTotal){
-                        status="0";
-                    }else {
-                        reason = BashInfo.RESON_QTXM;
-                    }
-                    count+=money;
-                    break;
-                case BashInfo.JS_GF:
-                    if(money==feescount){
-                        status="0";
-                    }else {
-                        reason = BashInfo.RESON_GF;
-                    }
-                    count+=money;
-                    break;
-                case BashInfo.JS_FBRF:
-                    if(money==divisiontotal[2]){
-                        status="0";
-                    }else {
-                        reason = BashInfo.RESON_FBRF;
-                    }
-                    count+=money;
-                    break;
-                case BashInfo.JS_SJ:
-                    status="0";
-                    count+=money;
-                    break;
-                case BashInfo.JS_JGJS:
-                    if(money==count){
-                        status="0";
-                    }else {
-                        reason = BashInfo.RESON_JGJS;
-                    }
-                    countProtect+=money;
-                    break;
-                case BashInfo.JS_BZZS:
-                    status="0";
-                    countProtect+=money;
-                    break;
-                case BashInfo.JS_KJJG:
-                    status="0";
-                    creatProtect=money;
-                    break;
-                case BashInfo.GCJS:
-                    double reduce = countProtect-creatProtect;
-                    if (money==reduce){
-                        status="0";
-                    }else {
-                        reason = BashInfo.RESON_GCJS;
-                    }
-                    break;
-            }
-            settlement = new Settlement();
-            settlement.setId(id);
-            settlement.setEntryName(key);
-            settlement.setMoney(money);
-            settlement.setStatus(status);
-            settlement.setRemarks(remarks);
-            settlement.setReason(reason);
-            list.add(settlement);
-            status="1";
-            reason = BashInfo.JS_REASON;
-        }
-        return list;
-    }
 }

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

@@ -1,6 +1,12 @@
 package com.jeeplus.modules.sg.overheadline.util;
 
 import com.jeeplus.common.utils.excel.ImportExcel;
+import com.jeeplus.modules.sg.overheadline.entity.Settlement;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
 
 public class BashInfo {
     public static final String PROJECTNAME = "架空线路";
@@ -180,5 +186,221 @@ public class BashInfo {
         return  gcjs;
 
     }
+    /*
+     获取《工程项目竣工结算汇总表》匹配数据
+    */
+    public static Map<String,Object[]> getCompletionWorks(ImportExcel importExcel){
+        Map<String,Object[]> map  = new LinkedHashMap<String, Object[]>();
+        int lastDataRowNum =  importExcel.getLastDataRowNum();
+        String key="";
+        double val=0.0;
+        String text = "";
+        Object[] objects;
+        for (int i = 2; i < lastDataRowNum; i++) {
+            objects = new Object[2];
+            key =  importExcel.getValue(i+1,1);
+            if(key.contains(BashInfo.JS_SJ)){
+                key=BashInfo.JS_SJ;
+            }
+            switch (key){
+                case BashInfo.JS_FBFX:
+                    val = importExcel.getDouble(i+1,2);
+                    text=importExcel.getValue(i+1,3);
+                    objects[0] = val;
+                    objects[1] = text;
+                    map.put(key, objects);
+                    break;
+                case BashInfo.JS_CBRF:
+                    val = importExcel.getDouble(i+1,2);
+                    text=importExcel.getValue(i+1,3);
+                    objects[0] = val;
+                    objects[1] = text;
+                    map.put(key, objects);
+                    break;
+                case BashInfo.JS_CSXM:
+                    val = importExcel.getDouble(i+1,2);
+                    text=importExcel.getValue(i+1,3);
+                    objects[0] = val;
+                    objects[1] = text;
+                    map.put(key, objects);
+                    break;
+                case BashInfo.JS_QTXM:
+                    val = importExcel.getDouble(i+1,2);
+                    text=importExcel.getValue(i+1,3);
+                    objects[0] = val;
+                    objects[1] = text;
+                    map.put(key, objects);
+                    break;
+                case BashInfo.JS_GF:
+                    val = importExcel.getDouble(i+1,2);
+                    text=importExcel.getValue(i+1,3);
+                    objects[0] = val;
+                    objects[1] = text;
+                    map.put(key, objects);
+                    break;
+                case BashInfo.JS_SJ:
+
+                    val = importExcel.getDouble(i+1,2);
+                    text=importExcel.getValue(i+1,3);
+                    objects[0] = val;
+                    objects[1] = text;
+                    map.put(key, objects);
+                    break;
+                case BashInfo.JS_FBRF:
+                    val = importExcel.getDouble(i+1,2);
+                    text=importExcel.getValue(i+1,3);
+                    objects[0] = val;
+                    objects[1] = text;
+                    map.put(key, objects);
+                    break;
+                case BashInfo.JS_JGJS:
+                    val = importExcel.getDouble(i+1,2);
+                    text=importExcel.getValue(i+1,3);
+                    objects[0] = val;
+                    objects[1] = text;
+                    map.put(key, objects);
+                    break;
+                case BashInfo.JS_BZZS:
+                    val = importExcel.getDouble(i+1,2);
+                    text=importExcel.getValue(i+1,3);
+                    objects[0] = val;
+                    objects[1] = text;
+                    map.put(key, objects);
+                    break;
+                case BashInfo.JS_KJJG:
+                    val = importExcel.getDouble(i+1,2);
+                    text=importExcel.getValue(i+1,3);
+                    objects[0] = val;
+                    objects[1] = text;
+                    map.put(key, objects);
+                    break;
+                case BashInfo.JS_GCJS:
+                    val = importExcel.getDouble(i+1,2);
+                    text=importExcel.getValue(i+1,3);
+                    objects[0] = val;
+                    objects[1] = text;
+                    map.put(key, objects);
+                    break;
+            }
+        }
+        return  map;
+    }
+
+    /**
+     * 结算汇总数据校验
+     * @param builtMap
+     * @param builtTotal
+     * @param divisiontotal
+     * @param wordtotal
+     * @param otherTotal
+     * @param feescount
+     * @param id
+     * @return
+     */
+    public static List<Settlement> getTotality(Map<String,Object[]> builtMap, double builtTotal, double[] divisiontotal, double wordtotal, double otherTotal, double feescount, String id){
+        List<Settlement> list = new ArrayList<Settlement>();
+        String key="";
+        double count=0.0;
+        double countProtect=0.0;
+        double creatProtect=0.0;
+        String status="1";
+        Settlement  settlement;
+        String reason = BashInfo.JS_REASON;
+        for (Map.Entry<String,Object[]> map:builtMap.entrySet()){
+            key = map.getKey();
+            Object[] val = map.getValue();
+            double money = Double.parseDouble(val[0].toString());
+            String remarks=val[1].toString();
+            switch (key){
+                case BashInfo.JS_FBFX:
+                    if(money==builtTotal&&money==divisiontotal[0]){
+                        status="0";
+                    }else {
+                        reason = BashInfo.RESON_FBFX;
+                    }
+                    count+=money;
+                    break;
+                case  BashInfo.JS_CBRF:
+                    if(money==divisiontotal[1]){
+                        status="0";
+                    }else {
+                        reason = BashInfo.RESON_CBRF;
+                    }
+                    count+=money;
+                    break;
+                case BashInfo.JS_CSXM:
+                    if(money==wordtotal){
+                        status="0";
+                    }else {
+                        reason = BashInfo.RESON_CSXM;
+                    }
+                    count+=money;
+                    break;
+                case BashInfo.JS_QTXM:
+                    if(money==otherTotal){
+                        status="0";
+                    }else {
+                        reason = BashInfo.RESON_QTXM;
+                    }
+                    count+=money;
+                    break;
+                case BashInfo.JS_GF:
+                    if(money==feescount){
+                        status="0";
+                    }else {
+                        reason = BashInfo.RESON_GF;
+                    }
+                    count+=money;
+                    break;
+                case BashInfo.JS_FBRF:
+                    if(money==divisiontotal[2]){
+                        status="0";
+                    }else {
+                        reason = BashInfo.RESON_FBRF;
+                    }
+                    count+=money;
+                    break;
+                case BashInfo.JS_SJ:
+                    status="0";
+                    count+=money;
+                    break;
+                case BashInfo.JS_JGJS:
+                    if(money==count){
+                        status="0";
+                    }else {
+                        reason = BashInfo.RESON_JGJS;
+                    }
+                    countProtect+=money;
+                    break;
+                case BashInfo.JS_BZZS:
+                    status="0";
+                    countProtect+=money;
+                    break;
+                case BashInfo.JS_KJJG:
+                    status="0";
+                    creatProtect=money;
+                    break;
+                case BashInfo.GCJS:
+                    double reduce = countProtect-creatProtect;
+                    if (money==reduce){
+                        status="0";
+                    }else {
+                        reason = BashInfo.RESON_GCJS;
+                    }
+                    break;
+            }
+            settlement = new Settlement();
+            settlement.setId(id);
+            settlement.setEntryName(key);
+            settlement.setMoney(money);
+            settlement.setStatus(status);
+            settlement.setRemarks(remarks);
+            settlement.setReason(reason);
+            list.add(settlement);
+            status="1";
+            reason = BashInfo.JS_REASON;
+        }
+        return list;
+    }
 
 }