|
@@ -245,11 +245,14 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
//数据核验数据
|
|
//数据核验数据
|
|
List<Settlement> settlementList = SettementUtil.getComparison(total);
|
|
List<Settlement> settlementList = SettementUtil.getComparison(total);
|
|
double builtTotal = ExcelUtil.getDouble(gzhz,BashInfo.QT_HJ,0,2);//获取架空线路工程费用汇总表 分部分项 合计
|
|
double builtTotal = ExcelUtil.getDouble(gzhz,BashInfo.QT_HJ,0,2);//获取架空线路工程费用汇总表 分部分项 合计
|
|
- double wordtotal1 = ExcelUtil.getDouble(csqd,BashInfo.QT_HJ,0,4);//获取措施费清单计价表一
|
|
|
|
|
|
+// double wordtotal1 = ExcelUtil.getDouble(csqd,BashInfo.QT_HJ,0,4);//获取措施费清单计价表一
|
|
|
|
+ double wordtotal1 = BashInfo.getJkCs(csqd);//获取措施费清单计价表一
|
|
double otherTotal = ExcelUtil.getDouble(qt,BashInfo.QT_HJ,0,2);//获取其他项目费合计
|
|
double otherTotal = ExcelUtil.getDouble(qt,BashInfo.QT_HJ,0,2);//获取其他项目费合计
|
|
double cbperson = 0.0;
|
|
double cbperson = 0.0;
|
|
double[] divisiontotal=ExcelUtil.getDoubleArray(importExcel,BashInfo.PROJECTNAME,2,new int[]{12,15});//获取分部分项比对数据清单
|
|
double[] divisiontotal=ExcelUtil.getDoubleArray(importExcel,BashInfo.PROJECTNAME,2,new int[]{12,15});//获取分部分项比对数据清单
|
|
- double feescount = ExcelUtil.getDouble(gf,BashInfo.QT_HJ,0,4);//获取规费合计
|
|
|
|
|
|
+// divisiontotal[0] = divisiontotal[0]+csxmHj;
|
|
|
|
+ double gfFees = BashInfo.getJkGf(gf); //规费
|
|
|
|
+// double feescount = ExcelUtil.getDouble(gf,BashInfo.QT_HJ,0,4);//获取规费合计
|
|
//数据核验并保存数据库
|
|
//数据核验并保存数据库
|
|
double wordtotal2 = 0.0; //措施费二合计
|
|
double wordtotal2 = 0.0; //措施费二合计
|
|
if(ImportExcel.getSheet(csqd2) != null){
|
|
if(ImportExcel.getSheet(csqd2) != null){
|
|
@@ -266,13 +269,11 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
cbperson = ExcelUtil.getDouble(cbrsb,BashInfo.QT_HJ,0,6);//承包人合计
|
|
cbperson = ExcelUtil.getDouble(cbrsb,BashInfo.QT_HJ,0,6);//承包人合计
|
|
}
|
|
}
|
|
double cbrfee = ExcelUtil.getDouble(total,BashInfo.QT_CBRSB,1,2);
|
|
double cbrfee = ExcelUtil.getDouble(total,BashInfo.QT_CBRSB,1,2);
|
|
- double csFee = ExcelUtil.getDouble(gzhz,BashInfo.HZ_CH,1,2);
|
|
|
|
double[] originalTotalFees = ExcelUtil.getDoubleArray(gzhz,BashInfo.HZ_ALL,1,2); //获取合计费
|
|
double[] originalTotalFees = ExcelUtil.getDoubleArray(gzhz,BashInfo.HZ_ALL,1,2); //获取合计费
|
|
double[] zjgcFees = ExcelUtil.getDoubleArray(gzhz,BashInfo.HZ_ALL,1,3); //获取直接工程费
|
|
double[] zjgcFees = ExcelUtil.getDoubleArray(gzhz,BashInfo.HZ_ALL,1,3); //获取直接工程费
|
|
double[][] originalFees = ExcelUtil.getDoubleArrays(importExcel,BashInfo.MX_ALL,2, new int[]{13, 14, 15, 17}); //获取原始费用
|
|
double[][] originalFees = ExcelUtil.getDoubleArrays(importExcel,BashInfo.MX_ALL,2, new int[]{13, 14, 15, 17}); //获取原始费用
|
|
double texRate = ExcelUtil.getTexRate(total); //获取税率
|
|
double texRate = ExcelUtil.getTexRate(total); //获取税率
|
|
// double rgRate = ExcelUtil.getRgRate(zyrg); //获取人工调差系数
|
|
// double rgRate = ExcelUtil.getRgRate(zyrg); //获取人工调差系数
|
|
- double totalFee = ExcelUtil.getDouble(importExcel,BashInfo.PROJECTNAME,2,12); //获取架空线路合计金额
|
|
|
|
double totalRgFee = ExcelUtil.getDouble(importExcel,BashInfo.PROJECTNAME,2,13); //获取人工费合计金额
|
|
double totalRgFee = ExcelUtil.getDouble(importExcel,BashInfo.PROJECTNAME,2,13); //获取人工费合计金额
|
|
double[] csRate = BashInfo.getCsRate(csqd); //获取措施费率
|
|
double[] csRate = BashInfo.getCsRate(csqd); //获取措施费率
|
|
// double[] gfRate = BashInfo.getGfRate(gf); //获取规费率
|
|
// double[] gfRate = BashInfo.getGfRate(gf); //获取规费率
|
|
@@ -285,15 +286,25 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
double zg = zjgcTotal-(aqwmFees[1]/(aqwmFees[0]/100));
|
|
double zg = zjgcTotal-(aqwmFees[1]/(aqwmFees[0]/100));
|
|
double jxsl = zg/(fbrFee-zg); //进项税率
|
|
double jxsl = zg/(fbrFee-zg); //进项税率
|
|
double csFees = BashInfo.getCsFee(csqd); //安装措施费
|
|
double csFees = BashInfo.getCsFee(csqd); //安装措施费
|
|
- double gfFees = ExcelUtil.getDouble(gf,BashInfo.QT_HJ,0,4); //规费
|
|
|
|
|
|
+// double gfFees = ExcelUtil.getDouble(gf,BashInfo.QT_HJ,0,4); //规费
|
|
|
|
+
|
|
//结算汇总
|
|
//结算汇总
|
|
- List<Settlement> settlements=SettementUtil.getComparison(settlementList,builtTotal,divisiontotal,wordtotal1,wordtotal2,otherTotal,feescount,cbperson);
|
|
|
|
|
|
+ List<Settlement> settlements=SettementUtil.getComparison(settlementList,builtTotal,divisiontotal,wordtotal1,wordtotal2,otherTotal,gfFees,cbperson);
|
|
Boolean f = SettementUtil.getFlag;
|
|
Boolean f = SettementUtil.getFlag;
|
|
settlementService.save(settlements,id);
|
|
settlementService.save(settlements,id);
|
|
//获取结算表中基础数据
|
|
//获取结算表中基础数据
|
|
double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2);
|
|
double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2);
|
|
double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);
|
|
double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);
|
|
- double textotal = ExcelUtil.getTex(total);
|
|
|
|
|
|
+ double textotal = ExcelUtil.getTex(total); //获取税金
|
|
|
|
+ double fbrFees = ExcelUtil.getFbr(total); //获取发包人费
|
|
|
|
+ //措施项目
|
|
|
|
+ double csxmHj = ExcelUtil.getDouble(gzhz,BashInfo.HZ_CH,1,2);//措施项目合计
|
|
|
|
+ double[] csxmFees = ExcelUtil.getDoubleArray(importExcel,BashInfo.CS,2,new int[]{13, 14, 15, 17});//措施项目费
|
|
|
|
+ originalTotalFees[5] = originalTotalFees[5] + csxmHj;
|
|
|
|
+ originalFees[5][0] = originalFees[5][0] + csxmFees[0];
|
|
|
|
+ originalFees[5][1] = originalFees[5][1] + csxmFees[1];
|
|
|
|
+ originalFees[5][2] = originalFees[5][2] + csxmFees[2];
|
|
|
|
+ originalFees[5][3] = originalFees[5][3] + csxmFees[3];
|
|
//将本体工程费用明细存入集合
|
|
//将本体工程费用明细存入集合
|
|
List<JkxlDetailFee> list = new ArrayList<>();
|
|
List<JkxlDetailFee> list = new ArrayList<>();
|
|
for(int i=0;i<originalTotalFees.length;i++){
|
|
for(int i=0;i<originalTotalFees.length;i++){
|
|
@@ -301,7 +312,7 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
double totalfee = 0.00; //合计
|
|
double totalfee = 0.00; //合计
|
|
JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
double originalTotalCost = originalTotalFees[i]; //原合计
|
|
double originalTotalCost = originalTotalFees[i]; //原合计
|
|
- double otherRate = originalTotalCost/totalFee; //其他费用分摊比例
|
|
|
|
|
|
+ double otherRate = originalTotalCost/builtTotal; //其他费用分摊比例
|
|
double orRate = new BigDecimal(otherRate).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); //四舍五入
|
|
double orRate = new BigDecimal(otherRate).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); //四舍五入
|
|
double otherFee = qtFees[2]*otherRate; //其他费用
|
|
double otherFee = qtFees[2]*otherRate; //其他费用
|
|
double zjgcFee = zjgcFees[i];//直接工程费
|
|
double zjgcFee = zjgcFees[i];//直接工程费
|
|
@@ -421,6 +432,22 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
jkxlDetailFee.setTotalFee(jkxlDetailFee.getTotalFee()+tex);
|
|
jkxlDetailFee.setTotalFee(jkxlDetailFee.getTotalFee()+tex);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ //分摊发包人
|
|
|
|
+ if(f){
|
|
|
|
+ double fbrfee = 0.00;
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
|
+ fbrfee += jkxlDetailFee.getOriginalFbrCost();
|
|
|
|
+ }
|
|
|
|
+ double cs = fbrFees-fbrfee;
|
|
|
|
+ if(cs!=0.00) {
|
|
|
|
+ for (JkxlDetailFee jkxlDetailFee1 : list) {
|
|
|
|
+ double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
|
|
|
|
+ jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
|
|
|
|
+ jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
//计算差额
|
|
//计算差额
|
|
for(JkxlDetailFee jkxlDetailFee : list){
|
|
for(JkxlDetailFee jkxlDetailFee : list){
|
|
tz += jkxlDetailFee.getTotalFee();
|
|
tz += jkxlDetailFee.getTotalFee();
|
|
@@ -456,13 +483,6 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
jkxlAdjustFee2.setType(BashInfo.CE);
|
|
jkxlAdjustFee2.setType(BashInfo.CE);
|
|
jkxlAdjustFee2.setFee(gxFee);
|
|
jkxlAdjustFee2.setFee(gxFee);
|
|
feeAdjustService.save(jkxlAdjustFee2);
|
|
feeAdjustService.save(jkxlAdjustFee2);
|
|
- if(csFee!= 0.00){
|
|
|
|
- JkxlAdjustFee jkxlAdjustFee3 = new JkxlAdjustFee();
|
|
|
|
- jkxlAdjustFee3.setId(id);
|
|
|
|
- jkxlAdjustFee3.setType(BashInfo.HZ_CH);
|
|
|
|
- jkxlAdjustFee3.setFee(csFee);
|
|
|
|
- feeAdjustService.save(jkxlAdjustFee3);
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
//电缆线路保存数据
|
|
//电缆线路保存数据
|
|
@@ -535,6 +555,7 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2);
|
|
double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2);
|
|
double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);
|
|
double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);
|
|
double textotal = ExcelUtil.getTex(total);
|
|
double textotal = ExcelUtil.getTex(total);
|
|
|
|
+ double fbrFees = ExcelUtil.getFbr(total); //获取发包人费
|
|
List<JkxlDetailFee> list = new ArrayList<>();
|
|
List<JkxlDetailFee> list = new ArrayList<>();
|
|
if(jzgc !=0.00 && azgc == 0.00){
|
|
if(jzgc !=0.00 && azgc == 0.00){
|
|
ImportExcel jzqd = new ImportExcel(file,1,BashInfo.SHEET_JZFBFXJJ,true); //建筑分部分项工程量清单计价表
|
|
ImportExcel jzqd = new ImportExcel(file,1,BashInfo.SHEET_JZFBFXJJ,true); //建筑分部分项工程量清单计价表
|
|
@@ -556,6 +577,14 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
double zgJz = zjgcJzTotal-(aqwmJzFees[1]/(aqwmJzFees[0]/100));
|
|
double zgJz = zjgcJzTotal-(aqwmJzFees[1]/(aqwmJzFees[0]/100));
|
|
jxslJz = zgJz/(fbrJzFee-zgJz); //建筑进项税率
|
|
jxslJz = zgJz/(fbrJzFee-zgJz); //建筑进项税率
|
|
}
|
|
}
|
|
|
|
+ //措施项目
|
|
|
|
+ double csxmHj = ExcelUtil.getDouble(jzhz,BashInfo.HZ_CH,1,2);//措施项目合计
|
|
|
|
+ double[] csxmFees = ExcelUtil.getDoubleArray(jzqd,BashInfo.CS,2,new int[]{13, 14, 15, 17});//措施项目费
|
|
|
|
+ originalTotalJzFees[2] = originalTotalJzFees[2] + csxmHj;
|
|
|
|
+ originalJzFees[2][0] = originalJzFees[2][0] + csxmFees[0];
|
|
|
|
+ originalJzFees[2][1] = originalJzFees[2][1] + csxmFees[1];
|
|
|
|
+ originalJzFees[2][2] = originalJzFees[2][2] + csxmFees[2];
|
|
|
|
+ originalJzFees[2][3] = originalJzFees[2][3] + csxmFees[3];
|
|
//电缆结算汇总
|
|
//电缆结算汇总
|
|
List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
|
|
List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
|
|
Boolean f = SettementUtil.getFlag;
|
|
Boolean f = SettementUtil.getFlag;
|
|
@@ -602,7 +631,21 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
jkxlDetailFee.setId(id);
|
|
jkxlDetailFee.setId(id);
|
|
list.add(jkxlDetailFee);
|
|
list.add(jkxlDetailFee);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ //分摊发包人
|
|
|
|
+ if(f){
|
|
|
|
+ double fbrfee = 0.00;
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
|
+ fbrfee += jkxlDetailFee.getOriginalFbrCost();
|
|
|
|
+ }
|
|
|
|
+ double cs = fbrFees-fbrfee;
|
|
|
|
+ if(cs != 0.00) {
|
|
|
|
+ for (JkxlDetailFee jkxlDetailFee1 : list) {
|
|
|
|
+ double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
|
|
|
|
+ jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
|
|
|
|
+ jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
} else if(jzgc ==0.00 && azgc != 0.00){
|
|
} else if(jzgc ==0.00 && azgc != 0.00){
|
|
ImportExcel azqd = new ImportExcel(file,1,BashInfo.SHEET_AZFBFXJJ,true); //安装分部分项工程量清单计价表
|
|
ImportExcel azqd = new ImportExcel(file,1,BashInfo.SHEET_AZFBFXJJ,true); //安装分部分项工程量清单计价表
|
|
ImportExcel azhz = new ImportExcel(file,1,BashInfo.SHEET_HZHZB ,true); //电缆线路安装工程费用汇总表
|
|
ImportExcel azhz = new ImportExcel(file,1,BashInfo.SHEET_HZHZB ,true); //电缆线路安装工程费用汇总表
|
|
@@ -673,6 +716,21 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
jkxlDetailFee.setId(id);
|
|
jkxlDetailFee.setId(id);
|
|
list.add(jkxlDetailFee);
|
|
list.add(jkxlDetailFee);
|
|
}
|
|
}
|
|
|
|
+ //分摊发包人
|
|
|
|
+ if(f){
|
|
|
|
+ double fbrfee = 0.00;
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
|
+ fbrfee += jkxlDetailFee.getOriginalFbrCost();
|
|
|
|
+ }
|
|
|
|
+ double cs = fbrFees-fbrfee;
|
|
|
|
+ if(cs != 0.00) {
|
|
|
|
+ for (JkxlDetailFee jkxlDetailFee1 : list) {
|
|
|
|
+ double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
|
|
|
|
+ jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
|
|
|
|
+ jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
} else {
|
|
} else {
|
|
ImportExcel jzqd = new ImportExcel(file, 1, BashInfo.SHEET_JZFBFXJJ,true); //建筑分部分项工程量清单计价表
|
|
ImportExcel jzqd = new ImportExcel(file, 1, BashInfo.SHEET_JZFBFXJJ,true); //建筑分部分项工程量清单计价表
|
|
@@ -712,6 +770,14 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
double zgAz = zjgcAzTotal - (aqwmAzFees[1] / (aqwmAzFees[0] / 100));
|
|
double zgAz = zjgcAzTotal - (aqwmAzFees[1] / (aqwmAzFees[0] / 100));
|
|
jxslAz = zgAz / (fbrAzFee - zgAz); //安装进项税率
|
|
jxslAz = zgAz / (fbrAzFee - zgAz); //安装进项税率
|
|
}
|
|
}
|
|
|
|
+ //措施项目
|
|
|
|
+ double csxmHj = ExcelUtil.getDouble(jzhz,BashInfo.HZ_CH,1,2);//措施项目合计
|
|
|
|
+ double[] csxmFees = ExcelUtil.getDoubleArray(jzqd,BashInfo.MX_CSXM,2,new int[]{13, 14, 15, 17});//措施项目费
|
|
|
|
+ originalTotalJzFees[2] = originalTotalJzFees[2] + csxmHj;
|
|
|
|
+ originalJzFees[2][0] = originalJzFees[2][0] + csxmFees[0];
|
|
|
|
+ originalJzFees[2][1] = originalJzFees[2][1] + csxmFees[1];
|
|
|
|
+ originalJzFees[2][2] = originalJzFees[2][2] + csxmFees[2];
|
|
|
|
+ originalJzFees[2][3] = originalJzFees[2][3] + csxmFees[3];
|
|
|
|
|
|
List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
|
|
List<Settlement> dlSettlements = SettementUtil.getDLComparison(settlementList,builtTotal,division,word1total,word2total,otherDlTotal,feesDlCount,cbperson);
|
|
Boolean f = SettementUtil.getFlag;
|
|
Boolean f = SettementUtil.getFlag;
|
|
@@ -802,6 +868,21 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
jkxlDetailFee.setId(id);
|
|
jkxlDetailFee.setId(id);
|
|
list.add(jkxlDetailFee);
|
|
list.add(jkxlDetailFee);
|
|
}
|
|
}
|
|
|
|
+ //分摊发包人
|
|
|
|
+ if(f){
|
|
|
|
+ double fbrfee = 0.00;
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
|
+ fbrfee += jkxlDetailFee.getOriginalFbrCost();
|
|
|
|
+ }
|
|
|
|
+ double cs = fbrFees-fbrfee;
|
|
|
|
+ if(cs != 0.00) {
|
|
|
|
+ for (JkxlDetailFee jkxlDetailFee1 : list) {
|
|
|
|
+ double rate = jkxlDetailFee1.getOriginalFbrCost() / fbrfee;
|
|
|
|
+ jkxlDetailFee1.setOriginalFbrCost(jkxlDetailFee1.getOriginalFbrCost() + cs * rate);
|
|
|
|
+ jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee() - cs * rate);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
double tz = 0.00; //总合计金额
|
|
double tz = 0.00; //总合计金额
|
|
double texTotal = 0.00; //税合计金额
|
|
double texTotal = 0.00; //税合计金额
|