|
@@ -3,10 +3,12 @@ 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.text.SimpleDateFormat;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
+import java.util.TreeSet;
|
|
|
|
|
|
/**
|
|
|
* 导出数据计算类
|
|
@@ -30,7 +32,7 @@ public class ExportUtil1 {
|
|
|
* @param maintainDataList
|
|
|
* @return
|
|
|
*/
|
|
|
- public static List<Schedule> getScheduleList(List<ErpCredit> erpCreditList,List<MaintainData> maintainDataList){
|
|
|
+ public static List<Schedule> getScheduleList(List<ErpCredit> erpCreditList, List<MaintainData> maintainDataList){
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
|
|
String itemNameAll="合计";//工程名称
|
|
|
Double budgetBuildProjectAll=0.0;//预算建筑工程
|
|
@@ -110,7 +112,7 @@ public class ExportUtil1 {
|
|
|
return schedules;
|
|
|
}
|
|
|
//一览表 实际较预算增减
|
|
|
- public static Schedule getActualRelative(Schedule schedule,ErpCredit erpCredit,List<MaintainData> maintainDataList){
|
|
|
+ public static Schedule getActualRelative(Schedule schedule, ErpCredit erpCredit, List<MaintainData> maintainDataList){
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
|
|
Schedule scheduleBudget = getScheduleBudget(schedule,erpCredit,maintainDataList);//得到预算合计费用
|
|
|
Schedule scheduleActual = getScheduleActual(scheduleBudget,erpCredit);//得到实际费用
|
|
@@ -137,7 +139,7 @@ public class ExportUtil1 {
|
|
|
return scheduleActual;
|
|
|
}
|
|
|
//获取:一览表 预算价值
|
|
|
- public static Schedule getScheduleBudget(Schedule schedule,ErpCredit erpCredit,List<MaintainData> maintainDataList){
|
|
|
+ public static Schedule getScheduleBudget(Schedule schedule, ErpCredit erpCredit, List<MaintainData> maintainDataList){
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
|
|
if (null!=maintainDataList&&maintainDataList.size()>0){
|
|
|
for (MaintainData maintainData:maintainDataList){
|
|
@@ -162,7 +164,7 @@ public class ExportUtil1 {
|
|
|
//计算一览表合计
|
|
|
|
|
|
//获取:一览表 实际价值
|
|
|
- public static Schedule getScheduleActual(Schedule schedule,ErpCredit erpCredit){
|
|
|
+ public static Schedule getScheduleActual(Schedule schedule, ErpCredit erpCredit){
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
|
|
boolean flag = false;
|
|
|
List<ErpCreditMaterial> erpCreditChild2s = null;//得到材料费金额
|
|
@@ -173,14 +175,14 @@ public class ExportUtil1 {
|
|
|
schedule.setItemId(erpCredit.getItemId());//得到项目定义编号
|
|
|
schedule.setItemName(erpCredit.getItemName());//得到项目名称
|
|
|
netAmount = getErpCreditMaterial(erpCredit);//得到材料费
|
|
|
- if (null!=erpCredit.getConsInstallFee()){
|
|
|
+ if (null!=erpCredit.getConsInstallFee()&&erpCredit.getTenKvModel()!=null){
|
|
|
schedule.setActualIntallProject(decimalFormat.format(netAmount+erpCredit.getConsInstallFee()));
|
|
|
- actualTotalFee+=netAmount+erpCredit.getConsInstallFee();//合计金额累加
|
|
|
+ actualTotalFee=actualTotalFee+netAmount+erpCredit.getConsInstallFee();//合计金额累加
|
|
|
}
|
|
|
if (null!=erpCredit.getConsBuildingFee()){//如果建筑费不为空
|
|
|
//得到实际建筑工程
|
|
|
schedule.setActualBuildProject(decimalFormat.format(erpCredit.getConsBuildingFee()+netAmount));
|
|
|
- actualTotalFee+=erpCredit.getConsBuildingFee();//合计金额加上
|
|
|
+ actualTotalFee+=erpCredit.getConsBuildingFee()+netAmount;//合计金额加上
|
|
|
}
|
|
|
netAmount = 0.0;
|
|
|
erpCreditChild1s = erpCredit.getErpCreditChild1s();//得到设备费
|
|
@@ -193,8 +195,15 @@ public class ExportUtil1 {
|
|
|
}
|
|
|
}
|
|
|
if (flag){
|
|
|
- schedule.setActualEquipmentValue(decimalFormat.format(netAmount));//实际设备价值
|
|
|
- actualTotalFee+=netAmount;//实际费用累加
|
|
|
+ if (null!=erpCredit.getConsInstallFee()){
|
|
|
+ if (null==erpCredit.getTenKvModel()){
|
|
|
+ schedule.setActualEquipmentValue(decimalFormat.format(netAmount+erpCredit.getConsInstallFee()));//实际设备价值
|
|
|
+ actualTotalFee+=netAmount+erpCredit.getConsInstallFee();//实际费用累加
|
|
|
+ }else {
|
|
|
+ schedule.setActualEquipmentValue(decimalFormat.format(netAmount));//实际设备价值
|
|
|
+ actualTotalFee+=netAmount;//实际费用累加
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
flag=false;//数据清0
|
|
|
netAmount=0.0;
|
|
@@ -486,6 +495,9 @@ public class ExportUtil1 {
|
|
|
if (null!=erpCredit.getTenKvModel()){//10kv电缆架空导线型号
|
|
|
transferOfPower1.setPowerTenKvCableType(erpCredit.getTenKvModel());
|
|
|
}
|
|
|
+ if (null!=erpCredit.getCableTube()){
|
|
|
+ transferOfPower1.setPowerTenKvCableType(erpCredit.getCableTube());
|
|
|
+ }
|
|
|
if (null!=erpCredit.getConsBuildingFee()){//建筑费
|
|
|
transferOfPower1.setPowerBuildFee(decimalFormat.format(erpCredit.getConsBuildingFee()+materialTotal));
|
|
|
powerDeliveredAssets+=erpCredit.getConsBuildingFee()+materialTotal;//交付使用资产价值
|
|
@@ -521,7 +533,7 @@ public class ExportUtil1 {
|
|
|
standInFeeAll+=standInFee;//摊入费用合计
|
|
|
}
|
|
|
//添加交付使用资产价值
|
|
|
- if (!transferOfPower1.getPowerInstallFee().equals("-")){
|
|
|
+ if (!transferOfPower1.getPowerInstallFee().equals("-")||null!=transferOfPower1.getPowerBuildFee()){
|
|
|
transferOfPower1.setPowerDeliveredAssets(decimalFormat.format(powerDeliveredAssets));
|
|
|
powerDeliveredAssetsAll+=powerDeliveredAssets;//交付费用合计
|
|
|
}
|
|
@@ -554,7 +566,7 @@ public class ExportUtil1 {
|
|
|
Double materialTotal = 0.0;//材料费总计
|
|
|
|
|
|
Double powerValue = 0.0;
|
|
|
- Double eqmNumbers = 0.0;//获取总数量
|
|
|
+ Double eqmFtIntalls = 0.0;//获取分摊安装费
|
|
|
Double powerInstallFee = 0.0;//安装费用(线路)
|
|
|
Double powerEqmMater=0.0;//物料材料合计
|
|
|
Double powerStandInFee = 0.0;//摊入费用
|
|
@@ -578,16 +590,13 @@ public class ExportUtil1 {
|
|
|
powerInstallFee = erpCredit.getConsBuildingFee()+materialTotal;//赋值powerInstallfe为建筑费
|
|
|
}
|
|
|
if (null!=erpCreditChild1s && erpCreditChild1s.size()>=0){//
|
|
|
- eqmNumbers = 0.0;//定义台数初始值
|
|
|
- for (ErpCreditEquipment erpCreditChild11:erpCreditChild1s){//循环集合
|
|
|
- if (null!=erpCreditChild11.getEqmNumbers()){//当前项目定义号所有的台数合计
|
|
|
- eqmNumbers+=erpCreditChild11.getEqmNumbers();
|
|
|
- }
|
|
|
- }
|
|
|
- if (null!=erpCredit.getConsInstallFee()){//得到分摊后安装费
|
|
|
- eqmNumbers=eqmNumbers/erpCredit.getConsTotalFee();
|
|
|
- }
|
|
|
+// for (ErpCreditEquipment erpCreditChild11:erpCreditChild1s){//循环集合
|
|
|
+// if (null!=erpCreditChild11.getEqmNumbers()){//当前项目定义号所有的台数合计
|
|
|
+// eqmNumbers+=erpCreditChild11.getEqmNumbers();
|
|
|
+// }
|
|
|
+// }
|
|
|
for (ErpCreditEquipment erpCreditChild1:erpCreditChild1s){
|
|
|
+ eqmFtIntalls = 0.0;//定义台数初始值
|
|
|
powerDeliveredAssets=0.0;//交付使用价值初始值
|
|
|
powerEqmMater=0.0;//物料材料合计
|
|
|
powerValue = 0.0;//赋予初始值
|
|
@@ -597,6 +606,10 @@ public class ExportUtil1 {
|
|
|
transferOfPower2.setPowerName(erpCredit.getItemName());//添加项目名称
|
|
|
transferOfPower2.setPowerArea("-");//线路起始地带
|
|
|
transferOfPower2.setPowerDepartment(ExportUtil1.POWER_DEPARTMENT);//添加保管
|
|
|
+ if (null!=erpCredit.getConsInstallFee()&& null != erpCreditChild1.getEqmBookedFee1()){//得到分摊后安装费
|
|
|
+ eqmFtIntalls=erpCredit.getConsTotalFee()/erpCreditChild1.getEqmBookedFee1();
|
|
|
+ eqmFtIntalls = eqmFtIntalls*erpCreditChild1.getEqmBookedFee1();
|
|
|
+ }
|
|
|
if (null!=erpCreditChild1.getEqmNumbers()){//得到配变数量(erp账户中设备台数)
|
|
|
transferOfPower2.setPowerNumber(decimalFormat1.format(erpCreditChild1.getEqmNumbers()));
|
|
|
eqmNumbersAll+=erpCreditChild1.getEqmNumbers();//配电数量合计金额累加
|
|
@@ -608,8 +621,8 @@ public class ExportUtil1 {
|
|
|
transferOfPower2.setPowerCapacity(erpCreditChild1.getEqmMaterialDetails1());
|
|
|
//设备价值
|
|
|
if (null!=erpCreditChild1.getEqmBookedFee1()){//如果入账金额不为空
|
|
|
- if (transferOfPower2.getPowerNumber()!=null&&erpCredit.getTenKvModel()==null){
|
|
|
- powerValue=erpCreditChild1.getEqmBookedFee1()+eqmNumbers;//价值合计 设备入账金额+安装费
|
|
|
+ if (null!=transferOfPower2.getPowerCapacity()&& null == erpCredit.getTenKvModel()){
|
|
|
+ powerValue=erpCreditChild1.getEqmBookedFee1()+eqmFtIntalls;//价值合计 设备入账金额+安装费
|
|
|
transferOfPower2.setPowerValue(decimalFormat.format(powerValue));//赋值设备价值
|
|
|
}else {
|
|
|
powerValue=erpCreditChild1.getEqmBookedFee1();//价值合计 设备入账金额
|
|
@@ -630,9 +643,16 @@ public class ExportUtil1 {
|
|
|
}else {
|
|
|
powerStandInFee =0.0;
|
|
|
}
|
|
|
+ if (null==erpCredit.getTenKvModel()){
|
|
|
+ powerStandInFee = erpCredit.getOtherTotalFee();
|
|
|
+ }
|
|
|
transferOfPower2.setPowerStandInFee(decimalFormat.format(powerStandInFee));//赋值设备分摊费用
|
|
|
- powerDeliveredAssets+=powerStandInFee;//交付使用费用累加
|
|
|
- powerStandInFeeAll+=powerStandInFee;//分摊费用累加
|
|
|
+ if (null!=erpCredit.getConsInstallFee()){
|
|
|
+ powerDeliveredAssets+=powerStandInFee;//交付使用费用累加
|
|
|
+ powerStandInFeeAll+=powerStandInFee;//分摊费用累加W
|
|
|
+ }else {
|
|
|
+ transferOfPower2.setPowerStandInFee("-");//赋值设备分摊费用
|
|
|
+ }
|
|
|
|
|
|
//添加资产类别
|
|
|
if (transferOfPower2.getPowerCapacity().contains(POWER_BDZ)){
|
|
@@ -671,10 +691,10 @@ public class ExportUtil1 {
|
|
|
Double tenKvLength=0.0;//其中:10kv线路
|
|
|
Double fourKvLength=0.0;//400v及以下
|
|
|
List<String> organDataList = new ArrayList<String>();//预算批准机关、日期、文号
|
|
|
- List<Date> commencementDateList =new ArrayList<Date>();//开工日期
|
|
|
+ TreeSet<Date> commencementDateSet =new TreeSet<Date>();//开工日期
|
|
|
+ TreeSet<Date> completionDateSet = new TreeSet<Date>();//竣工时间
|
|
|
Date beforeDate=null;
|
|
|
Date endDate = null;
|
|
|
- List<Date> completionDateList = new ArrayList<Date>();//竣工日期
|
|
|
String organData = "";//文号
|
|
|
Double investmentBudget=0.0;//预算投资
|
|
|
Double actualInvestment=0.0;//实际投资
|
|
@@ -710,10 +730,10 @@ public class ExportUtil1 {
|
|
|
organDataList.add(maintainData.getApprovalNumber());
|
|
|
}
|
|
|
if (null!=maintainData.getStartDate()&&maintainData.getStartDate().toString().length()>0){
|
|
|
- commencementDateList.add(maintainData.getStartDate());
|
|
|
+ commencementDateSet.add(maintainData.getStartDate());
|
|
|
}
|
|
|
if (null!=maintainData.getEndDate()&&maintainData.getEndDate().toString().length()>0){
|
|
|
- completionDateList.add(maintainData.getEndDate());
|
|
|
+ completionDateSet.add(maintainData.getEndDate());
|
|
|
}
|
|
|
investmentBudget+=maintainData.getDesignFee()+maintainData.getSupervisionFee()+maintainData.getPreliminaryWorkFee()
|
|
|
+maintainData.getDamages()+maintainData.getManagementFee()+maintainData.getBuildingFee()+maintainData.getInstallFee()
|
|
@@ -733,29 +753,13 @@ public class ExportUtil1 {
|
|
|
// }
|
|
|
generalSituation.setOrganDataNumber(organDataList.get(1));
|
|
|
}
|
|
|
- if (null!=commencementDateList&&commencementDateList.size()>0){
|
|
|
- for (Date date:commencementDateList){
|
|
|
- beforeDate = date;
|
|
|
- if (beforeDate!=null){
|
|
|
- if (beforeDate.before(date)){
|
|
|
- beforeDate=date;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- generalSituation.setCommencementDate(sdf.format(beforeDate));
|
|
|
- }
|
|
|
- if (null!=completionDateList&&completionDateList.size()>0){
|
|
|
- for (Date date:completionDateList){
|
|
|
- endDate = date;
|
|
|
- if (endDate!=null){
|
|
|
- if (date.before(endDate)){
|
|
|
- endDate=date;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- generalSituation.setCompletionDate(sdf.format(endDate));
|
|
|
+ if (null!=commencementDateSet&&commencementDateSet.size()>0){
|
|
|
+ generalSituation.setCommencementDate(sdf.format(commencementDateSet.first()));
|
|
|
+ }
|
|
|
+ if (null!=completionDateSet&&completionDateSet.size()>0){
|
|
|
+ generalSituation.setCompletionDate(sdf.format(completionDateSet.last()));
|
|
|
}
|
|
|
- generalSituation.setInvestmentBudget(String.valueOf(decimalFormat.format(investmentBudget)));
|
|
|
+ generalSituation.setInvestmentBudget(decimalFormat.format(investmentBudget));
|
|
|
}
|
|
|
return generalSituation;
|
|
|
}
|
|
@@ -805,7 +809,7 @@ public class ExportUtil1 {
|
|
|
costSharing1+=Double.parseDouble(transferOfPower2s.get(i).getPowerStandInFee());
|
|
|
}
|
|
|
if (null!=transferOfPower2s.get(i).getPowerDeliveredAssets()){
|
|
|
- deliveryCostValue1 = Double.parseDouble(transferOfPower2s.get(i).getPowerDeliveredAssets());
|
|
|
+ deliveryCostValue1 += Double.parseDouble(transferOfPower2s.get(i).getPowerDeliveredAssets());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -824,7 +828,7 @@ public class ExportUtil1 {
|
|
|
return theAssetsTotals;
|
|
|
}
|
|
|
//竣 工 工 程 财 务 决 算 表
|
|
|
- public static MCompletionProject getMCompletionProject(List<ErpCredit> erpCredits,List<MaintainData> maintainDataList){
|
|
|
+ public static MCompletionProject getMCompletionProject(List<ErpCredit> erpCredits, List<MaintainData> maintainDataList){
|
|
|
DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
|
|
MCompletionProject mCompletionProject = new MCompletionProject();
|
|
|
Double appropriatedFunds=0.0;//上级拨入资金
|