|
@@ -8,6 +8,7 @@ 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;
|
|
|
+import com.jeeplus.modules.sg.overheadline.util.DoubleUtil;
|
|
|
import com.jeeplus.modules.sg.overheadline.util.SettementUtil;
|
|
|
import com.jeeplus.modules.sg.project.entity.WbsItem;
|
|
|
import com.jeeplus.modules.sg.project.service.ItemService;
|
|
@@ -41,195 +42,355 @@ public class OverheadLineService {
|
|
|
return overheadLineMapper.getList(id,type);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-public List<JkxlDetailFee> findList(String id,String type){
|
|
|
- List<JkxlDetailFee> list = overheadLineMapper.findList(id,type);
|
|
|
- double integrityFee = 0.00; //诚信扣款
|
|
|
- WbsItem wbsItem = itemService.getState(id);
|
|
|
- if(wbsItem != null){
|
|
|
- integrityFee = wbsItem.getIntegrityFee() * -1;
|
|
|
- }
|
|
|
- for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
- double totalFee = jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
- //建筑
|
|
|
- if(jkxlDetailFee.getWbsCode().substring(0,2).equals("21") || jkxlDetailFee.getWbsCode().substring(0,3).equals("491")){
|
|
|
- jkxlDetailFee.setJzFee(totalFee);
|
|
|
- }
|
|
|
- //安装
|
|
|
- if(jkxlDetailFee.getWbsCode().substring(0,2).equals("23") || jkxlDetailFee.getWbsCode().substring(0,3).equals("493") || jkxlDetailFee.getWbsCode().substring(0,2).equals("39")){
|
|
|
- jkxlDetailFee.setAzFee(totalFee);
|
|
|
- }
|
|
|
- //其他费用
|
|
|
- if(jkxlDetailFee.getTotalFee() != null && jkxlDetailFee.getFeeType().equals("0")){
|
|
|
- double qtFee = jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
- jkxlDetailFee.setQtFee(qtFee);
|
|
|
+ /**
|
|
|
+ * 获取导出数据
|
|
|
+ * @param id
|
|
|
+ * @param type
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<JkxlDetailFee> findList(String id,String type){
|
|
|
+ List<JkxlDetailFee> list = overheadLineMapper.findList(id,type);
|
|
|
+ double integrityFee = 0.00; //诚信扣款
|
|
|
+ double decFund = 0.00;//甲供材超供抵扣款
|
|
|
+ double texDeal = 0.00;//税金处理
|
|
|
+ double totalDeal = 0.00;//需处理税金与甲供材抵扣款和
|
|
|
+ // WbsItem wbsItem = itemService.getState(id);
|
|
|
+ WbsItem wbsItem = itemService.get(id);
|
|
|
+ if(wbsItem != null){
|
|
|
+ if(wbsItem.getIntegrityFee() != null){
|
|
|
+ integrityFee = wbsItem.getIntegrityFee() * -1;
|
|
|
+ }
|
|
|
+ if(wbsItem.getDecFund() != null){
|
|
|
+ decFund = wbsItem.getDecFund();
|
|
|
+ }
|
|
|
+ if(wbsItem.getTexDeal() != null){
|
|
|
+ texDeal = wbsItem.getTexDeal();
|
|
|
+ }
|
|
|
+ totalDeal = decFund + texDeal;
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
- double jz1 = 0.00;
|
|
|
- double az1 = 0.00;
|
|
|
- double jz2 = 0.00;
|
|
|
- double az2 = 0.00;
|
|
|
- double qtTotal = 0.00;
|
|
|
- //变电站导出
|
|
|
- if(type.equals(BashInfo.PROJECT_BDZ)) {
|
|
|
- for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
- //建筑费和
|
|
|
- if (jkxlDetailFee.getWbsCode().equals("21000000")) {
|
|
|
- jz1 = jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
- jz2 = jkxlDetailFee.getJzFee()!=null? jkxlDetailFee.getJzFee():0.00;
|
|
|
+// 根据节点编码特征判断阶段费用类型为“建筑费”、“安装费”或者“其他费用”,并设置
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
+ double totalFee = jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
+ //建筑
|
|
|
+ if(jkxlDetailFee.getWbsCode().substring(0,2).equals("21") || jkxlDetailFee.getWbsCode().substring(0,3).equals("491")){
|
|
|
+ jkxlDetailFee.setJzFee(totalFee);
|
|
|
}
|
|
|
- //安装费和
|
|
|
- if (jkxlDetailFee.getWbsCode().equals("23000000")) {
|
|
|
- az1 = jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
- az2 = jkxlDetailFee.getAzFee()!=null? jkxlDetailFee.getAzFee():0.00;
|
|
|
+ //安装
|
|
|
+ if(jkxlDetailFee.getWbsCode().substring(0,2).equals("23") || jkxlDetailFee.getWbsCode().substring(0,3).equals("493") || jkxlDetailFee.getWbsCode().substring(0,2).equals("39")){
|
|
|
+ jkxlDetailFee.setAzFee(totalFee);
|
|
|
}
|
|
|
- //其他费用和
|
|
|
- if (jkxlDetailFee.getFeeType().equals("0")&& jkxlDetailFee.getTotalFee() != null) {
|
|
|
- qtTotal += jkxlDetailFee.getTotalFee();
|
|
|
+ //其他费用
|
|
|
+ if(jkxlDetailFee.getTotalFee() != null && jkxlDetailFee.getFeeType().equals("0")){
|
|
|
+ double qtFee = jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
+ jkxlDetailFee.setQtFee(qtFee);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
- qtTotal = qtTotal + integrityFee;
|
|
|
- for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
- //WBS首层数据
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("20000000")){
|
|
|
- jkxlDetailFee.setJzFee(jz2);
|
|
|
- jkxlDetailFee.setAzFee(az2);
|
|
|
- jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
- }
|
|
|
- //WBS变电站合计
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("10000000")){
|
|
|
- jkxlDetailFee.setJzFee(jz2);
|
|
|
- jkxlDetailFee.setAzFee(az2);
|
|
|
- jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
- }
|
|
|
- //WBS变电站其他费用合计
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("24000000")){
|
|
|
- jkxlDetailFee.setTotalFee(qtTotal);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
- }
|
|
|
- //WBS变电站工程结算审核费(诚信扣款)
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("24260000")){
|
|
|
- jkxlDetailFee.setTotalFee(integrityFee);
|
|
|
- jkxlDetailFee.setQtFee(integrityFee);
|
|
|
+ double jz1 = 0.00;
|
|
|
+ double az1 = 0.00;
|
|
|
+ double jz2 = 0.00;
|
|
|
+ double az2 = 0.00;
|
|
|
+ double qtTotal = 0.00;
|
|
|
+ //变电站导出
|
|
|
+ if(type.equals(BashInfo.PROJECT_BDZ)) {
|
|
|
+// 根据totalFee进行分摊,分摊至最后剩下的 找一个最低层级wbs扣减,并逐层扣减上级wbs
|
|
|
+ String lastShareWbs = null;
|
|
|
+ for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
+ //建筑费和
|
|
|
+ if (jkxlDetailFee.getWbsCode().equals("21000000")) {
|
|
|
+ jz1 = jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
+ jz2 = jkxlDetailFee.getJzFee()!=null? jkxlDetailFee.getJzFee():0.00;
|
|
|
+ }
|
|
|
+ //安装费和
|
|
|
+ if (jkxlDetailFee.getWbsCode().equals("23000000")) {
|
|
|
+ az1 = jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
+ az2 = jkxlDetailFee.getAzFee()!=null? jkxlDetailFee.getAzFee():0.00;
|
|
|
+ }
|
|
|
+ //其他费用和
|
|
|
+ if (jkxlDetailFee.getFeeType().equals("0")&& jkxlDetailFee.getTotalFee() != null) {
|
|
|
+ qtTotal += jkxlDetailFee.getTotalFee();
|
|
|
+ }
|
|
|
+// wbs简明表示8位,最低层次wbs最后两位为0
|
|
|
+ String six = jkxlDetailFee.getWbsCode().substring(5,6);
|
|
|
+ if(lastShareWbs!=null && jkxlDetailFee.getFeeType().equals("1")&&!six.equals("0")){
|
|
|
+ lastShareWbs = jkxlDetailFee.getWbsCode();
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
- //电缆导出
|
|
|
- if(type.equals(BashInfo.PROJECT_DLXL)){
|
|
|
- for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
- String wbs = jkxlDetailFee.getWbsCode().substring(0,3);
|
|
|
- String wbs1 = jkxlDetailFee.getWbsCode().substring(3,4);
|
|
|
- //建筑和
|
|
|
- if(wbs.equals("491") && !wbs1.equals("0")){
|
|
|
- jz1 += jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
- jz2 += jkxlDetailFee.getJzFee()!=null? jkxlDetailFee.getJzFee():0.00;
|
|
|
+
|
|
|
+ double totalJzShare = DoubleUtil.round2(totalDeal*jz1/(jz1+az1));
|
|
|
+ double totalAzShare = DoubleUtil.round2(totalDeal*az1/(jz1+az1));
|
|
|
+ //实际分摊金额与需分摊金额是否有差额
|
|
|
+ double diff = DoubleUtil.sub(totalDeal,(DoubleUtil.add(totalJzShare,totalAzShare)));
|
|
|
+ //实际分摊与需分摊存在差额情况下 将差额分配的wbs节点及其父节点
|
|
|
+ String wbs1 = null;
|
|
|
+ String wbs2 = null;
|
|
|
+ String wbs3 = null;
|
|
|
+ String wbs4 = null;
|
|
|
+ if(diff != 0.00){
|
|
|
+ wbs1 = lastShareWbs.substring(0,2)+"000000";
|
|
|
+ wbs2 = lastShareWbs.substring(0,3)+"00000";
|
|
|
+ wbs3 = lastShareWbs.substring(0,4)+"0000";
|
|
|
+ wbs4 = lastShareWbs.substring(0,5)+"000";
|
|
|
+ }
|
|
|
+ //根据合计分摊至本体部分 看代码jz1=jz2 az1=az2不知道为什么要分开。
|
|
|
+ for(JkxlDetailFee jkxlDetailFee:list){
|
|
|
+ String wbs = jkxlDetailFee.getWbsCode();
|
|
|
+ Double totalFee = jkxlDetailFee.getTotalFee();
|
|
|
+ if(wbs.startsWith("21")&&totalFee!=null&&totalFee!=0.00){
|
|
|
+ double share = DoubleUtil.round2(totalDeal*totalFee/(jz1+az1));
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.sub(totalFee,share));
|
|
|
+ jkxlDetailFee.setJzFee((DoubleUtil.sub(totalFee,share)));
|
|
|
+ }
|
|
|
+ if(wbs.startsWith("23")&&totalFee!=null&&totalFee!=0.00){
|
|
|
+ double share = DoubleUtil.round2(totalDeal*totalFee/(jz1+az1));
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.sub(totalFee,share));
|
|
|
+ jkxlDetailFee.setAzFee(DoubleUtil.sub(totalFee,share));
|
|
|
+ }
|
|
|
+ if(diff!=0.00){
|
|
|
+ if(wbs.equals(wbs1)||wbs.equals(wbs2)||wbs.equals(wbs3)||wbs.equals(wbs4)||wbs.equals(lastShareWbs)){
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.sub(jkxlDetailFee.getTotalFee(),diff));
|
|
|
+ if(lastShareWbs.startsWith("21")){
|
|
|
+ jkxlDetailFee.setJzFee(DoubleUtil.sub(jkxlDetailFee.getJzFee(),diff));
|
|
|
+ }else{
|
|
|
+ jkxlDetailFee.setAzFee(DoubleUtil.sub(jkxlDetailFee.getAzFee(),diff));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
- //安装和
|
|
|
- if(wbs.equals("493") && !wbs1.equals("0")){
|
|
|
- az1 += jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
- az2 += jkxlDetailFee.getAzFee()!=null? jkxlDetailFee.getAzFee():0.00;
|
|
|
+ if(lastShareWbs.startsWith("21")){
|
|
|
+ totalJzShare = DoubleUtil.add(totalJzShare,diff);
|
|
|
+ }else{
|
|
|
+ totalAzShare = DoubleUtil.add(totalAzShare,diff);
|
|
|
}
|
|
|
- //其他费用和
|
|
|
- if (jkxlDetailFee.getFeeType().equals("0")&& jkxlDetailFee.getTotalFee() != null) {
|
|
|
- qtTotal += jkxlDetailFee.getTotalFee();
|
|
|
+ jz1 = DoubleUtil.sub(jz1,totalJzShare);
|
|
|
+ jz2 = DoubleUtil.sub(jz2,totalJzShare);
|
|
|
+ az1 = DoubleUtil.sub(az1,totalAzShare);
|
|
|
+ az2 = DoubleUtil.sub(az2,totalAzShare);
|
|
|
+
|
|
|
+ qtTotal = qtTotal + integrityFee;
|
|
|
+ for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
+ //WBS首层数据
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("20000000")){
|
|
|
+ jkxlDetailFee.setJzFee(jz2);
|
|
|
+ jkxlDetailFee.setAzFee(az2);
|
|
|
+ jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
+ jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ }
|
|
|
+ //WBS变电站合计
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("10000000")){
|
|
|
+ jkxlDetailFee.setJzFee(jz2);
|
|
|
+ jkxlDetailFee.setAzFee(az2);
|
|
|
+ jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
+ jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ }
|
|
|
+ //WBS变电站其他费用合计
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("24000000")){
|
|
|
+ jkxlDetailFee.setTotalFee(qtTotal);
|
|
|
+ jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ }
|
|
|
+ //WBS变电站工程结算审核费(诚信扣款)
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("24260000")){
|
|
|
+ jkxlDetailFee.setTotalFee(integrityFee);
|
|
|
+ jkxlDetailFee.setQtFee(integrityFee);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- //诚信扣款
|
|
|
- qtTotal = qtTotal + integrityFee;
|
|
|
- for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
- //WBS电缆和
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("40000000")){
|
|
|
- jkxlDetailFee.setJzFee(jz2);
|
|
|
- jkxlDetailFee.setAzFee(az2);
|
|
|
- jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
- }
|
|
|
- //WBS首层
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("10000000")){
|
|
|
- jkxlDetailFee.setJzFee(jz2);
|
|
|
- jkxlDetailFee.setAzFee(az2);
|
|
|
- jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
- }
|
|
|
- //WBS电缆建筑
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("49100000")){
|
|
|
- jkxlDetailFee.setTotalFee(jz1);
|
|
|
- jkxlDetailFee.setJzFee(jz2);
|
|
|
+ //电缆导出
|
|
|
+ if(type.equals(BashInfo.PROJECT_DLXL)){
|
|
|
+ for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
+ String wbs = jkxlDetailFee.getWbsCode().substring(0,3);
|
|
|
+ String wbs1 = jkxlDetailFee.getWbsCode().substring(3,4);
|
|
|
+ //建筑和
|
|
|
+ if(wbs.equals("491") && !wbs1.equals("0")){
|
|
|
+ jz1 += jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
+ jz2 += jkxlDetailFee.getJzFee()!=null? jkxlDetailFee.getJzFee():0.00;
|
|
|
+ }
|
|
|
+ //安装和
|
|
|
+ if(wbs.equals("493") && !wbs1.equals("0")){
|
|
|
+ az1 += jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
+ az2 += jkxlDetailFee.getAzFee()!=null? jkxlDetailFee.getAzFee():0.00;
|
|
|
+ }
|
|
|
+ //其他费用和
|
|
|
+ if (jkxlDetailFee.getFeeType().equals("0")&& jkxlDetailFee.getTotalFee() != null) {
|
|
|
+ qtTotal += jkxlDetailFee.getTotalFee();
|
|
|
+ }
|
|
|
}
|
|
|
- //WBS电缆安装
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("49300000")){
|
|
|
- jkxlDetailFee.setTotalFee(az1);
|
|
|
- jkxlDetailFee.setAzFee(az2);
|
|
|
+
|
|
|
+ //处理税金和甲供材超供抵扣款
|
|
|
+ double totalJzShare = 0.00;
|
|
|
+ double totalAzShare = 0.00;
|
|
|
+ //根据合计分摊至本体部分 看代码jz1=jz2 az1=az2不知道为什么要分开。
|
|
|
+ for(JkxlDetailFee jkxlDetailFee:list){
|
|
|
+ String wbs = jkxlDetailFee.getWbsCode().substring(0,3);
|
|
|
+ String wbs1 = jkxlDetailFee.getWbsCode().substring(3,4);
|
|
|
+ Double totalFee = jkxlDetailFee.getTotalFee();
|
|
|
+ if(wbs.equals("491") && !wbs1.equals("0")&&totalFee!=null&&totalFee!=0.00){
|
|
|
+ double share = DoubleUtil.round2(totalDeal*totalFee/(jz1+az1));
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.sub(totalFee,share));
|
|
|
+ jkxlDetailFee.setJzFee((DoubleUtil.sub(totalFee,share)));
|
|
|
+ totalJzShare = DoubleUtil.add(totalJzShare,share);
|
|
|
+ }
|
|
|
+ if(wbs.equals("493") && !wbs1.equals("0")&&totalFee!=null&&totalFee!=0.00){
|
|
|
+ double share = DoubleUtil.round2(totalDeal*totalFee/(jz1+az1));
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.sub(totalFee,share));
|
|
|
+ jkxlDetailFee.setAzFee(DoubleUtil.sub(totalFee,share));
|
|
|
+ totalAzShare = DoubleUtil.add(totalAzShare,share);
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
- //WBS电缆本体工程
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("49000000")){
|
|
|
- jkxlDetailFee.setJzFee(jz2);
|
|
|
- jkxlDetailFee.setAzFee(az2);
|
|
|
- jkxlDetailFee.setTotalFee(jz1+az1);
|
|
|
- }
|
|
|
- //WBS电缆其他费用
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("44000000")){
|
|
|
- jkxlDetailFee.setTotalFee(qtTotal);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ //将分摊后的差额放入第一个分部分项
|
|
|
+ if(totalDeal!=(totalJzShare+totalAzShare)){
|
|
|
+ for(JkxlDetailFee jkxlDetailFee:list){
|
|
|
+ String wbs = jkxlDetailFee.getWbsCode().substring(0,3);
|
|
|
+ String wbs1 = jkxlDetailFee.getWbsCode().substring(3,4);
|
|
|
+ Double totalFee = jkxlDetailFee.getTotalFee();
|
|
|
+ if(wbs.equals("491") && !wbs1.equals("0")&&totalFee!=null&&totalFee!=0.00){
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.sub(totalFee,DoubleUtil.sub(totalDeal,(DoubleUtil.add(totalJzShare,totalAzShare)))));
|
|
|
+ jkxlDetailFee.setJzFee(DoubleUtil.sub(totalFee,DoubleUtil.sub(totalDeal,(DoubleUtil.add(totalJzShare,totalAzShare)))));
|
|
|
+ totalJzShare = DoubleUtil.add(totalJzShare,DoubleUtil.sub(totalDeal,(DoubleUtil.add(totalJzShare,totalAzShare))));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if(wbs.equals("493") && !wbs1.equals("0")&&totalFee!=null&&totalFee!=0.00){
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.sub(totalFee,DoubleUtil.sub(totalDeal,(DoubleUtil.add(totalJzShare,totalAzShare)))));
|
|
|
+ jkxlDetailFee.setAzFee(DoubleUtil.sub(totalFee,DoubleUtil.sub(totalDeal,(DoubleUtil.add(totalJzShare,totalAzShare)))));
|
|
|
+ totalAzShare = DoubleUtil.add(totalAzShare,DoubleUtil.sub(totalDeal,(DoubleUtil.add(totalJzShare,totalAzShare))));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
+ jz1 = DoubleUtil.sub(jz1,totalJzShare);
|
|
|
+ jz2 = DoubleUtil.sub(jz2,totalJzShare);
|
|
|
+ az1 = DoubleUtil.sub(az1,totalAzShare);
|
|
|
+ az2 = DoubleUtil.sub(az2,totalAzShare);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//诚信扣款
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("44260000")){
|
|
|
- jkxlDetailFee.setTotalFee(integrityFee);
|
|
|
- jkxlDetailFee.setQtFee(integrityFee);
|
|
|
- }
|
|
|
- }
|
|
|
+ qtTotal = qtTotal + integrityFee;
|
|
|
+ for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
+ //WBS电缆和
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("40000000")){
|
|
|
+ jkxlDetailFee.setJzFee(jz2);
|
|
|
+ jkxlDetailFee.setAzFee(az2);
|
|
|
+ jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
+ jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ }
|
|
|
+ //WBS首层
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("10000000")){
|
|
|
+ jkxlDetailFee.setJzFee(jz2);
|
|
|
+ jkxlDetailFee.setAzFee(az2);
|
|
|
+ jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
+ jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ }
|
|
|
+ //WBS电缆建筑
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("49100000")){
|
|
|
+ jkxlDetailFee.setTotalFee(jz1);
|
|
|
+ jkxlDetailFee.setJzFee(jz2);
|
|
|
+ }
|
|
|
+ //WBS电缆安装
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("49300000")){
|
|
|
+ jkxlDetailFee.setTotalFee(az1);
|
|
|
+ jkxlDetailFee.setAzFee(az2);
|
|
|
|
|
|
- }
|
|
|
- //架空导出
|
|
|
- if(type.equals(BashInfo.PROJECT_JKXL)) {
|
|
|
- for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
- //本体费用求和
|
|
|
- if (jkxlDetailFee.getFeeType().equals("1")&& jkxlDetailFee.getTotalFee() != null) {
|
|
|
- az1 += jkxlDetailFee.getTotalFee();
|
|
|
- }
|
|
|
- //其他费用求和
|
|
|
- if (jkxlDetailFee.getFeeType().equals("0")&& jkxlDetailFee.getTotalFee() != null) {
|
|
|
- qtTotal += jkxlDetailFee.getTotalFee();
|
|
|
+ }
|
|
|
+ //WBS电缆本体工程
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("49000000")){
|
|
|
+ jkxlDetailFee.setJzFee(jz2);
|
|
|
+ jkxlDetailFee.setAzFee(az2);
|
|
|
+ jkxlDetailFee.setTotalFee(jz1+az1);
|
|
|
+ }
|
|
|
+ //WBS电缆其他费用
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("44000000")){
|
|
|
+ jkxlDetailFee.setTotalFee(qtTotal);
|
|
|
+ jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ }
|
|
|
+ //诚信扣款
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("44260000")){
|
|
|
+ jkxlDetailFee.setTotalFee(integrityFee);
|
|
|
+ jkxlDetailFee.setQtFee(integrityFee);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
- qtTotal = qtTotal + integrityFee;
|
|
|
- for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
- //WBS架空合计
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("30000000")){
|
|
|
- jkxlDetailFee.setTotalFee(az1+qtTotal);
|
|
|
- jkxlDetailFee.setAzFee(az1);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
- }
|
|
|
- //WBS首层
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("10000000")){
|
|
|
- jkxlDetailFee.setTotalFee(az1+qtTotal);
|
|
|
- jkxlDetailFee.setAzFee(az1);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ //架空导出
|
|
|
+ if(type.equals(BashInfo.PROJECT_JKXL)) {
|
|
|
+ for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
+ //本体费用求和
|
|
|
+ if (jkxlDetailFee.getFeeType().equals("1")&& jkxlDetailFee.getTotalFee() != null) {
|
|
|
+ az1 += jkxlDetailFee.getTotalFee();
|
|
|
+ }
|
|
|
+ //其他费用求和
|
|
|
+ if (jkxlDetailFee.getFeeType().equals("0")&& jkxlDetailFee.getTotalFee() != null) {
|
|
|
+ qtTotal += jkxlDetailFee.getTotalFee();
|
|
|
+ }
|
|
|
}
|
|
|
- //WBS架空本体工程
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("39000000")){
|
|
|
- jkxlDetailFee.setTotalFee(az1);
|
|
|
- jkxlDetailFee.setAzFee(az1);
|
|
|
+
|
|
|
+ //处理税金和甲供材超供抵扣款
|
|
|
+ double totalShare = 0.00;
|
|
|
+ //根据合计分摊至本体部分
|
|
|
+ for(JkxlDetailFee jkxlDetailFee:list){
|
|
|
+ Double totalFee = jkxlDetailFee.getTotalFee();
|
|
|
+ if(jkxlDetailFee.getFeeType().equals("1") && totalFee != null && totalFee!=0.00){
|
|
|
+ double share = DoubleUtil.round2(totalDeal*totalFee/az1);
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.sub(totalFee,share));
|
|
|
+ jkxlDetailFee.setAzFee(DoubleUtil.sub(totalFee,share));
|
|
|
+ totalShare = DoubleUtil.add(totalShare,share);
|
|
|
+ }
|
|
|
}
|
|
|
- //WBS架空其他费用
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("34000000")){
|
|
|
- jkxlDetailFee.setTotalFee(qtTotal);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ //将分摊后的差额放入第一个分部分项
|
|
|
+ if(totalDeal!=totalShare){
|
|
|
+ for(JkxlDetailFee jkxlDetailFee:list){
|
|
|
+ Double totalFee = jkxlDetailFee.getTotalFee();
|
|
|
+ if(jkxlDetailFee.getFeeType().equals("1") && totalFee != null && totalFee!=0.00){
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.sub(totalFee,DoubleUtil.sub(totalDeal,totalShare)));
|
|
|
+ jkxlDetailFee.setAzFee(DoubleUtil.sub(totalFee,DoubleUtil.sub(totalDeal,totalShare)));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- //WBS架空诚信扣款
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("34260000")){
|
|
|
- jkxlDetailFee.setTotalFee(integrityFee);
|
|
|
- jkxlDetailFee.setQtFee(integrityFee);
|
|
|
+ az1 = DoubleUtil.sub(az1,totalDeal);
|
|
|
+
|
|
|
+
|
|
|
+ qtTotal = qtTotal + integrityFee;
|
|
|
+ for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
+ //WBS架空合计
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("30000000")){
|
|
|
+ jkxlDetailFee.setTotalFee(az1+qtTotal);
|
|
|
+ jkxlDetailFee.setAzFee(az1);
|
|
|
+ jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ }
|
|
|
+ //WBS首层
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("10000000")){
|
|
|
+ jkxlDetailFee.setTotalFee(az1+qtTotal);
|
|
|
+ jkxlDetailFee.setAzFee(az1);
|
|
|
+ jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ }
|
|
|
+ //WBS架空本体工程
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("39000000")){
|
|
|
+ jkxlDetailFee.setTotalFee(az1);
|
|
|
+ jkxlDetailFee.setAzFee(az1);
|
|
|
+ }
|
|
|
+ //WBS架空其他费用
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("34000000")){
|
|
|
+ jkxlDetailFee.setTotalFee(qtTotal);
|
|
|
+ jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ }
|
|
|
+ //WBS架空诚信扣款
|
|
|
+ if(jkxlDetailFee.getWbsCode().equals("34260000")){
|
|
|
+ jkxlDetailFee.setTotalFee(integrityFee);
|
|
|
+ jkxlDetailFee.setQtFee(integrityFee);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- return list;
|
|
|
+ return list;
|
|
|
|
|
|
-}
|
|
|
+ }
|
|
|
|
|
|
public JkxlDetailFee getDate(String id, String wbsCode){
|
|
|
return overheadLineMapper.getData(id,wbsCode);
|