|
@@ -272,9 +272,9 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
|
double[] aqwmFees = ExcelUtil.getDoubleArray(csqd,BashInfo.CS_AQWM,1, new int[]{3, 4}); //安全文明施工费
|
|
|
double zg = zjgcTotal-(aqwmFees[1]/(aqwmFees[0]/100));
|
|
|
double jxsl = zg/(fbrFee-zg); //进项税率
|
|
|
- if(texRate<0.05){
|
|
|
- jxsl = 0.00;
|
|
|
- }
|
|
|
+// if(texRate<0.05){
|
|
|
+// jxsl = 0.00;
|
|
|
+// }
|
|
|
boolean flag = BashInfo.getFlag(originalTotalFees,zjgcFees);
|
|
|
double csFees = BashInfo.getCsFee(csqd); //安装措施费
|
|
|
double gfFees = ExcelUtil.getDouble(gf,BashInfo.QT_HJ,0,4); //规费
|
|
@@ -282,6 +282,10 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
|
List<Settlement> settlements=SettementUtil.getComparison(settlementList,builtTotal,divisiontotal,wordtotal1,wordtotal2,otherTotal,feescount,cbperson);
|
|
|
Boolean f = SettementUtil.getFlag;
|
|
|
settlementService.save(settlements,id);
|
|
|
+ //获取结算表中基础数据
|
|
|
+ double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2);
|
|
|
+ double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);
|
|
|
+ double jsTex = ExcelUtil.getTex(total);
|
|
|
//将本体工程费用明细存入集合
|
|
|
List<JkxlDetailFee> list = new ArrayList<>();
|
|
|
for(int i=0;i<originalTotalFees.length;i++){
|
|
@@ -308,7 +312,7 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
|
double measuresFee3 = csFees2*otherRate; //措施费二
|
|
|
// double fees = rgCost*gfRate[1]*1.12+rgCost*gfRate[0]; //规费
|
|
|
double fees = gfFees*rgfRate; //规费
|
|
|
- if(flag){
|
|
|
+ if(f){
|
|
|
tax = (originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee-originalFbrCost)*texRate; //税金
|
|
|
totalfee = originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee+tax-originalFbrCost; //合计
|
|
|
} else {
|
|
@@ -373,6 +377,30 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //分摊差额
|
|
|
+ double cstotal1 = 0.00;
|
|
|
+ double cstotal2 = 0.00;
|
|
|
+ double cstotal3 = 0.00;
|
|
|
+ double gftotal = 0.00;
|
|
|
+ double textotal = 0.00;
|
|
|
+ for(JkxlDetailFee jkxlDetailFee2 :list){
|
|
|
+ cstotal1 += jkxlDetailFee2.getMeasuresFee1();
|
|
|
+ cstotal2 += jkxlDetailFee2.getMeasuresFee2();
|
|
|
+ cstotal3 += jkxlDetailFee2.getMeasuresFee3();
|
|
|
+ gftotal += jkxlDetailFee2.getFees();
|
|
|
+ textotal += jkxlDetailFee2.getTex();
|
|
|
+ }
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : list){
|
|
|
+ double ftRate = jkxlDetailFee1.getZjgcFee()/zjgcTotal;
|
|
|
+ double csft = (jsCs-(cstotal1+cstotal2+cstotal3))*ftRate;
|
|
|
+ double gfft = (jsGf-gftotal)*ftRate;
|
|
|
+ double sgft = (jsTex-textotal)*ftRate;
|
|
|
+ jkxlDetailFee1.setMeasuresFee1(jkxlDetailFee1.getMeasuresFee1()+csft);
|
|
|
+ jkxlDetailFee1.setFees(jkxlDetailFee1.getFees()+gfft);
|
|
|
+ jkxlDetailFee1.setTex(jkxlDetailFee1.getTex()+sgft);
|
|
|
+ jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee()+csft+gfft+sgft);
|
|
|
+ }
|
|
|
+ //计算差额
|
|
|
for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
tz += jkxlDetailFee.getTotalFee();
|
|
|
}
|
|
@@ -480,6 +508,10 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
|
double[] csJzFee = BashInfo.getJzCsfee(csqd); //建筑措施费
|
|
|
//规费
|
|
|
double azGf = BashInfo.getAzGf(gf);
|
|
|
+ //获取结算表中基础数据
|
|
|
+ double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2);
|
|
|
+ double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);
|
|
|
+ double jsTex = ExcelUtil.getTex(total);
|
|
|
List<JkxlDetailFee> list = new ArrayList<>();
|
|
|
if(jzgc !=0.00 && azgc == 0.00){
|
|
|
ImportExcel jzqd = new ImportExcel(file,1,BashInfo.SHEET_JZFBFXJJ,true); //建筑分部分项工程量清单计价表
|
|
@@ -529,7 +561,7 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
|
double measuresFee2 = 0.00; //措施费一(1)
|
|
|
double measuresFee3 = csFees2*originalTotalCost/fbfxFee; //措施费二
|
|
|
double fees = (zjgcJzFee-(originalFbrCost/(1+jxslJz)*jxslJz))*jzgfRate[0]+(zjgcJzFee-(originalFbrCost/(1+jxslJz)*jxslJz))*jzgfRate[1]*0.2; //规费
|
|
|
- if(flag){
|
|
|
+ if(f){
|
|
|
tax = (originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee-originalFbrCost)*texRate; //税金
|
|
|
totalfee = originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee+tax-originalFbrCost; //合计
|
|
|
} else {
|
|
@@ -611,7 +643,7 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
|
double measuresFee3 = csFees2*originalTotalCost/fbfxFee; //措施费二
|
|
|
// double fees = rgAzFee/(1+tcRate[0])*azgfRate[0]+rgAzFee/(1+tcRate[0])*azgfRate[1]*1.2; //规费
|
|
|
double fees = rgRate*azGf; //规费
|
|
|
- if(flag){
|
|
|
+ if(f){
|
|
|
tax = (originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee-originalFbrCost)*texRate; //税金
|
|
|
totalfee = originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee+tax-originalFbrCost; //合计
|
|
|
} else {
|
|
@@ -710,7 +742,7 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
|
double measuresFee2 = 0.00; //措施费一(1)
|
|
|
double measuresFee3 = csFees2*originalTotalCost/fbfxFee; //措施费二
|
|
|
double fees = (zjgcJzFee-(originalFbrCost/(1+jxslJz)*jxslJz))*jzgfRate[0]+(zjgcJzFee-(originalFbrCost/(1+jxslJz)*jxslJz))*jzgfRate[1]*0.2; //规费
|
|
|
- if(flagJz && flagAz){
|
|
|
+ if(f){
|
|
|
tax = (originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee-originalFbrCost)*texRate; //税金
|
|
|
totalfee = originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee+tax-originalFbrCost; //合计
|
|
|
} else {
|
|
@@ -759,7 +791,7 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
|
double measuresFee3 = csFees2*originalTotalCost/fbfxFee; //措施费二
|
|
|
// double fees = rgAzFee/(1+tcRate[0])*azgfRate[0]+rgAzFee/(1+tcRate[0])*azgfRate[1]*1.2; //规费
|
|
|
double fees = rgRate*azGf; //规费
|
|
|
- if(flagJz && flagAz){
|
|
|
+ if(f){
|
|
|
tax = (originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee-originalFbrCost)*texRate; //税金
|
|
|
totalfee = originalTotalCost+measuresFee1+measuresFee2+measuresFee3+fees+otherFee+tax-originalFbrCost; //合计
|
|
|
} else {
|
|
@@ -826,6 +858,32 @@ public List<JkxlDetailFee> findList(String id,String type){
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //分摊差额
|
|
|
+ double cstotal1 = 0.00;
|
|
|
+ double cstotal2 = 0.00;
|
|
|
+ double cstotal3 = 0.00;
|
|
|
+ double gftotal = 0.00;
|
|
|
+// double textotal = 0.00;
|
|
|
+ double zjgcTotal = 0.00;
|
|
|
+ for(JkxlDetailFee jkxlDetailFee2 :list){
|
|
|
+ cstotal1 += jkxlDetailFee2.getMeasuresFee1();
|
|
|
+ cstotal2 += jkxlDetailFee2.getMeasuresFee2();
|
|
|
+ cstotal3 += jkxlDetailFee2.getMeasuresFee3();
|
|
|
+ gftotal += jkxlDetailFee2.getFees();
|
|
|
+// textotal += jkxlDetailFee2.getTex();
|
|
|
+ zjgcTotal += jkxlDetailFee2.getZjgcFee();
|
|
|
+ }
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : list){
|
|
|
+ double ftRate = jkxlDetailFee1.getZjgcFee()/zjgcTotal;
|
|
|
+ double csft = (jsCs-(cstotal1+cstotal2+cstotal3))*ftRate;
|
|
|
+ double gfft = (jsGf-gftotal)*ftRate;
|
|
|
+// double sgft = (jsTex-textotal)*ftRate;
|
|
|
+ jkxlDetailFee1.setMeasuresFee1(jkxlDetailFee1.getMeasuresFee1()+csft);
|
|
|
+ jkxlDetailFee1.setFees(jkxlDetailFee1.getFees()+gfft);
|
|
|
+// jkxlDetailFee1.setTex(jkxlDetailFee1.getTex()+sgft);
|
|
|
+ jkxlDetailFee1.setTotalFee(jkxlDetailFee1.getTotalFee()+csft+gfft);
|
|
|
+ }
|
|
|
+ //计算差额
|
|
|
for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
tz += jkxlDetailFee.getTotalFee();
|
|
|
}
|