|
@@ -3,11 +3,9 @@ package com.jeeplus.modules.sg.financial.erpcredit.util;
|
|
|
import com.jeeplus.modules.sg.financial.erpcredit.entity.*;
|
|
|
import com.jeeplus.modules.sg.financial.settlement.entity.MaintainData;
|
|
|
|
|
|
+import javax.xml.crypto.Data;
|
|
|
import java.text.DecimalFormat;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
|
|
|
public class ExportUtil1 {
|
|
|
public static String POWER_DEPARTMENT="配电检修工区";
|
|
@@ -21,39 +19,59 @@ public class ExportUtil1 {
|
|
|
public static String POWER_HGWCOUNT="160200003";
|
|
|
public static String POWER_KGGCOUNT="160200010";
|
|
|
|
|
|
- public List<Schedule> getScheduleList(List<ErpCredit> erpCreditList){
|
|
|
- List<Schedule> schedules = null;
|
|
|
+ public static List<Schedule> getScheduleList(List<ErpCredit> erpCreditList,List<MaintainData> maintainDataList){
|
|
|
+ List<Schedule> schedules = new ArrayList<Schedule>();
|
|
|
Schedule schedule = null;
|
|
|
- for (ErpCredit erpCredit:erpCreditList){
|
|
|
- schedule = new Schedule();
|
|
|
- schedule = getActualRelative(schedule,erpCredit);//得到一览表实际金额
|
|
|
+ if (null!=erpCreditList&&erpCreditList.size()>0){
|
|
|
+ for (ErpCredit erpCredit:erpCreditList){
|
|
|
+ schedule = new Schedule();
|
|
|
+ schedule = getActualRelative(schedule,erpCredit,maintainDataList);//得到一览表实际金额
|
|
|
+ schedules.add(schedule);
|
|
|
+ }
|
|
|
}
|
|
|
return schedules;
|
|
|
}
|
|
|
//一览表 实际较预算增减
|
|
|
- public Schedule getActualRelative(Schedule schedule,ErpCredit erpCredit){
|
|
|
+ public static Schedule getActualRelative(Schedule schedule,ErpCredit erpCredit,List<MaintainData> maintainDataList){
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
|
|
+ schedule = getScheduleBudget(schedule,erpCredit,maintainDataList);
|
|
|
schedule = getScheduleActual(schedule,erpCredit);
|
|
|
double addSubtractionLines = 0.0;
|
|
|
double addSubtractionRate1=0.0;
|
|
|
String addSubtractionRate2="";
|
|
|
- if (null!=schedule.getActualTotalFee()&&null!=schedule.getBudgetTotalFee()){
|
|
|
- addSubtractionLines=Double.parseDouble(schedule.getActualTotalFee())-Double.parseDouble(schedule.getBudgetTotalFee());
|
|
|
- schedule.setAddSubtractionLines(String.valueOf(addSubtractionLines));
|
|
|
+ if (null==schedule.getActualTotalFee()) {
|
|
|
+ schedule.setActualTotalFee("0");
|
|
|
+ }
|
|
|
+ if (null==schedule.getBudgetTotalFee()){
|
|
|
+ schedule.setBudgetTotalFee("0");
|
|
|
}
|
|
|
- if (null!=schedule.getAddSubtractionLines()){
|
|
|
- addSubtractionRate1 = addSubtractionLines/Double.parseDouble(schedule.getBudgetTotalFee());
|
|
|
- addSubtractionRate2 = decimalFormat.format(addSubtractionRate1);
|
|
|
+ addSubtractionLines=Double.parseDouble(schedule.getActualTotalFee())-Double.parseDouble(schedule.getBudgetTotalFee());
|
|
|
+ schedule.setAddSubtractionLines(String.valueOf(addSubtractionLines));
|
|
|
+ if (null==schedule.getBudgetTotalFee()) {
|
|
|
+ schedule.setAddSubtractionLines("1");
|
|
|
}
|
|
|
+ addSubtractionRate1 = addSubtractionLines/Double.parseDouble(schedule.getBudgetTotalFee());
|
|
|
+ addSubtractionRate2 = decimalFormat.format(addSubtractionRate1);
|
|
|
schedule.setAddSubtractionRate(addSubtractionRate2);
|
|
|
return schedule;
|
|
|
}
|
|
|
//获取:一览表 预算价值
|
|
|
- public Schedule getScheduleBudget(Schedule schedule){
|
|
|
+ public static Schedule getScheduleBudget(Schedule schedule,ErpCredit erpCredit,List<MaintainData> maintainDataList){
|
|
|
+ if (null!=maintainDataList&&maintainDataList.size()>0){
|
|
|
+ for (MaintainData maintainData:maintainDataList){
|
|
|
+ //判断id是否一样
|
|
|
+ if (maintainData.getProjectId().equals(erpCredit.getItemId())){
|
|
|
+ schedule.setBudgetBuildProject(String.valueOf(maintainData.getBuildingFee()));//建筑费
|
|
|
+ schedule.setBudgetInstallProject(String.valueOf(maintainData.getInstallFee()+maintainData.getMaterialFee()));
|
|
|
+ schedule.setBudgetEquipmentValue(String.valueOf(maintainData.getEquipmentFee()));//设备购置费
|
|
|
+ schedule.setBudgetTotalFee(String.valueOf(maintainData.getEquipmentFee()+maintainData.getInstallFee()+maintainData.getMaterialFee()+maintainData.getEquipmentFee()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
return schedule;
|
|
|
}
|
|
|
//获取:一览表 实际价值
|
|
|
- public Schedule getScheduleActual(Schedule schedule,ErpCredit erpCredit){
|
|
|
+ public static Schedule getScheduleActual(Schedule schedule,ErpCredit erpCredit){
|
|
|
boolean flag = false;
|
|
|
List<ErpCreditChild2> erpCreditChild2s = null;//得到材料费金额
|
|
|
List<ErpCreditChild1> erpCreditChild1s = null;//得到设备费金额
|
|
@@ -114,7 +132,7 @@ public class ExportUtil1 {
|
|
|
* @param erpCreditList
|
|
|
* @return
|
|
|
*/
|
|
|
- public static ScheduleOther getScheduleOfOtherExpenses(List<ErpCredit> erpCreditList){
|
|
|
+ public static ScheduleOther getScheduleOfOtherExpenses(List<ErpCredit> erpCreditList,List<MaintainData> maintainDataList){
|
|
|
ScheduleOther scheduleOther = new ScheduleOther();
|
|
|
Double requisitionSite=0.0;//建设场地征用及清理费
|
|
|
Double compensationAcquisition=0.0;//土地征用补偿费
|
|
@@ -137,26 +155,36 @@ public class ExportUtil1 {
|
|
|
Double basicFee=0.0;//基本预备费
|
|
|
Double reserveFee=0.0;//资本化利息
|
|
|
Double totalFee=0.0;//合计
|
|
|
- for (ErpCredit erpCredit:erpCreditList){
|
|
|
- //如果线路施工赔偿费不等于空,土地征用补偿费累加
|
|
|
- if (null!=erpCredit.getOtherLineDamages()){
|
|
|
- compensateFee+=erpCredit.getOtherLineDamages();
|
|
|
- }
|
|
|
- //如果法人管理费不为空,则赋值项目管理经费
|
|
|
- if (null!=erpCredit.getOtherLegalManage()){
|
|
|
- itemManageFee=+erpCredit.getOtherLegalManage();
|
|
|
- }
|
|
|
- //如果监理费不为空,则赋值为工程监理费
|
|
|
- if (null!=erpCredit.getOtherSupervisorFee()){
|
|
|
- supervisionFee+=erpCredit.getOtherSupervisorFee();
|
|
|
- }
|
|
|
- //如果设计费不为空,则赋值为工程设计费
|
|
|
- if (null!=erpCredit.getOtherDesignFee()){
|
|
|
- designFee+=erpCredit.getOtherDesignFee();
|
|
|
+ if (null!=maintainDataList&&maintainDataList.size()>0){
|
|
|
+ for (MaintainData maintainData:maintainDataList){
|
|
|
+ cleaningFees+=maintainData.getDamages();//清理费
|
|
|
+ preWorkingFee+=maintainData.getPreliminaryWorkFee();//项目前期工作费
|
|
|
}
|
|
|
- //如果=ERP账生成数据中建设期贷款利息不为空,则累计赋值到资本化利息
|
|
|
- if (null!= erpCredit.getOtherBuildLoan()){
|
|
|
- reserveFee+=erpCredit.getOtherBuildLoan();
|
|
|
+ scheduleOther.setCleaningFees(String.valueOf(cleaningFees));
|
|
|
+ scheduleOther.setPreWorkingFee(String.valueOf(preparationFee));
|
|
|
+ }
|
|
|
+ if (null!=erpCreditList&&erpCreditList.size()>0){
|
|
|
+ for (ErpCredit erpCredit:erpCreditList){
|
|
|
+ //如果线路施工赔偿费不等于空,土地征用补偿费累加
|
|
|
+ if (null!=erpCredit.getOtherLineDamages()){
|
|
|
+ compensateFee+=erpCredit.getOtherLineDamages();
|
|
|
+ }
|
|
|
+ //如果法人管理费不为空,则赋值项目管理经费
|
|
|
+ if (null!=erpCredit.getOtherLegalManage()){
|
|
|
+ itemManageFee=+erpCredit.getOtherLegalManage();
|
|
|
+ }
|
|
|
+ //如果监理费不为空,则赋值为工程监理费
|
|
|
+ if (null!=erpCredit.getOtherSupervisorFee()){
|
|
|
+ supervisionFee+=erpCredit.getOtherSupervisorFee();
|
|
|
+ }
|
|
|
+ //如果设计费不为空,则赋值为工程设计费
|
|
|
+ if (null!=erpCredit.getOtherDesignFee()){
|
|
|
+ designFee+=erpCredit.getOtherDesignFee();
|
|
|
+ }
|
|
|
+ //如果=ERP账生成数据中建设期贷款利息不为空,则累计赋值到资本化利息
|
|
|
+ if (null!= erpCredit.getOtherBuildLoan()){
|
|
|
+ reserveFee+=erpCredit.getOtherBuildLoan();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//项目建设技术服务费(暂无)
|
|
@@ -427,9 +455,10 @@ public class ExportUtil1 {
|
|
|
Double lineLength=0.0;//线路长度
|
|
|
Double tenKvLength=0.0;//其中:10kv线路
|
|
|
Double fourKvLength=0.0;//400v及以下
|
|
|
- String organDataNumber;//预算批准机关、日期、文号
|
|
|
- String commencementDate;//开工日期
|
|
|
- String completionDate;//竣工日期
|
|
|
+ List<String> organDataList = new ArrayList<String>();//预算批准机关、日期、文号
|
|
|
+ List<Date> commencementDateList =new ArrayList<Date>();//开工日期
|
|
|
+ List<Date> completionDateList = new ArrayList<Date>();//竣工日期
|
|
|
+ String organData = "";//文号
|
|
|
Double investmentBudget=0.0;//预算投资
|
|
|
Double actualInvestment=0.0;//实际投资
|
|
|
if (null!=erpCredits&&erpCredits.size()>0){
|
|
@@ -460,8 +489,38 @@ public class ExportUtil1 {
|
|
|
}
|
|
|
if (null!=maintainDataList&&maintainDataList.size()>0){
|
|
|
for (MaintainData maintainData:maintainDataList){
|
|
|
-
|
|
|
+ if (null!=maintainData.getApprovalNumber()){//如果审批文号不为空
|
|
|
+ organDataList.add(maintainData.getApprovalNumber());
|
|
|
+ }
|
|
|
+ if (maintainData.getStartDate().toString()!=null&&maintainData.getStartDate().toString().length()>0){
|
|
|
+ commencementDateList.add(maintainData.getStartDate());
|
|
|
+ }
|
|
|
+ if (null!=maintainData.getEndDate()&&maintainData.getEndDate().toString().length()>0){
|
|
|
+ completionDateList.add(maintainData.getEndDate());
|
|
|
+ }
|
|
|
+ investmentBudget+=maintainData.getTotalFee();
|
|
|
+ }
|
|
|
+ if (null!=organDataList&&organDataList.size()>0){
|
|
|
+ //去重
|
|
|
+ for (int i = 0; i < organDataList.size(); i++) {
|
|
|
+ for (int j = 0; j < organDataList.size(); j++) {
|
|
|
+ if(i!=j&&organDataList.get(i)==organDataList.get(j)) {
|
|
|
+ organDataList.remove(organDataList.get(j));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(String str:organDataList){
|
|
|
+ organData+=str+",";
|
|
|
+ }
|
|
|
+ generalSituation.setOrganDataNumber(organData);
|
|
|
+ }
|
|
|
+ if (null!=commencementDateList&&commencementDateList.size()>0){
|
|
|
+ generalSituation.setCommencementDate(Collections.min(commencementDateList).toString());
|
|
|
+ }
|
|
|
+ if (null!=completionDateList&&completionDateList.size()>0){
|
|
|
+ generalSituation.setCompletionDate(Collections.max(completionDateList).toString());
|
|
|
}
|
|
|
+ generalSituation.setInvestmentBudget(String.valueOf(investmentBudget));
|
|
|
}
|
|
|
return generalSituation;
|
|
|
}
|