xs 5 gadi atpakaļ
vecāks
revīzija
1c8edcc9a5

+ 10 - 0
src/main/java/com/jeeplus/modules/sg/overheadline/entity/Settlement.java

@@ -6,6 +6,7 @@ public class Settlement {
     private Double money;//金额
     private String remarks;//备注
     private String status;//数据核对 0-核对一致 1-核对不一致
+    private String theAmount;//比对金额:json
     private String reason;//原因
 
     public String getId() {
@@ -48,6 +49,14 @@ public class Settlement {
         this.status = status;
     }
 
+    public String getTheAmount() {
+        return theAmount;
+    }
+
+    public void setTheAmount(String theAmount) {
+        this.theAmount = theAmount;
+    }
+
     public String getReason() {
         return reason;
     }
@@ -64,6 +73,7 @@ public class Settlement {
                 ", money=" + money +
                 ", remarks='" + remarks + '\'' +
                 ", status='" + status + '\'' +
+                ", theAmount='" + theAmount + '\'' +
                 ", reason='" + reason + '\'' +
                 '}';
     }

+ 11 - 0
src/main/java/com/jeeplus/modules/sg/overheadline/entity/SettlementCount.java

@@ -0,0 +1,11 @@
+package com.jeeplus.modules.sg.overheadline.entity;
+
+public class SettlementCount {
+    private String fbfx;
+    private String cbrcg;
+    private String csf;
+    private String qt;
+    private String gf;
+    private String sj;
+
+}

+ 3 - 3
src/main/java/com/jeeplus/modules/sg/overheadline/mapper/xml/SettlementMapper.xml

@@ -8,14 +8,14 @@
 				 sett_money,
 				 sett_remarks,
 				 sett_status,
-				 sett_reason
+				 sett_amount
 				) values (
 				 #{id},
 				 #{entryName},
 				 #{money},
 				 #{remarks},
 				 #{status},
-				 #{reason}
+				 #{theAmount}
 				)
 	</insert>
 
@@ -26,7 +26,7 @@
 		  sett_money as money,
 		  sett_remarks as remarks,
 		  sett_status as status,
-		  sett_reason as reason
+		  sett_amount as theAmount
 		  from
 		  sg_sett_count
 		  where id=#{id}

+ 80 - 1
src/main/java/com/jeeplus/modules/sg/overheadline/service/SettlementService.java

@@ -5,6 +5,7 @@ import com.jeeplus.common.utils.sg.ExcelUtil;
 import com.jeeplus.modules.sg.overheadline.entity.Settlement;
 import com.jeeplus.modules.sg.overheadline.mapper.SettlementMapper;
 import com.jeeplus.modules.sg.overheadline.util.BashInfo;
+import com.jeeplus.modules.sg.overheadline.util.SettementUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -31,7 +32,85 @@ public class SettlementService {
         查找结算工程表
      */
     public List<Settlement> selectSettlementService(String id){
-        return settlementMapper.selectSettlement(id);
+        List<Settlement> settlementList =  settlementMapper.selectSettlement(id);
+        Double money;
+        String theAmout;
+        String[] amout;
+        String status;
+        String reason;
+        for(Settlement settlement:settlementList){
+            money=0.0;
+            reason="";
+            String key = settlement.getEntryName();
+            switch (key){
+                case BashInfo.JS_FBFX:
+                   money = settlement.getMoney();
+                   theAmout =  settlement.getTheAmount();
+                   amout = theAmout.split(",");
+                   status = settlement.getStatus();
+                   reason = SettementUtil.RESON_FBFX1.replaceAll("xxx",String.valueOf(money)).replace("yyy",amout[0]);
+                   settlement.setReason(reason);
+                    break;
+                case  BashInfo.JS_CBRF:
+                    money = settlement.getMoney();
+                    theAmout =  settlement.getTheAmount();
+                    reason = SettementUtil.RESON_CBRF.replaceAll("xxx",String.valueOf(money)).replace("yyy",theAmout);
+                    settlement.setReason(reason);
+                    break;
+                case BashInfo.JS_CSXM:
+                    money = settlement.getMoney();
+                    theAmout =  settlement.getTheAmount();
+                    reason = SettementUtil.RESON_CSXM.replaceAll("xxx",String.valueOf(money)).replace("yyy",theAmout).replace("zzz","0.0").replace("ddd",String.valueOf(money));
+                    settlement.setReason(reason);
+                    break;
+                case BashInfo.JS_QTXM:
+                    money = settlement.getMoney();
+                    theAmout =  settlement.getTheAmount();
+                    reason = SettementUtil.RESON_QTXM.replaceAll("xxx",String.valueOf(money)).replace("yyy",theAmout);
+                    settlement.setReason(reason);
+                    break;
+                case BashInfo.JS_GF:
+                    money = settlement.getMoney();
+                    theAmout =  settlement.getTheAmount();
+                    reason = SettementUtil.RESON_GF.replaceAll("xxx",String.valueOf(money)).replace("yyy",theAmout);
+                    settlement.setReason(reason);
+                    break;
+                case BashInfo.JS_SJ:
+                    reason = SettementUtil.RESON_SJ;
+                    settlement.setReason(reason);
+                    break;
+                case BashInfo.JS_FBRF:
+                    money = settlement.getMoney();
+                    theAmout =  settlement.getTheAmount();
+                    reason = SettementUtil.RESON_FBRF.replaceAll("xxx",String.valueOf(money)).replace("yyy",theAmout);
+                    settlement.setReason(reason);
+                    break;
+                case BashInfo.JS_JGJS:
+                    money = settlement.getMoney();
+                    theAmout =  settlement.getTheAmount();
+                    amout = theAmout.split(",");
+                    reason = SettementUtil.RESON_JGJS.replace("xxx",String.valueOf(money)).replace("yyy",amout[0]).replace("zzz",amout[1]).replace("qqq",amout[2]).replace("www",amout[3]).replace("nnn",amout[4]).replace("eee",amout[5]).replace("rrr",amout[6]).replace("ttt",amout[7]);
+                    settlement.setReason(reason);
+                    break;
+                case BashInfo.JS_BZZS:
+                    reason = SettementUtil.RESON_BZZS;
+                    settlement.setReason(reason);
+                    break;
+                case BashInfo.JS_KJJG:
+                    reason = SettementUtil.RESON_KJJG;
+                    settlement.setReason(reason);
+                    break;
+                case BashInfo.GCJS:
+                    money = settlement.getMoney();
+                    theAmout =  settlement.getTheAmount();
+                    amout=theAmout.split(",");
+                    reason = SettementUtil.RESON_GCJS.replace("xxx",String.valueOf(money)).replace("yyy",amout[0]).replace("zzz",amout[1]).replace("www",amout[2]).replace("ddd",amout[3]);
+                    settlement.setReason(reason);
+                    break;
+            }
+        }
+
+        return settlementList;
     }
 
     public void delete(String id){

+ 49 - 29
src/main/java/com/jeeplus/modules/sg/overheadline/util/BashInfo.java

@@ -293,24 +293,36 @@ public class BashInfo {
     /**
      * 结算汇总数据校验
      * @param builtMap 工程竣工结算Map集合
-     * @param builtTotal
-     * @param divisiontotal
-     * @param wordtotal
-     * @param otherTotal
-     * @param feescount
+     * @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="";
+        String key="";//汇总表中的值
+
+        String fbfx="";
+        String cbrcg="";
+        String csf="";
+        String qt="";
+        String gf="";
+        String sj="";
+        String jgjs="";
+        String bzz="";
+        String kj="";
+
         double fbr = 0.0;//发包人金额
-        double count=0.0;//1+2+3+4+5+6
+        double count=0.0;//1+2+3+4+5+6-7
         double countProtect=0.0;//竣工结算+不增值税
         double creatProtect=0.0;//工程结算数据
         String status="1";//状态 默认值 0
+        String theAmount ="";
         Settlement  settlement;
-        String reason = BashInfo.JS_REASON;
+//        String reason = BashInfo.JS_REASON;
         for (Map.Entry<String,Object[]> map:builtMap.entrySet()){
             key = map.getKey();
             Object[] val = map.getValue();
@@ -320,79 +332,87 @@ public class BashInfo {
                 case BashInfo.JS_FBFX:
                     if(money==builtTotal&&money==divisiontotal[0]){
                         status="0";
-                    }else {
-                        reason = BashInfo.RESON_FBFX;
+                    }else if(money!=divisiontotal[0]&&money==builtTotal){
+                        status="1";
+                    }else if(money!=builtTotal&&money!=divisiontotal[0]){
+                        status="2";
                     }
+                    fbfx=String.valueOf(money);
+                    theAmount=String.valueOf(builtTotal)+","+String.valueOf(divisiontotal[0]);
                     count+=money;
                     break;
                 case  BashInfo.JS_CBRF:
                     if(money==divisiontotal[1]){
                         status="0";
-                    }else {
-                        reason = BashInfo.RESON_CBRF;
                     }
+                    cbrcg=String.valueOf(money);
+                    theAmount=String.valueOf(divisiontotal[1]);
                     count+=money;
                     break;
                 case BashInfo.JS_CSXM:
                     if(money==wordtotal){
                         status="0";
-                    }else {
-                        reason = BashInfo.RESON_CSXM;
                     }
+                    csf=String.valueOf(money);
+                    theAmount=String.valueOf(wordtotal);
                     count+=money;
                     break;
                 case BashInfo.JS_QTXM:
                     if(money==otherTotal){
                         status="0";
-                    }else {
-                        reason = BashInfo.RESON_QTXM;
                     }
+                    qt=String.valueOf(money);
+                    theAmount=String.valueOf(otherTotal);
                     count+=money;
                     break;
                 case BashInfo.JS_GF:
                     if(money==feescount){
                         status="0";
-                    }else {
-                        reason = BashInfo.RESON_GF;
                     }
+                    gf=String.valueOf(money);
+                    theAmount=String.valueOf(feescount);
                     count+=money;
                     break;
                 case BashInfo.JS_SJ:
-                    status="0";
+                    status="3";
                     count+=money;
+                    sj=String.valueOf(money);
+                    theAmount=String.valueOf(money);
                     break;
                 case BashInfo.JS_FBRF:
                     if(money==divisiontotal[2]){
                         status="0";
-                    }else {
-                        reason = BashInfo.RESON_FBRF;
                     }
+                    theAmount=String.valueOf(divisiontotal[2]);
                     fbr=money;
                     break;
                 case BashInfo.JS_JGJS:
                     double totalcount = count-fbr;
                     if(money==totalcount){
                         status="0";
-                    }else {
-                        reason = BashInfo.RESON_JGJS;
                     }
+                    jgjs=String.valueOf(money);
+                    theAmount=fbfx+","+cbrcg+","+csf+","+qt+","+gf+","+sj+","+String.valueOf(fbr)+","+String.valueOf(totalcount);
                     countProtect+=money;
                     break;
                 case BashInfo.JS_BZZS:
-                    status="0";
+                    status="3";
+                    bzz=String.valueOf(money);
+                    theAmount=String.valueOf(money);
                     countProtect+=money;
                     break;
                 case BashInfo.JS_KJJG:
-                    status="0";
+                    status="3";
+                    kj=String.valueOf(money);
+                    theAmount=String.valueOf(money);
                     creatProtect=money;
                     break;
                 case BashInfo.GCJS:
                     double reduce = countProtect-creatProtect;
                     if (money==reduce){
                         status="0";
-                    }else {
-                        reason = BashInfo.RESON_GCJS;
                     }
+                    theAmount=jgjs+","+bzz+","+kj+","+String.valueOf(reduce);
                     break;
             }
             settlement = new Settlement();
@@ -401,10 +421,10 @@ public class BashInfo {
             settlement.setMoney(money);
             settlement.setStatus(status);
             settlement.setRemarks(remarks);
-            settlement.setReason(reason);
+            settlement.setTheAmount(theAmount);
             list.add(settlement);
             status="1";
-            reason = BashInfo.JS_REASON;
+            theAmount="";
         }
         return list;
     }

+ 16 - 0
src/main/java/com/jeeplus/modules/sg/overheadline/util/SettementUtil.java

@@ -0,0 +1,16 @@
+package com.jeeplus.modules.sg.overheadline.util;
+
+public class SettementUtil {
+    public static final String RESON_FBFX1="《工程项目竣工结算汇总表》中'分部分项金额'为xxx元,《架空线路工程费用汇总表》中分部分项汇总金额为yyy元。";
+    public static final String RESON_FBFX2="《架空线路工程费用汇总表》中'分部分项金额'为xxx元,《分布分项工程量清单计价表》中分部分项汇总金额为yyy元。";
+    public static final String RESON_CBRF="《工程项目竣工结算汇总表》中'承包人采购设备费'为xxx元,《分布分项工程量清单计价表》中'架空线路'合价承包人采购金额为yyy元。";
+    public static final String RESON_CSXM="《工程项目竣工结算汇总表》中'措施项目费'为xxx元,《措施项目清单计价表(一)》的'合计金额'为yyy元,《措施项目清单计价表(二)》的'合计金额为zzz元,措施费总合计金额为www元。";
+    public static final String RESON_QTXM="《工程项目竣工结算汇总表》中'其他项目费'为xxx元,《其他项目清单计价表》中'合计金额'为yyy元。";
+    public static final String RESON_GF="《工程项目竣工结算汇总表》中'规费'为xxx元,《规费项目清单计价表》中'合计金额'为yyy元。";
+    public static final String RESON_SJ="《工程项目竣工结算汇总表》中税金 (税率: 9%)";
+    public static final String RESON_FBRF="《工程项目竣工结算汇总表》中'发包人采购材料费'为xxx元,《分布分项工程量清单计价表》中'发包人采购汇总金额'为yyy元。";
+    public static final String RESON_JGJS="《工程项目竣工结算汇总表》中'竣工结算价合计金额'为xxx元,分部分项工程费为yyy元,承包人采购设备费为zzz元,措施项目费为qqq元,其他项目费为www元,规费为nnn元,税金为eee元,发包人材料费为rrr元,汇总金额为ttt元。";
+    public static final String RESON_BZZS="补增值税税率调整差额";
+    public static final String RESON_KJJG="扣减甲供材超供材料费";
+    public static final String RESON_GCJS="《工程项目竣工结算汇总表》中'工程结算价'为xxx元,竣工结算家合计为yyy元,补增值税税率调整差额为zzz元,扣减甲供材超供材料费为www元,汇总金额为ddd元。";
+}

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

@@ -58,17 +58,17 @@ public class OverheadLineController extends BaseController {
     String projectId = request.getParameter("projectId");    //工程ID
     String type = request.getParameter("type");     //工程类型
     String id = getId();
-    try {
+//    try {
       //保存数据到数据库
       overheadLineService.save(file,projectName,id,projectId);
-    } catch (RuntimeException e) {
-      addMessage(redirectAttributes, "导入失败,"+e.getMessage());
-      return "redirect:/a/project/list";
-    }   catch (Exception e){
-      addMessage(redirectAttributes, "导入失败");
-      return "redirect:/a/project/list";
-    }
-    addMessage(redirectAttributes, "导入成功");
+//    } 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;
   }
 

+ 11 - 5
src/main/webapp/webpage/modules/sg/free/wbslist.jsp

@@ -262,7 +262,7 @@
 
         table.render({
             elem: '#xmmc'
-            ,title: '标识'
+            ,title: '标识'
             ,cols: [[
                 {field:'xmmc', width:200,title:'项目名称'}
                 ,{field:'fyje', width:178,title:'费用金额'}
@@ -379,7 +379,7 @@
                 ,{field:'setname',title:'项目或费用名称'}
                 ,{field:'setmoney',title:'金额'}
                 ,{field:'settext', title:'备注'}
-                ,{field:'op',align:'center',title:"操作", templet:function(d){
+                ,{field:'op',align:'center',title:"数据核验", templet:function(d){
                         ////对操作进行初始化
                         var xml = "";
                         if(d.status=="1")
@@ -408,13 +408,19 @@
         //监听行工具事件
         table.on('tool(settle)', function(obj){
             var data = obj.data;
+            var status = data.status;
+            if(status=="0"){
+                var xml="<span style='color: green'>&nbsp;一致。</span>";
+            }else {
+                var xml="<span style='color: red'>&nbsp;不一致。</span>";
+            }
             if(obj.event === 'byz'){
                 layer.open({
                     type: 1,
-                    title:data.entryName,
+                    title:data.setname,
                     // skin: 'layui-layer-rim',
-                    area: ['505', '50%'],
-                    content: data.reason
+                    area: ['50%', '70%'],
+                    content: "<div style='padding: 10px'>"+data.reason+"金额"+xml+"</div>"
                 });
             }
         });

+ 1 - 1
src/main/webapp/webpage/modules/sg/project/management.jsp

@@ -271,7 +271,7 @@
                     layer.open({
                         type: 2,
                         title: '添加工程',
-                        area: ['70%', '90%'],
+                        area: ['50%', '90%'],
                         shade: 0.8,
                         shadeClose: true,
                         content: '${ctxp}/webpage/modules/sg/project/addItemForm.jsp'