|
@@ -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.DetailFeeUtil;
|
|
|
import com.jeeplus.modules.sg.overheadline.util.DoubleUtil;
|
|
|
import com.jeeplus.modules.sg.overheadline.util.SettementUtil;
|
|
|
import com.jeeplus.modules.sg.project.entity.WbsItem;
|
|
@@ -49,12 +50,12 @@ public class OverheadLineService {
|
|
|
* @return
|
|
|
*/
|
|
|
public List<JkxlDetailFee> findList(String id,String type){
|
|
|
- List<JkxlDetailFee> list = overheadLineMapper.findList(id,type);
|
|
|
+ List<JkxlDetailFee> oriList = 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){
|
|
@@ -66,342 +67,643 @@ public class OverheadLineService {
|
|
|
if(wbsItem.getTexDeal() != null){
|
|
|
texDeal = wbsItem.getTexDeal();
|
|
|
}
|
|
|
- totalDeal = decFund + texDeal;
|
|
|
+ totalDeal = DoubleUtil.add(decFund,texDeal);
|
|
|
}
|
|
|
|
|
|
-// 根据节点编码特征判断阶段费用类型为“建筑费”、“安装费”或者“其他费用”,并设置
|
|
|
- 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);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- double jz1 = 0.00;
|
|
|
- double az1 = 0.00;
|
|
|
- double jz2 = 0.00;
|
|
|
- double az2 = 0.00;
|
|
|
+ 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) {
|
|
|
- Double totalFee = jkxlDetailFee.getTotalFee();
|
|
|
- //建筑费和
|
|
|
- if (jkxlDetailFee.getWbsCode().equals("21000000")) {
|
|
|
- jz1 = totalFee!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
- jz2 = jkxlDetailFee.getJzFee()!=null? jkxlDetailFee.getJzFee():0.00;
|
|
|
+ List<JkxlDetailFee> list = new ArrayList<>();
|
|
|
+ JkxlDetailFee bdzFee = null;
|
|
|
+ double bdzTotal = 0.00;
|
|
|
+ for(JkxlDetailFee fee:oriList){
|
|
|
+ String feeType = fee.getFeeType();
|
|
|
+ Double totalFee = fee.getTotalFee();
|
|
|
+ // 获取totalFee不为0的本体节点
|
|
|
+ if(feeType.equals("1")&&totalFee!=null&&totalFee!=0.00){
|
|
|
+ list.add(fee);
|
|
|
}
|
|
|
- //安装费和
|
|
|
- if (jkxlDetailFee.getWbsCode().equals("23000000")) {
|
|
|
- az1 = totalFee!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
- az2 = jkxlDetailFee.getAzFee()!=null? jkxlDetailFee.getAzFee():0.00;
|
|
|
+ //找到变电站节点
|
|
|
+ if(fee.getWbsCode().equals("20000000")){
|
|
|
+ bdzFee = fee;
|
|
|
}
|
|
|
- //其他费用和
|
|
|
- if (jkxlDetailFee.getFeeType().equals("0")&& totalFee != null) {
|
|
|
- qtTotal += totalFee;
|
|
|
+ //获取变电站总费用
|
|
|
+ if (fee.getWbsCode().equals("21000000")||fee.getWbsCode().equals("23000000")) {
|
|
|
+ bdzTotal = DoubleUtil.add(totalFee,bdzTotal);
|
|
|
}
|
|
|
-// wbs简明表示8位,最低层次wbs最后两位为0
|
|
|
- String six = jkxlDetailFee.getWbsCode().substring(5,6);
|
|
|
- if(lastShareWbs==null && jkxlDetailFee.getFeeType().equals("1")&&!six.equals("0")&&totalFee!=null&&totalFee!=0.00){
|
|
|
- lastShareWbs = jkxlDetailFee.getWbsCode();
|
|
|
+ //其他费用和
|
|
|
+ if (fee.getFeeType().equals("0")&& totalFee != null) {
|
|
|
+ qtTotal = DoubleUtil.add(qtTotal,totalFee);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
+// 将变电站节点加入到list
|
|
|
+ bdzFee.setTotalFee(bdzTotal);
|
|
|
+ list.add(bdzFee);
|
|
|
|
|
|
if(totalDeal!=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&&lastShareWbs!=null){
|
|
|
- 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&&lastShareWbs!=null){
|
|
|
- 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));
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }else if(diff!=0.00&& lastShareWbs==null){
|
|
|
- if(jz1>0.00){
|
|
|
- lastShareWbs = "21000000";
|
|
|
- }else{
|
|
|
- lastShareWbs = "23000000";
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
+ JkxlDetailFee topFee = DetailFeeUtil.getTree(list);
|
|
|
+// 分摊金额
|
|
|
+ DetailFeeUtil.shareByTotal(topFee,-totalDeal);
|
|
|
+ DetailFeeUtil.dealBaseInfo(topFee);
|
|
|
+ }
|
|
|
+ for(JkxlDetailFee fee:list){
|
|
|
+ String wbs = fee.getWbsCode();
|
|
|
+ Double totalFee = fee.getTotalFee();
|
|
|
+ if(wbs.equals("21000000")){
|
|
|
+ jz2 = totalFee;
|
|
|
}
|
|
|
- if(lastShareWbs.startsWith("21")){
|
|
|
- totalJzShare = DoubleUtil.add(totalJzShare,diff);
|
|
|
- }else{
|
|
|
- totalAzShare = DoubleUtil.add(totalAzShare,diff);
|
|
|
+ if(wbs.equals("23000000")){
|
|
|
+ az2 = totalFee;
|
|
|
}
|
|
|
- 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首层数据
|
|
|
+ qtTotal = DoubleUtil.add(qtTotal,integrityFee);
|
|
|
+ for (JkxlDetailFee jkxlDetailFee : oriList) {
|
|
|
+ //WBS变电站合计
|
|
|
if(jkxlDetailFee.getWbsCode().equals("20000000")){
|
|
|
jkxlDetailFee.setJzFee(jz2);
|
|
|
jkxlDetailFee.setAzFee(az2);
|
|
|
- jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.add(jz2,az2,qtTotal));
|
|
|
jkxlDetailFee.setQtFee(qtTotal);
|
|
|
}
|
|
|
- //WBS变电站合计
|
|
|
+ //WBS首层数据
|
|
|
if(jkxlDetailFee.getWbsCode().equals("10000000")){
|
|
|
jkxlDetailFee.setJzFee(jz2);
|
|
|
jkxlDetailFee.setAzFee(az2);
|
|
|
- jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.add(jz2,az2,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);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//电缆导出
|
|
|
if(type.equals(BashInfo.PROJECT_DLXL)){
|
|
|
- for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
- String wbs = jkxlDetailFee.getWbsCode().substring(0,3);
|
|
|
- String wbs1 = jkxlDetailFee.getWbsCode().substring(3,4);
|
|
|
+ for (JkxlDetailFee fee : oriList) {
|
|
|
+ String wbs = fee.getWbsCode().substring(0,3);
|
|
|
+ String wbs1 = fee.getWbsCode().substring(3,4);
|
|
|
+ Double totalFee = fee.getTotalFee();
|
|
|
//建筑和
|
|
|
if(wbs.equals("491") && !wbs1.equals("0")){
|
|
|
- jz1 += jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
- jz2 += jkxlDetailFee.getJzFee()!=null? jkxlDetailFee.getJzFee():0.00;
|
|
|
+ jz1 = DoubleUtil.add(jz1,totalFee);
|
|
|
}
|
|
|
//安装和
|
|
|
if(wbs.equals("493") && !wbs1.equals("0")){
|
|
|
- az1 += jkxlDetailFee.getTotalFee()!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
- az2 += jkxlDetailFee.getAzFee()!=null? jkxlDetailFee.getAzFee():0.00;
|
|
|
+ az1 = DoubleUtil.add(az1,totalFee);
|
|
|
}
|
|
|
//其他费用和
|
|
|
- if (jkxlDetailFee.getFeeType().equals("0")&& jkxlDetailFee.getTotalFee() != null) {
|
|
|
- qtTotal += jkxlDetailFee.getTotalFee();
|
|
|
+ if (fee.getFeeType().equals("0")&& totalFee != null) {
|
|
|
+ qtTotal = DoubleUtil.add(qtTotal,totalFee);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ double totalJzShare = 0.00;
|
|
|
+ double totalAzShare = 0.00;
|
|
|
//处理税金和甲供材超供抵扣款
|
|
|
if(totalDeal!=0.00){
|
|
|
- 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();
|
|
|
+ for(JkxlDetailFee fee:oriList){
|
|
|
+ String wbs = fee.getWbsCode().substring(0,3);
|
|
|
+ String wbs1 = fee.getWbsCode().substring(3,4);
|
|
|
+ Double totalFee = fee.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)));
|
|
|
+ fee.setTotalFee(DoubleUtil.sub(totalFee,share));
|
|
|
+ fee.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));
|
|
|
+ fee.setTotalFee(DoubleUtil.sub(totalFee,share));
|
|
|
+ fee.setAzFee(DoubleUtil.sub(totalFee,share));
|
|
|
totalAzShare = DoubleUtil.add(totalAzShare,share);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
//将分摊后的差额放入第一个分部分项
|
|
|
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();
|
|
|
+ for(JkxlDetailFee fee:oriList){
|
|
|
+ String wbs = fee.getWbsCode().substring(0,3);
|
|
|
+ String wbs1 = fee.getWbsCode().substring(3,4);
|
|
|
+ Double totalFee = fee.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))));
|
|
|
+ fee.setTotalFee(DoubleUtil.add(totalFee,-totalDeal,totalJzShare,totalAzShare));//totalFee-(totalDeal-(totalJzShare+totalAzShare))
|
|
|
+ fee.setJzFee(DoubleUtil.add(totalFee,-totalDeal,totalJzShare,totalAzShare));
|
|
|
+ totalJzShare = DoubleUtil.add(totalDeal,-totalAzShare);//totalJzShare+(totalDeal-(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))));
|
|
|
+ fee.setTotalFee(DoubleUtil.add(totalFee,-totalDeal,totalJzShare,totalAzShare));
|
|
|
+ fee.setAzFee(DoubleUtil.add(totalFee,-totalDeal,totalJzShare,totalAzShare));
|
|
|
+ totalAzShare = DoubleUtil.add(totalDeal,-totalJzShare);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- jz1 = DoubleUtil.sub(jz1,totalJzShare);
|
|
|
- jz2 = DoubleUtil.sub(jz2,totalJzShare);
|
|
|
- az1 = DoubleUtil.sub(az1,totalAzShare);
|
|
|
- az2 = DoubleUtil.sub(az2,totalAzShare);
|
|
|
}
|
|
|
+ jz2 = DoubleUtil.sub(jz1,totalJzShare);
|
|
|
+ az2 = DoubleUtil.sub(az1,totalAzShare);
|
|
|
|
|
|
//诚信扣款
|
|
|
- qtTotal = qtTotal + integrityFee;
|
|
|
- for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
+ qtTotal = DoubleUtil.add(qtTotal,integrityFee);
|
|
|
+ for (JkxlDetailFee fee : oriList) {
|
|
|
//WBS电缆和
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("40000000")){
|
|
|
- jkxlDetailFee.setJzFee(jz2);
|
|
|
- jkxlDetailFee.setAzFee(az2);
|
|
|
- jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ if(fee.getWbsCode().equals("40000000")){
|
|
|
+ fee.setJzFee(jz2);
|
|
|
+ fee.setAzFee(az2);
|
|
|
+ fee.setTotalFee(DoubleUtil.add(jz2,az2,qtTotal));
|
|
|
+ fee.setQtFee(qtTotal);
|
|
|
}
|
|
|
//WBS首层
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("10000000")){
|
|
|
- jkxlDetailFee.setJzFee(jz2);
|
|
|
- jkxlDetailFee.setAzFee(az2);
|
|
|
- jkxlDetailFee.setTotalFee(jz1+az1+qtTotal);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ if(fee.getWbsCode().equals("10000000")){
|
|
|
+ fee.setJzFee(jz2);
|
|
|
+ fee.setAzFee(az2);
|
|
|
+ fee.setTotalFee(DoubleUtil.add(jz2,az2,qtTotal));
|
|
|
+ fee.setQtFee(qtTotal);
|
|
|
}
|
|
|
//WBS电缆建筑
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("49100000")){
|
|
|
- jkxlDetailFee.setTotalFee(jz1);
|
|
|
- jkxlDetailFee.setJzFee(jz2);
|
|
|
+ if(fee.getWbsCode().equals("49100000")){
|
|
|
+ fee.setTotalFee(jz2);
|
|
|
}
|
|
|
//WBS电缆安装
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("49300000")){
|
|
|
- jkxlDetailFee.setTotalFee(az1);
|
|
|
- jkxlDetailFee.setAzFee(az2);
|
|
|
-
|
|
|
+ if(fee.getWbsCode().equals("49300000")){
|
|
|
+ fee.setTotalFee(az2);
|
|
|
}
|
|
|
//WBS电缆本体工程
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("49000000")){
|
|
|
- jkxlDetailFee.setJzFee(jz2);
|
|
|
- jkxlDetailFee.setAzFee(az2);
|
|
|
- jkxlDetailFee.setTotalFee(jz1+az1);
|
|
|
+ if(fee.getWbsCode().equals("49000000")){
|
|
|
+ fee.setJzFee(jz2);
|
|
|
+ fee.setAzFee(az2);
|
|
|
+ fee.setTotalFee(DoubleUtil.add(jz2,az2));
|
|
|
}
|
|
|
//WBS电缆其他费用
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("44000000")){
|
|
|
- jkxlDetailFee.setTotalFee(qtTotal);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ if(fee.getWbsCode().equals("44000000")){
|
|
|
+ fee.setTotalFee(qtTotal);
|
|
|
}
|
|
|
//诚信扣款
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("44260000")){
|
|
|
- jkxlDetailFee.setTotalFee(integrityFee);
|
|
|
- jkxlDetailFee.setQtFee(integrityFee);
|
|
|
+ if(fee.getWbsCode().equals("44260000")){
|
|
|
+ fee.setTotalFee(integrityFee);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
//架空导出
|
|
|
if(type.equals(BashInfo.PROJECT_JKXL)) {
|
|
|
- for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
+ for (JkxlDetailFee fee : oriList) {
|
|
|
+ Double totalFee = fee.getTotalFee();
|
|
|
//本体费用求和
|
|
|
- if (jkxlDetailFee.getFeeType().equals("1")&& jkxlDetailFee.getTotalFee() != null) {
|
|
|
- az1 += jkxlDetailFee.getTotalFee();
|
|
|
+ if (fee.getFeeType().equals("1")) {
|
|
|
+ az1 = DoubleUtil.add(az1,totalFee);
|
|
|
}
|
|
|
//其他费用求和
|
|
|
- if (jkxlDetailFee.getFeeType().equals("0")&& jkxlDetailFee.getTotalFee() != null) {
|
|
|
- qtTotal += jkxlDetailFee.getTotalFee();
|
|
|
+ if (fee.getFeeType().equals("0")) {
|
|
|
+ qtTotal = DoubleUtil.add(qtTotal,totalFee);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//处理税金和甲供材超供抵扣款
|
|
|
if(totalDeal!=0.00){
|
|
|
double totalShare = 0.00;
|
|
|
//根据合计分摊至本体部分
|
|
|
- for(JkxlDetailFee jkxlDetailFee:list){
|
|
|
+ for(JkxlDetailFee jkxlDetailFee:oriList){
|
|
|
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);
|
|
|
}
|
|
|
}
|
|
|
//将分摊后的差额放入第一个分部分项
|
|
|
if(totalDeal!=totalShare){
|
|
|
- for(JkxlDetailFee jkxlDetailFee:list){
|
|
|
+ for(JkxlDetailFee jkxlDetailFee:oriList){
|
|
|
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)));
|
|
|
+ jkxlDetailFee.setTotalFee(DoubleUtil.add(totalFee,-totalDeal,totalShare));//totalFee-(totalDeal-totalShare)
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- az1 = DoubleUtil.sub(az1,totalDeal);
|
|
|
}
|
|
|
-
|
|
|
- qtTotal = qtTotal + integrityFee;
|
|
|
- for (JkxlDetailFee jkxlDetailFee : list) {
|
|
|
+ az2 = DoubleUtil.sub(az1,totalDeal);
|
|
|
+ qtTotal = DoubleUtil.add(qtTotal,integrityFee);
|
|
|
+ for (JkxlDetailFee fee : oriList) {
|
|
|
//WBS架空合计
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("30000000")){
|
|
|
- jkxlDetailFee.setTotalFee(az1+qtTotal);
|
|
|
- jkxlDetailFee.setAzFee(az1);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ if(fee.getWbsCode().equals("30000000")){
|
|
|
+ fee.setTotalFee(DoubleUtil.add(az2,qtTotal));
|
|
|
+ fee.setAzFee(az2);
|
|
|
+ fee.setQtFee(qtTotal);
|
|
|
}
|
|
|
//WBS首层
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("10000000")){
|
|
|
- jkxlDetailFee.setTotalFee(az1+qtTotal);
|
|
|
- jkxlDetailFee.setAzFee(az1);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ if(fee.getWbsCode().equals("10000000")){
|
|
|
+ fee.setTotalFee(DoubleUtil.add(az2,qtTotal));
|
|
|
+ fee.setAzFee(az2);
|
|
|
+ fee.setQtFee(qtTotal);
|
|
|
}
|
|
|
//WBS架空本体工程
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("39000000")){
|
|
|
- jkxlDetailFee.setTotalFee(az1);
|
|
|
- jkxlDetailFee.setAzFee(az1);
|
|
|
+ if(fee.getWbsCode().equals("39000000")){
|
|
|
+ fee.setTotalFee(az2);
|
|
|
}
|
|
|
//WBS架空其他费用
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("34000000")){
|
|
|
- jkxlDetailFee.setTotalFee(qtTotal);
|
|
|
- jkxlDetailFee.setQtFee(qtTotal);
|
|
|
+ if(fee.getWbsCode().equals("34000000")){
|
|
|
+ fee.setTotalFee(qtTotal);
|
|
|
}
|
|
|
//WBS架空诚信扣款
|
|
|
- if(jkxlDetailFee.getWbsCode().equals("34260000")){
|
|
|
- jkxlDetailFee.setTotalFee(integrityFee);
|
|
|
- jkxlDetailFee.setQtFee(integrityFee);
|
|
|
+ if(fee.getWbsCode().equals("34260000")){
|
|
|
+ fee.setTotalFee(integrityFee);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return list;
|
|
|
+
|
|
|
+ // 根据节点编码特征判断 本地节点、其他费用节点的费用类型为“建筑费”、“安装费”或者“其他费用”,并设置金额。除此之外上层节点需单独设置
|
|
|
+ for(JkxlDetailFee fee : oriList){
|
|
|
+ Double totalFee = fee.getTotalFee();
|
|
|
+ //建筑
|
|
|
+ if(fee.getWbsCode().substring(0,2).equals("21") || fee.getWbsCode().substring(0,3).equals("491")){
|
|
|
+ fee.setJzFee(totalFee);
|
|
|
+ }
|
|
|
+ //安装
|
|
|
+ if(fee.getWbsCode().substring(0,2).equals("23") || fee.getWbsCode().substring(0,3).equals("493") || fee.getWbsCode().substring(0,2).equals("39")){
|
|
|
+ fee.setAzFee(totalFee);
|
|
|
+ }
|
|
|
+ //其他费用
|
|
|
+ if(totalFee != null && fee.getFeeType().equals("0")){
|
|
|
+ fee.setQtFee(totalFee);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return oriList;
|
|
|
|
|
|
}
|
|
|
|
|
|
+// /**
|
|
|
+// * 获取导出数据
|
|
|
+// * @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;
|
|
|
+// }
|
|
|
+//
|
|
|
+//// 根据节点编码特征判断阶段费用类型为“建筑费”、“安装费”或者“其他费用”,并设置
|
|
|
+// 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);
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+// 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) {
|
|
|
+// Double totalFee = jkxlDetailFee.getTotalFee();
|
|
|
+// //建筑费和
|
|
|
+// if (jkxlDetailFee.getWbsCode().equals("21000000")) {
|
|
|
+// jz1 = totalFee!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
+// jz2 = jkxlDetailFee.getJzFee()!=null? jkxlDetailFee.getJzFee():0.00;
|
|
|
+// }
|
|
|
+// //安装费和
|
|
|
+// if (jkxlDetailFee.getWbsCode().equals("23000000")) {
|
|
|
+// az1 = totalFee!=null? jkxlDetailFee.getTotalFee():0.00;
|
|
|
+// az2 = jkxlDetailFee.getAzFee()!=null? jkxlDetailFee.getAzFee():0.00;
|
|
|
+// }
|
|
|
+// //其他费用和
|
|
|
+// if (jkxlDetailFee.getFeeType().equals("0")&& totalFee != null) {
|
|
|
+// qtTotal += totalFee;
|
|
|
+// }
|
|
|
+//// wbs简明表示8位,最低层次wbs最后两位为0
|
|
|
+// String six = jkxlDetailFee.getWbsCode().substring(5,6);
|
|
|
+// if(lastShareWbs==null && jkxlDetailFee.getFeeType().equals("1")&&!six.equals("0")&&totalFee!=null&&totalFee!=0.00){
|
|
|
+// lastShareWbs = jkxlDetailFee.getWbsCode();
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+// if(totalDeal!=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&&lastShareWbs!=null){
|
|
|
+// 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&&lastShareWbs!=null){
|
|
|
+// 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));
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// }else if(diff!=0.00&& lastShareWbs==null){
|
|
|
+// if(jz1>0.00){
|
|
|
+// lastShareWbs = "21000000";
|
|
|
+// }else{
|
|
|
+// lastShareWbs = "23000000";
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+// if(lastShareWbs.startsWith("21")){
|
|
|
+// totalJzShare = DoubleUtil.add(totalJzShare,diff);
|
|
|
+// }else{
|
|
|
+// totalAzShare = DoubleUtil.add(totalAzShare,diff);
|
|
|
+// }
|
|
|
+// 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);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //电缆导出
|
|
|
+// 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();
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// //处理税金和甲供材超供抵扣款
|
|
|
+// if(totalDeal!=0.00){
|
|
|
+// 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);
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+// //将分摊后的差额放入第一个分部分项
|
|
|
+// 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);
|
|
|
+// }
|
|
|
+//
|
|
|
+// //诚信扣款
|
|
|
+// 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);
|
|
|
+//
|
|
|
+// }
|
|
|
+// //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);
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+// //架空导出
|
|
|
+// 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();
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// //处理税金和甲供材超供抵扣款
|
|
|
+// if(totalDeal!=0.00){
|
|
|
+// 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);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //将分摊后的差额放入第一个分部分项
|
|
|
+// 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;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// 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;
|
|
|
+//
|
|
|
+// }
|
|
|
+
|
|
|
public JkxlDetailFee getDate(String id, String wbsCode){
|
|
|
return overheadLineMapper.getData(id,wbsCode);
|
|
|
}
|