|
@@ -0,0 +1,582 @@
|
|
|
|
+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.*;
|
|
|
|
+
|
|
|
|
+public class ExportUtil1 {
|
|
|
|
+ public static String POWER_DEPARTMENT="配电检修工区";
|
|
|
|
+ public static String POWER_BDZ="变电站";
|
|
|
|
+ public static String POWER_BOXBDZ="箱式变电站";
|
|
|
|
+ public static String POWER_HGW="环网柜";
|
|
|
|
+ public static String POWER_KGG="高压开关柜";
|
|
|
|
+ public static String POWER_ZYXL="中压线路";
|
|
|
|
+ public static String POWER_BDZCOUNT="160200001";
|
|
|
|
+ public static String POWER_BOXCOUNT="160200002";
|
|
|
|
+ public static String POWER_HGWCOUNT="160200003";
|
|
|
|
+ public static String POWER_KGGCOUNT="160200010";
|
|
|
|
+
|
|
|
|
+ public static List<Schedule> getScheduleList(List<ErpCredit> erpCreditList,List<MaintainData> maintainDataList){
|
|
|
|
+ List<Schedule> schedules = new ArrayList<Schedule>();
|
|
|
|
+ Schedule schedule = null;
|
|
|
|
+ if (null!=erpCreditList&&erpCreditList.size()>0){
|
|
|
|
+ for (ErpCredit erpCredit:erpCreditList){
|
|
|
|
+ schedule = new Schedule();
|
|
|
|
+ schedule = getActualRelative(schedule,erpCredit,maintainDataList);//得到一览表实际金额
|
|
|
|
+ schedules.add(schedule);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return schedules;
|
|
|
|
+ }
|
|
|
|
+ //一览表 实际较预算增减
|
|
|
|
+ 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()) {
|
|
|
|
+ schedule.setActualTotalFee("0");
|
|
|
|
+ }
|
|
|
|
+ if (null==schedule.getBudgetTotalFee()){
|
|
|
|
+ schedule.setBudgetTotalFee("0");
|
|
|
|
+ }
|
|
|
|
+ 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 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 static Schedule getScheduleActual(Schedule schedule,ErpCredit erpCredit){
|
|
|
|
+ boolean flag = false;
|
|
|
|
+ List<ErpCreditChild2> erpCreditChild2s = null;//得到材料费金额
|
|
|
|
+ List<ErpCreditChild1> erpCreditChild1s = null;//得到设备费金额
|
|
|
|
+ double netAmount=0.0;//入账金额:设备费,材料费
|
|
|
|
+ double actualTotalFee=0.0;//合计金额
|
|
|
|
+ //循环erpCredit集合
|
|
|
|
+ schedule.setItemId(erpCredit.getItemId());//得到项目定义编号
|
|
|
|
+ schedule.setItemName(erpCredit.getItemName());//得到项目名称
|
|
|
|
+ if (null!=erpCredit.getConsBuildingFee()){//如果建筑费不为空
|
|
|
|
+ //得到建筑费
|
|
|
|
+ schedule.setActualBuildProject(String.valueOf(erpCredit.getConsBuildingFee()));
|
|
|
|
+ actualTotalFee+=erpCredit.getConsBuildingFee();
|
|
|
|
+ }
|
|
|
|
+ erpCreditChild2s = erpCredit.getErpCreditChild2s();//得到材料费
|
|
|
|
+ //判断材料费
|
|
|
|
+ if (erpCreditChild2s!=null&&erpCreditChild2s.size()>0){
|
|
|
|
+ for (ErpCreditChild2 erpCreditChild2:erpCreditChild2s){
|
|
|
|
+ if (null!=erpCreditChild2.getMtlBookedFee2()){
|
|
|
|
+ netAmount+=erpCreditChild2.getMtlBookedFee2();//得到材料费入账金额
|
|
|
|
+ flag = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (flag){
|
|
|
|
+ schedule.setActualIntallProject(String.valueOf(netAmount));
|
|
|
|
+ actualTotalFee+=netAmount;
|
|
|
|
+ }
|
|
|
|
+ flag = false;
|
|
|
|
+ netAmount = 0.0;
|
|
|
|
+ }
|
|
|
|
+ erpCreditChild1s = erpCredit.getErpCreditChild1s();//得到设备费
|
|
|
|
+ //判断设备费
|
|
|
|
+ if (null!=erpCreditChild1s&&erpCreditChild1s.size()>0){
|
|
|
|
+ for (ErpCreditChild1 erpCreditChild1:erpCreditChild1s){
|
|
|
|
+ if (null!=erpCreditChild1.getEqmBookedFee1()){
|
|
|
|
+ netAmount+=erpCreditChild1.getEqmBookedFee1();//得到
|
|
|
|
+ flag=true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (flag){
|
|
|
|
+ schedule.setActualEquipmentValue(String.valueOf(netAmount));
|
|
|
|
+ actualTotalFee+=netAmount;
|
|
|
|
+ }
|
|
|
|
+ flag=false;
|
|
|
|
+ netAmount=0.0;
|
|
|
|
+ }
|
|
|
|
+ //得到其他费用合计
|
|
|
|
+ if (null!=erpCredit.getOtherTotalFee()){
|
|
|
|
+ schedule.setActualOtherFee(String.valueOf(erpCredit.getOtherTotalFee()));
|
|
|
|
+ actualTotalFee+=erpCredit.getOtherTotalFee();
|
|
|
|
+ }
|
|
|
|
+ //添加合计金额
|
|
|
|
+ schedule.setActualTotalFee(String.valueOf(actualTotalFee));
|
|
|
|
+ return schedule;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 其他费用明细表
|
|
|
|
+ * @param erpCreditList
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static ScheduleOther getScheduleOfOtherExpenses(List<ErpCredit> erpCreditList,List<MaintainData> maintainDataList){
|
|
|
|
+ ScheduleOther scheduleOther = new ScheduleOther();
|
|
|
|
+ Double requisitionSite=0.0;//建设场地征用及清理费
|
|
|
|
+ Double compensationAcquisition=0.0;//土地征用补偿费
|
|
|
|
+ Double cleaningFees=0.0;//余物清理费
|
|
|
|
+ Double storageFee=0.0;//集中配送物资保管费
|
|
|
|
+ Double compensateFee=0.0;//土地征用补偿费(赔青费)
|
|
|
|
+ Double managementFee=0.0;//项目建设管理费
|
|
|
|
+ Double preWorkingFee=0.0;//项目前期工作费
|
|
|
|
+ Double itemManageFee=0.0;//项目管理经费
|
|
|
|
+ Double theTenderFee=0.0;//招标费
|
|
|
|
+ Double supervisionFee=0.0;//工程监理费
|
|
|
|
+ Double technicalFee=0.0;//项目建设技术服务费
|
|
|
|
+ Double surveyFee=0.0;//工程勘察费
|
|
|
|
+ Double designFee=0.0;//工程设计费
|
|
|
|
+ Double drawingBudgetFee=0.0;//施工图预算编制费
|
|
|
|
+ Double evaluationFee=0.0;//项目后评价费
|
|
|
|
+ Double economicFee=0.0;//技术经济标准变值管理费
|
|
|
|
+ Double inspectionFee=0.0;//工程建设监督检测费
|
|
|
|
+ Double preparationFee=0.0;//生产准备费
|
|
|
|
+ Double basicFee=0.0;//基本预备费
|
|
|
|
+ Double reserveFee=0.0;//资本化利息
|
|
|
|
+ Double totalFee=0.0;//合计
|
|
|
|
+ if (null!=maintainDataList&&maintainDataList.size()>0){
|
|
|
|
+ for (MaintainData maintainData:maintainDataList){
|
|
|
|
+ cleaningFees+=maintainData.getDamages();//清理费
|
|
|
|
+ preWorkingFee+=maintainData.getPreliminaryWorkFee();//项目前期工作费
|
|
|
|
+ }
|
|
|
|
+ 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();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //项目建设技术服务费(暂无)
|
|
|
|
+ technicalFee=surveyFee+economicFee;
|
|
|
|
+ //项目建设管理费
|
|
|
|
+ managementFee=itemManageFee+supervisionFee;
|
|
|
|
+ //建设场地征用费
|
|
|
|
+ requisitionSite=compensationAcquisition+compensateFee;
|
|
|
|
+ //合计
|
|
|
|
+ totalFee=requisitionSite+managementFee+technicalFee+inspectionFee+preparationFee+basicFee+reserveFee;
|
|
|
|
+ scheduleOther.setCompensateFee(String.valueOf(compensateFee));//土地征用补偿费
|
|
|
|
+ scheduleOther.setItemManageFee(String.valueOf(itemManageFee));//项目管理经费
|
|
|
|
+ scheduleOther.setSupervisionFee(String.valueOf(supervisionFee));//工程监理费
|
|
|
|
+ scheduleOther.setDesignFee(String.valueOf(designFee));//工程设计费
|
|
|
|
+ scheduleOther.setReserveFee(String.valueOf(reserveFee));//资本化利息
|
|
|
|
+ scheduleOther.setTechnicalFee(String.valueOf(technicalFee));//项目设计技术服务费
|
|
|
|
+ scheduleOther.setManagementFee(String.valueOf(managementFee));//项目建设管理费
|
|
|
|
+ scheduleOther.setRequisitionSite(String.valueOf(requisitionSite));//建设场地征用费
|
|
|
|
+ scheduleOther.setTotalFee(String.valueOf(totalFee));//合计
|
|
|
|
+ return scheduleOther;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 设备材料清册
|
|
|
|
+ * @param erpCredits
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static List<MaterialEquipment> getMaterialEquipment(List<ErpCredit> erpCredits){
|
|
|
|
+ DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
|
|
|
+ DecimalFormat decimalFormat1 = new DecimalFormat("#0");
|
|
|
|
+ Double count = 0.0;
|
|
|
|
+ List<MaterialEquipment> materialEquipments = new ArrayList<MaterialEquipment>();
|
|
|
|
+ MaterialEquipment materialEquipment = null;
|
|
|
|
+ List<ErpCreditChild1> erpCreditChild1s = null;
|
|
|
|
+ List<ErpCreditChild2> erpCreditChild2s = null;
|
|
|
|
+ for (ErpCredit erpCredit:erpCredits){
|
|
|
|
+ erpCreditChild1s=erpCredit.getErpCreditChild1s();
|
|
|
|
+ erpCreditChild2s=erpCredit.getErpCreditChild2s();
|
|
|
|
+ //设备详情
|
|
|
|
+ if (null!=erpCreditChild1s&&erpCreditChild1s.size()>0){
|
|
|
|
+ for (ErpCreditChild1 erpCreditChild1:erpCreditChild1s){
|
|
|
|
+ count=0.0;
|
|
|
|
+ materialEquipment=new MaterialEquipment();
|
|
|
|
+ materialEquipment.setId(erpCredit.getItemId());
|
|
|
|
+ //物料描述赋值给名称
|
|
|
|
+ materialEquipment.setMeName(erpCreditChild1.getEqmMaterialDetails1());
|
|
|
|
+ //如果供应商不为空,赋值供应商
|
|
|
|
+ if (null!=erpCreditChild1.getEqmSupplierName()){
|
|
|
|
+ materialEquipment.setMeSupplierName(erpCreditChild1.getEqmSupplierName());
|
|
|
|
+ }
|
|
|
|
+ //得到单位
|
|
|
|
+ if (null!=erpCreditChild1.getEqmUnit()){
|
|
|
|
+ materialEquipment.setMeUnit(erpCreditChild1.getEqmUnit());
|
|
|
|
+ }
|
|
|
|
+ //得到数量
|
|
|
|
+ if (null!=erpCreditChild1.getEqmNumbers()){
|
|
|
|
+ materialEquipment.setMeNumber(decimalFormat1.format(erpCreditChild1.getEqmNumbers()));
|
|
|
|
+ }
|
|
|
|
+ //得到合计金额
|
|
|
|
+ if (null!=erpCreditChild1.getEqmBookedFee1()){
|
|
|
|
+ materialEquipment.setMeAllPrice(String.valueOf(erpCreditChild1.getEqmBookedFee1()));
|
|
|
|
+ if (null!=materialEquipment.getMeNumber()){
|
|
|
|
+ count=erpCreditChild1.getEqmBookedFee1()/Double.parseDouble(materialEquipment.getMeNumber());
|
|
|
|
+ materialEquipment.setMeUnitPrice(decimalFormat.format(count));
|
|
|
|
+ }else {
|
|
|
|
+ materialEquipment.setMeUnitPrice(decimalFormat.format(erpCreditChild1.getEqmBookedFee1()));
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ materialEquipment.setMeAllPrice("0");
|
|
|
|
+ }
|
|
|
|
+ materialEquipments.add(materialEquipment);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //材料详情
|
|
|
|
+ if (null!=erpCreditChild2s&&erpCreditChild2s.size()>0){
|
|
|
|
+ for (ErpCreditChild2 erpCreditChild2:erpCreditChild2s){
|
|
|
|
+ count=0.0;
|
|
|
|
+ //得到材料费项目定义好
|
|
|
|
+ materialEquipment.setId(erpCredit.getItemId());
|
|
|
|
+ //得到材料费名称
|
|
|
|
+ materialEquipment.setMeName(erpCreditChild2.getEqmMaterialDetails2());
|
|
|
|
+ //得到供应商
|
|
|
|
+ if (null!=erpCreditChild2.getMtlSupplierName()){
|
|
|
|
+ materialEquipment.setMeSupplierName(erpCreditChild2.getMtlSupplierName());
|
|
|
|
+ }
|
|
|
|
+ //得到单位
|
|
|
|
+ if (null!=erpCreditChild2.getMtlUnit()){
|
|
|
|
+ materialEquipment.setMeUnit(erpCreditChild2.getMtlUnit());
|
|
|
|
+ }
|
|
|
|
+ //得到数量
|
|
|
|
+ if (null!=erpCreditChild2.getMtlNumbers()){
|
|
|
|
+ materialEquipment.setMeNumber(decimalFormat1.format(erpCreditChild2.getMtlNumbers()));
|
|
|
|
+ }
|
|
|
|
+ //得到合计金额
|
|
|
|
+ if (null!=erpCreditChild2.getMtlBookedFee2()){
|
|
|
|
+ materialEquipment.setMeAllPrice(String.valueOf(erpCreditChild2.getMtlBookedFee2()));
|
|
|
|
+ if (null!=materialEquipment.getMeNumber()){
|
|
|
|
+ count=erpCreditChild2.getMtlBookedFee2()/Double.parseDouble(materialEquipment.getMeNumber());
|
|
|
|
+ materialEquipment.setMeUnitPrice(decimalFormat.format(count));
|
|
|
|
+ }else {
|
|
|
|
+ materialEquipment.setMeUnitPrice(decimalFormat.format(erpCreditChild2.getMtlBookedFee2()));
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ materialEquipment.setMeUnit("0");
|
|
|
|
+ }
|
|
|
|
+ materialEquipments.add(materialEquipment);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return materialEquipments;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 移交资产—配电网资产一览表(线路)
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static List<TransferOfPower1> getTransFerPower1(List<ErpCredit> erpCredits){
|
|
|
|
+ DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
|
|
|
+ List<TransferOfPower1> transferOfPower1s = new ArrayList<TransferOfPower1>();
|
|
|
|
+ TransferOfPower1 transferOfPower1 = null;
|
|
|
|
+ List<ErpCreditChild1> erpCreditChild1s = null;
|
|
|
|
+ Double eqmNumbers = 0.0;//获取总数量
|
|
|
|
+ Double eqmValue = 0.0;//相同项目定义号合计
|
|
|
|
+ Double standInFee=0.0;//摊入费用
|
|
|
|
+ Double powerDeliveredAssets=0.0;//交付知产使用价值
|
|
|
|
+ for (ErpCredit erpCredit:erpCredits){
|
|
|
|
+ erpCreditChild1s = erpCredit.getErpCreditChild1s();//获取集合
|
|
|
|
+ if (null!=erpCreditChild1s&&erpCreditChild1s.size()>=0){
|
|
|
|
+ eqmNumbers = 0.0;
|
|
|
|
+ for (ErpCreditChild1 erpCreditChild11:erpCreditChild1s){
|
|
|
|
+ if (null!=erpCreditChild11.getEqmNumbers()){//当前项目定义号所有的台数合计
|
|
|
|
+ eqmNumbers+=erpCreditChild11.getEqmNumbers();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (null!=erpCredit.getConsInstallFee()){//得到分摊后安装费
|
|
|
|
+ eqmNumbers=erpCredit.getConsTotalFee()/eqmNumbers;
|
|
|
|
+ }
|
|
|
|
+ for (ErpCreditChild1 erpCreditChild1:erpCreditChild1s){
|
|
|
|
+ if (null!=erpCredit.getTenKvModel()){//若10KV电缆、架空导线型号为空:得到设备价值
|
|
|
|
+ eqmValue = erpCreditChild1.getEqmBookedFee1()+eqmNumbers+eqmValue;//设备H6的和
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //添加固定数据:线路
|
|
|
|
+ transferOfPower1 = new TransferOfPower1();
|
|
|
|
+ transferOfPower1.setPowerId(erpCredit.getItemId());//添加项目定义号
|
|
|
|
+ transferOfPower1.setPowerName(erpCredit.getItemName());//添加项目名称
|
|
|
|
+ transferOfPower1.setPowerDepartment(ExportUtil1.POWER_DEPARTMENT);//添加保管
|
|
|
|
+ if (null!=erpCredit.getTenKvItsLine()) {//其中 10kv线路 10kv线路长度
|
|
|
|
+ transferOfPower1.setPowerTenKvLineLength(String.valueOf(erpCredit.getTenKvItsLine()));
|
|
|
|
+ }
|
|
|
|
+ if (null!=erpCredit.getTenKvModel()){//10kv电缆架空导线型号
|
|
|
|
+ transferOfPower1.setPowerTenKvCableType(erpCredit.getTenKvModel());
|
|
|
|
+ transferOfPower1.setPowerNumberBars("1");
|
|
|
|
+ transferOfPower1.setPowerAssetClass(POWER_ZYXL);
|
|
|
|
+ }
|
|
|
|
+ if (null!=erpCredit.getConsBuildingFee()){//建筑费
|
|
|
|
+ transferOfPower1.setPowerBuildFee(String.valueOf(erpCredit.getConsBuildingFee()));
|
|
|
|
+ powerDeliveredAssets+=erpCredit.getConsBuildingFee();
|
|
|
|
+ }
|
|
|
|
+ if (null!=erpCredit.getConsInstallFee()){//安装费
|
|
|
|
+ transferOfPower1.setPowerInstallFee(String.valueOf(erpCredit.getConsInstallFee()));
|
|
|
|
+ powerDeliveredAssets+=erpCredit.getConsInstallFee();
|
|
|
|
+ }else {
|
|
|
|
+ transferOfPower1.setPowerInstallFee("0");
|
|
|
|
+ }
|
|
|
|
+ if (transferOfPower1.getPowerInstallFee().equals("0")){//摊入费用
|
|
|
|
+ transferOfPower1.setPowerInstallFee("0");
|
|
|
|
+ }else {
|
|
|
|
+ standInFee = Double.valueOf(transferOfPower1.getPowerInstallFee())/(Double.valueOf(transferOfPower1.getPowerInstallFee())+eqmNumbers);
|
|
|
|
+ transferOfPower1.setPowerStandInFee(decimalFormat.format(standInFee));
|
|
|
|
+ powerDeliveredAssets+=standInFee;
|
|
|
|
+ }
|
|
|
|
+ //添加交付使用资产价值
|
|
|
|
+ transferOfPower1.setPowerDeliveredAssets(decimalFormat.format(powerDeliveredAssets));
|
|
|
|
+ transferOfPower1s.add(transferOfPower1);//添加到集合中
|
|
|
|
+ }
|
|
|
|
+ return transferOfPower1s;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 移交资产—配电网资产一览表(设备)
|
|
|
|
+ * @param erpCredits
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static List<TransferOfPower2> getTransferOfPower2(List<ErpCredit> erpCredits){
|
|
|
|
+ DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
|
|
|
+ DecimalFormat decimalFormat1 = new DecimalFormat("#0");
|
|
|
|
+ List<TransferOfPower2> transferOfPower2s = new ArrayList<TransferOfPower2>();
|
|
|
|
+ List<ErpCreditChild1> erpCreditChild1s = null;
|
|
|
|
+ TransferOfPower2 transferOfPower2 = null;
|
|
|
|
+ Double powerValue = 0.0;
|
|
|
|
+ Double eqmNumbers = 0.0;//获取总数量
|
|
|
|
+ Double powerInstallFee = 0.0;//安装费用(线路)
|
|
|
|
+ Double powerStandInFee = 0.0;//摊入费用
|
|
|
|
+ Double powerDeliveredAssets=0.0;//交付使用资产价值
|
|
|
|
+ for (ErpCredit erpCredit:erpCredits){
|
|
|
|
+ erpCreditChild1s = erpCredit.getErpCreditChild1s();//得到集合
|
|
|
|
+ //得到安装费用
|
|
|
|
+ if (null!=erpCredit.getConsInstallFee()){//安装费
|
|
|
|
+ powerInstallFee = erpCredit.getConsInstallFee();
|
|
|
|
+ }
|
|
|
|
+ if (null!=erpCreditChild1s && erpCreditChild1s.size()>=0){
|
|
|
|
+ eqmNumbers = 0.0;
|
|
|
|
+ for (ErpCreditChild1 erpCreditChild11:erpCreditChild1s){
|
|
|
|
+ if (null!=erpCreditChild11.getEqmNumbers()){//当前项目定义号所有的台数合计
|
|
|
|
+ eqmNumbers+=erpCreditChild11.getEqmNumbers();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (null!=erpCredit.getConsInstallFee()){//得到分摊后安装费
|
|
|
|
+ eqmNumbers=eqmNumbers/erpCredit.getConsTotalFee();
|
|
|
|
+ }
|
|
|
|
+ for (ErpCreditChild1 erpCreditChild1:erpCreditChild1s){
|
|
|
|
+ powerDeliveredAssets=0.0;
|
|
|
|
+ transferOfPower2 = new TransferOfPower2();
|
|
|
|
+ transferOfPower2.setPowerId(erpCredit.getItemId());
|
|
|
|
+ transferOfPower2.setPowerName(erpCredit.getItemName());//添加名称
|
|
|
|
+ transferOfPower2.setPowerDepartment(ExportUtil1.POWER_DEPARTMENT);//添加保管
|
|
|
|
+ if (null!=erpCreditChild1.getEqmNumbers()){//得到配变数量
|
|
|
|
+ transferOfPower2.setPowerNumber(decimalFormat1.format(erpCreditChild1.getEqmNumbers()));
|
|
|
|
+ }
|
|
|
|
+ if (null!=erpCreditChild1.getEqmUnit()){//计量单位
|
|
|
|
+ transferOfPower2.setPowerUnit(erpCreditChild1.getEqmUnit());
|
|
|
|
+ }
|
|
|
|
+ //配电容量
|
|
|
|
+ transferOfPower2.setPowerCapacity(erpCreditChild1.getEqmMaterialDetails1());
|
|
|
|
+ //设备价值
|
|
|
|
+ if (null!=erpCreditChild1.getEqmBookedFee1()){
|
|
|
|
+ powerValue=erpCreditChild1.getEqmBookedFee1()+eqmNumbers;
|
|
|
|
+ transferOfPower2.setPowerValue(decimalFormat.format(powerValue));
|
|
|
|
+ powerDeliveredAssets +=powerValue;
|
|
|
|
+ }else {
|
|
|
|
+ powerValue=erpCreditChild1.getEqmBookedFee1();
|
|
|
|
+ transferOfPower2.setPowerValue(decimalFormat.format(powerValue));
|
|
|
|
+ powerDeliveredAssets+=powerValue;
|
|
|
|
+ }
|
|
|
|
+ //计算摊入费用
|
|
|
|
+ if (erpCredit.getConsBuildingFee()!=null&&erpCredit.getConsBuildingFee()!=0){
|
|
|
|
+ powerStandInFee=Double.parseDouble(transferOfPower2.getPowerValue())/(Double.parseDouble(transferOfPower2.getPowerValue())+powerInstallFee)*erpCredit.getConsBuildingFee();
|
|
|
|
+ transferOfPower2.setPowerStandInFee(decimalFormat.format(powerStandInFee));
|
|
|
|
+ powerDeliveredAssets+=powerStandInFee;
|
|
|
|
+ }else {
|
|
|
|
+ transferOfPower2.setPowerStandInFee("0");
|
|
|
|
+ }
|
|
|
|
+ //添加资产类别
|
|
|
|
+ if (erpCreditChild1.getEqmMaterialDetails1().contains(POWER_BDZ)){
|
|
|
|
+ transferOfPower2.setPowerAssetClass(POWER_BDZCOUNT);
|
|
|
|
+ }
|
|
|
|
+ if (erpCreditChild1.getEqmMaterialDetails1().contains(POWER_BOXBDZ)){
|
|
|
|
+ transferOfPower2.setPowerAssetClass(POWER_BOXCOUNT);
|
|
|
|
+ }
|
|
|
|
+ if (erpCreditChild1.getEqmMaterialDetails1().contains(POWER_HGW)){
|
|
|
|
+ transferOfPower2.setPowerAssetClass(POWER_HGWCOUNT);
|
|
|
|
+ }
|
|
|
|
+ if (erpCreditChild1.getEqmMaterialDetails1().contains(POWER_KGG)){
|
|
|
|
+ transferOfPower2.setPowerAssetClass(POWER_KGGCOUNT);
|
|
|
|
+ }
|
|
|
|
+ transferOfPower2.setPowerDeliveredAssets(decimalFormat.format(powerDeliveredAssets));//交付使用资产价值
|
|
|
|
+ transferOfPower2s.add(transferOfPower2);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return transferOfPower2s;
|
|
|
|
+ }
|
|
|
|
+ //概况表
|
|
|
|
+ public static GeneralSituation getFeneraSituation(List<ErpCredit> erpCredits, List<MaintainData> maintainDataList){
|
|
|
|
+ GeneralSituation generalSituation = new GeneralSituation();
|
|
|
|
+ Double lineLength=0.0;//线路长度
|
|
|
|
+ Double tenKvLength=0.0;//其中:10kv线路
|
|
|
|
+ Double fourKvLength=0.0;//400v及以下
|
|
|
|
+ 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){
|
|
|
|
+ for (ErpCredit erpCredit:erpCredits){
|
|
|
|
+ //如果线路长度不为空
|
|
|
|
+ if (null!=erpCredit.getTenKvLineLength()){
|
|
|
|
+ lineLength+=erpCredit.getTenKvLineLength();//得到线路长度(线路)
|
|
|
|
+ }
|
|
|
|
+ //其中:10kv线路
|
|
|
|
+ if (null!=erpCredit.getTenKvItsLine()){
|
|
|
|
+ tenKvLength+=erpCredit.getTenKvItsLine();
|
|
|
|
+ }
|
|
|
|
+ //400kv
|
|
|
|
+ if (null!=erpCredit.getTenKvItesFhvFollow()){
|
|
|
|
+ fourKvLength+=erpCredit.getTenKvItesFhvFollow();
|
|
|
|
+ }
|
|
|
|
+ //实际投资
|
|
|
|
+ if (null!=erpCredit.getActualInvestment()){
|
|
|
|
+ actualInvestment+=erpCredit.getActualInvestment();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ generalSituation.setLineLength(String.valueOf(lineLength));
|
|
|
|
+ generalSituation.setTenKvLength(String.valueOf(tenKvLength));
|
|
|
|
+ generalSituation.setFourKvLength(String.valueOf(fourKvLength));
|
|
|
|
+ generalSituation.setActualInvestment(String.valueOf(actualInvestment));
|
|
|
|
+ generalSituation.setTransferAssets(String.valueOf(actualInvestment));
|
|
|
|
+ generalSituation.setHasItsOwn(String.valueOf(actualInvestment));
|
|
|
|
+ }
|
|
|
|
+ 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;
|
|
|
|
+ }
|
|
|
|
+ //资产总表
|
|
|
|
+ public static List<TheAssetsTotal> getTheAssetsTotal(List<ErpCredit> erpCredits){
|
|
|
|
+ DecimalFormat decimalFormat = new DecimalFormat("#0.00");
|
|
|
|
+ List<TheAssetsTotal> theAssetsTotals = new ArrayList<TheAssetsTotal>();
|
|
|
|
+ TheAssetsTotal theAssetsTotal1 = new TheAssetsTotal();
|
|
|
|
+ TheAssetsTotal theAssetsTotal2 = new TheAssetsTotal();
|
|
|
|
+ TheAssetsTotal theAssetsTotal3 = new TheAssetsTotal();
|
|
|
|
+ Double buildProject=0.0;//建筑工程
|
|
|
|
+ Double intallProject=0.0;//安装工程费
|
|
|
|
+ Double equipmentValue=0.0;//设备价值
|
|
|
|
+ Double costSharing=0.0;//分摊费用
|
|
|
|
+ Double deliveryCostValue=0.0;//交付使用资产价值
|
|
|
|
+ Double equipmentValue1=0.0;//设备价值
|
|
|
|
+ Double costSharing1=0.0;//分摊费用
|
|
|
|
+ Double deliveryCostValue1=0.0;//交付使用资产价值
|
|
|
|
+ List<TransferOfPower1> transferOfPower1s = getTransFerPower1(erpCredits);
|
|
|
|
+ List<TransferOfPower2> transferOfPower2s = getTransferOfPower2(erpCredits);
|
|
|
|
+ for (TransferOfPower1 transferOfPower1:transferOfPower1s){
|
|
|
|
+ if (null!=transferOfPower1.getPowerBuildFee()){//建筑
|
|
|
|
+ buildProject+=Double.parseDouble(transferOfPower1.getPowerBuildFee());
|
|
|
|
+ }
|
|
|
|
+ if (null!=transferOfPower1.getPowerInstallFee()){
|
|
|
|
+ intallProject+=Double.parseDouble(transferOfPower1.getPowerInstallFee());
|
|
|
|
+ }
|
|
|
|
+ if (null!=transferOfPower1.getPowerStandInFee()){//分摊费用
|
|
|
|
+ costSharing+=Double.parseDouble(transferOfPower1.getPowerStandInFee());
|
|
|
|
+ }
|
|
|
|
+ deliveryCostValue=buildProject+intallProject+costSharing;
|
|
|
|
+ }
|
|
|
|
+ theAssetsTotal1.setBuildProject(decimalFormat.format(buildProject));
|
|
|
|
+ theAssetsTotal1.setIntallProject(decimalFormat.format(intallProject));
|
|
|
|
+ theAssetsTotal1.setCostSharing(decimalFormat.format(costSharing));
|
|
|
|
+ theAssetsTotal1.setDeliveryCostValue(decimalFormat.format(deliveryCostValue));
|
|
|
|
+ for (TransferOfPower2 transferOfPower2:transferOfPower2s){
|
|
|
|
+ if (null!=transferOfPower2.getPowerValue()){//设备价值
|
|
|
|
+ equipmentValue1+=Double.parseDouble(transferOfPower2.getPowerValue());
|
|
|
|
+ }
|
|
|
|
+ if (null!=transferOfPower2.getPowerStandInFee()){
|
|
|
|
+ costSharing1+=Double.parseDouble(transferOfPower2.getPowerStandInFee());
|
|
|
|
+ }
|
|
|
|
+ deliveryCostValue1=equipmentValue1+costSharing1;
|
|
|
|
+ theAssetsTotal2.setEquipmentValue(decimalFormat.format(equipmentValue1));
|
|
|
|
+ theAssetsTotal2.setCostSharing(decimalFormat.format(costSharing1));
|
|
|
|
+ theAssetsTotal2.setDeliveryCostValue(decimalFormat.format(deliveryCostValue1));
|
|
|
|
+ }
|
|
|
|
+ theAssetsTotal3.setBuildProject(decimalFormat.format(buildProject));
|
|
|
|
+ theAssetsTotal3.setIntallProject(decimalFormat.format(intallProject));
|
|
|
|
+ theAssetsTotal3.setEquipmentValue(decimalFormat.format(equipmentValue1));
|
|
|
|
+ theAssetsTotal3.setCostSharing(decimalFormat.format(costSharing+costSharing1));
|
|
|
|
+ theAssetsTotal3.setDeliveryCostValue(decimalFormat.format(deliveryCostValue+deliveryCostValue1));
|
|
|
|
+ theAssetsTotals.add(theAssetsTotal3);
|
|
|
|
+ theAssetsTotals.add(theAssetsTotal1);
|
|
|
|
+ theAssetsTotals.add(theAssetsTotal2);
|
|
|
|
+ return theAssetsTotals;
|
|
|
|
+ }
|
|
|
|
+}
|