xs 5 éve
szülő
commit
3adce0ae4e

+ 9 - 4
src/main/java/com/jeeplus/modules/sg/financial/erpcredit/util/ErpInfo.java

@@ -17,6 +17,8 @@ public  class ErpInfo {
 
     public final static String CON_PLPM = "项目法人管理费";
 
+    public final static String CON_PLPM1="法人管理费";
+
     public final static String CON_PMF= "项目管理经费";
 
     public final static String CON_OTR ="其他";
@@ -33,7 +35,8 @@ public  class ErpInfo {
 
     public final static String CON_TSF="变压器";
 
-    public final static String CON_RNB="环网柜";
+    public final static String CON_RNB="环网";
+
 
     public final static String CON_BST="箱式变电站";
 
@@ -60,7 +63,7 @@ public  class ErpInfo {
     public final static String CON_PlPlQ=CON_PROJECT+CON_lINE+CON_PES+CON_lINE+CON_OTR;//工程成本-待摊支出-其他
 
     public final static String CON_PLPLPLQ=CON_PlPlQ+CON_lINE+CON_PES+CON_lINE+CON_PLPM+CON_lINE+CON_OTR;//工程成本-待摊支出-项目法人管理费-其他
-
+    public final static String CON_PLPLPLQ1 = "工程成本-待摊支出-法人管理费-其他";//工程成本-待摊支出-法人管理费-其他
     public final static String CON_PLM=CON_PMF+CON_lINE+CON_METF;//项目管理经费 - 会议费
 
     public static Boolean getContains(Object object,Object object1){
@@ -419,7 +422,8 @@ public  class ErpInfo {
                 //筛选物料描述为空的先筛选(科目名称)中包含(工程成本-待摊支出-其他/工程成本-待摊支出-项目法人管理费-其他/项目管理经费 - 会议费)
                 if (erpAccount.getSubjectName().contains(ErpInfo.CON_PlPlQ)||
                         erpAccount.getSubjectName().contains(ErpInfo.CON_PLPLPLQ)||
-                        erpAccount.getSubjectName().contains(ErpInfo.CON_PLM)){
+                        erpAccount.getSubjectName().contains(ErpInfo.CON_PLM)||
+                        erpAccount.getSubjectName().contains(ErpInfo.CON_PLPLPLQ1)){
                     //判断WBS描述为工程监理费
                     if (erpAccount.getWbsDetails().equals(ErpInfo.CON_PSF)){
                         erpCredit.setOtherSupervisorFee(lineItemAmount);
@@ -447,7 +451,8 @@ public  class ErpInfo {
                 //筛选物料描述为空的先筛选(科目名称)中包含(工程成本-待摊支出-其他/工程成本-待摊支出-项目法人管理费-其他/项目管理经费 - 会议费)
                 if (erpAccount.getSubjectName().contains(ErpInfo.CON_PlPlQ)||
                         erpAccount.getSubjectName().contains(ErpInfo.CON_PLPLPLQ)||
-                        erpAccount.getSubjectName().contains(ErpInfo.CON_PLM)){
+                        erpAccount.getSubjectName().contains(ErpInfo.CON_PLM)||
+                        erpAccount.getSubjectName().contains(ErpInfo.CON_PLPLPLQ1)){
                     //筛选(WBS描述)为工程监理费的行项目金额合计
                     if (erpAccount.getWbsDetails().equals(ErpInfo.CON_PSF)){
                         otherSupervisorFee = erpCredit.getOtherSupervisorFee()+lineItemAmount;//监理费

+ 55 - 52
src/main/java/com/jeeplus/modules/sg/financial/erpcredit/util/ExportUtil1.java

@@ -170,38 +170,17 @@ public class ExportUtil1 {
         //循环erpCredit集合
         schedule.setItemId(erpCredit.getItemId());//得到项目定义编号
         schedule.setItemName(erpCredit.getItemName());//得到项目名称
+        netAmount = getErpCreditMaterial(erpCredit);//得到材料费
+        if (null!=erpCredit.getConsInstallFee()){
+            schedule.setActualIntallProject(decimalFormat.format(netAmount+erpCredit.getConsInstallFee()));
+            actualTotalFee+=netAmount+erpCredit.getConsInstallFee();//合计金额累加
+        }
         if (null!=erpCredit.getConsBuildingFee()){//如果建筑费不为空
             //得到实际建筑工程
-            schedule.setActualBuildProject(decimalFormat.format(erpCredit.getConsBuildingFee()));
+            schedule.setActualBuildProject(decimalFormat.format(erpCredit.getConsBuildingFee()+netAmount));
             actualTotalFee+=erpCredit.getConsBuildingFee();//合计金额加上
         }
-        erpCreditChild2s = erpCredit.getErpCreditChild2s();//得到材料费
-        //判断材料费
-        if (erpCreditChild2s!=null&&erpCreditChild2s.size()>0){//如果材料费不为空
-            for (ErpCreditMaterial erpCreditChild2:erpCreditChild2s){//循环材料费集合
-                if (null!=erpCreditChild2.getMtlBookedFee2()){//如果材料费不为空
-                    netAmount+=erpCreditChild2.getMtlBookedFee2();//得到材料费入账金额
-                    flag = true;
-                }
-            }
-            if (flag){//如果有材料费
-                if (null!=erpCredit.getConsInstallFee()){
-                    schedule.setActualIntallProject(decimalFormat.format(netAmount+erpCredit.getConsInstallFee()));
-                    actualTotalFee+=netAmount+erpCredit.getConsInstallFee();//合计金额累加
-                }else {
-                    schedule.setActualIntallProject(decimalFormat.format(netAmount));
-                    actualTotalFee+=netAmount;//合计金额累加
-                }
-
-            }
-            flag = false;//数据请0
-            netAmount = 0.0;
-        }else {
-            if (null!=erpCredit.getConsInstallFee()){
-                schedule.setActualIntallProject(decimalFormat.format(erpCredit.getConsInstallFee()));
-                actualTotalFee+=erpCredit.getConsInstallFee();//合计金额累加
-            }
-        }
+        netAmount = 0.0;
         erpCreditChild1s = erpCredit.getErpCreditChild1s();//得到设备费
         //判断设备费
         if (null!=erpCreditChild1s&&erpCreditChild1s.size()>0){
@@ -449,7 +428,6 @@ public class ExportUtil1 {
         TransferOfPower1 transferOfPower1 = null;//定义线路对象
         List<ErpCreditEquipment> erpCreditChild1s = null;//定义设备对象
 
-        List<ErpCreditMaterial> erpCreditMaterials = null;//材料费对象
         Double materialTotal = 0.0;//材料费总计
 
 
@@ -465,17 +443,15 @@ public class ExportUtil1 {
         Double standInFeeAll=0.0;//摊入费用合计
         Double powerDeliveredAssetsAll=0.0;//交付知产使用价值合计
         for (ErpCredit erpCredit:erpCredits){//循环erp账户项目
-            materialTotal = 0.0;
+            materialTotal = 0.0;//材料费合计赋予初始值
+            standInFee = 0.0;//摊入费用赋予初始值
+            powerDeliveredAssets=0.0;//交付知产使用加赋予初始值
             erpCreditChild1s = erpCredit.getErpCreditChild1s();//获取设备集合
-
-            erpCreditMaterials = erpCredit.getErpCreditChild2s();//材料费
-//            if (null!=erpCreditMaterials&& erpCreditMaterials.size()>0){
-//                for (ErpCreditMaterial erpCreditMaterial:erpCreditMaterials){
-//                    materialTotal+=erpCreditMaterial.getMtlBookedFee2();
-//                }
-//            }
+            materialTotal = getErpCreditMaterial(erpCredit);//得到材料费合计
             if (null!=erpCreditChild1s&&erpCreditChild1s.size()>=0){
                 eqmNumbers = 0.0;//赋予初始值
+                eqmValue = 0.0;//赋予初始值
+                eqmBookedFee=0.0;//入账金额赋予初始值
                 for (ErpCreditEquipment erpCreditChild11:erpCreditChild1s){//循环设备费
                     if (null!=erpCreditChild11.getEqmNumbers()){//当前项目定义号所有的台数合计
                         eqmNumbers+=erpCreditChild11.getEqmNumbers();
@@ -534,8 +510,10 @@ public class ExportUtil1 {
                 standInFeeAll+=standInFee;//摊入费用合计
             }
             //添加交付使用资产价值
-            transferOfPower1.setPowerDeliveredAssets(decimalFormat.format(powerDeliveredAssets));
-            powerDeliveredAssetsAll+=powerDeliveredAssets;//交付费用合计
+            if (!transferOfPower1.getPowerInstallFee().equals("-")){
+                transferOfPower1.setPowerDeliveredAssets(decimalFormat.format(powerDeliveredAssets));
+                powerDeliveredAssetsAll+=powerDeliveredAssets;//交付费用合计
+            }
             transferOfPower1s.add(transferOfPower1);//添加到集合中
         }
         transferOfPower1 = new TransferOfPower1();
@@ -561,9 +539,13 @@ public class ExportUtil1 {
         List<TransferOfPower2> transferOfPower2s =  new ArrayList<TransferOfPower2>();//得到设备表集合
         List<ErpCreditEquipment> erpCreditChild1s = null;//定义设备 费对象
         TransferOfPower2 transferOfPower2 = null;//定义设备表对象
+
+        Double materialTotal = 0.0;//材料费总计
+
         Double powerValue = 0.0;
         Double eqmNumbers = 0.0;//获取总数量
         Double powerInstallFee = 0.0;//安装费用(线路)
+        Double powerEqmMater=0.0;//物料材料合计
         Double powerStandInFee = 0.0;//摊入费用
         Double powerDeliveredAssets=0.0;//交付使用资产价值
         //合计
@@ -572,10 +554,17 @@ public class ExportUtil1 {
         Double powerStandInFeeAll=0.0;//摊入费用
         Double powerDeliveredAssetsAll=0.0;//交付使用资产价值
         for (ErpCredit erpCredit:erpCredits){
+            //材料费合计
+            materialTotal = getErpCreditMaterial(erpCredit);//得到材料费
+
             erpCreditChild1s = erpCredit.getErpCreditChild1s();//得到设备费集合
+
             //得到安装费用
-            if (null!=erpCredit.getConsInstallFee()){ //安装费(x线路表)
-                powerInstallFee = erpCredit.getConsInstallFee();
+            if (null!=erpCredit.getConsInstallFee()&&erpCredit.getTenKvModel()!=null){ //安装费(x线路表)
+                powerInstallFee = erpCredit.getConsInstallFee()+materialTotal;
+            }
+            if (null!=erpCredit.getConsBuildingFee()&&erpCredit.getTenKvModel()!=null){
+                powerInstallFee = erpCredit.getConsBuildingFee()+materialTotal;//赋值powerInstallfe为建筑费
             }
             if (null!=erpCreditChild1s && erpCreditChild1s.size()>=0){//
                 eqmNumbers = 0.0;//定义台数初始值
@@ -589,10 +578,13 @@ public class ExportUtil1 {
                 }
                 for (ErpCreditEquipment erpCreditChild1:erpCreditChild1s){
                     powerDeliveredAssets=0.0;//交付使用价值初始值
+                    powerEqmMater=0.0;//物料材料合计
+                    powerValue = 0.0;//赋予初始值
+                    powerStandInFee=0.0;//赋予初始值
                     transferOfPower2 = new TransferOfPower2();//定义设备表对象
                     transferOfPower2.setPowerId(erpCredit.getItemId());//赋值项目定义编号
                     transferOfPower2.setPowerName(erpCredit.getItemName());//添加项目名称
-                    transferOfPower2.setPowerArea("-");//线路起始地带
+                    transferOfPower2.setPowerArea("-");//线路起始地带
                     transferOfPower2.setPowerDepartment(ExportUtil1.POWER_DEPARTMENT);//添加保管
                     if (null!=erpCreditChild1.getEqmNumbers()){//得到配变数量(erp账户中设备台数)
                         transferOfPower2.setPowerNumber(decimalFormat1.format(erpCreditChild1.getEqmNumbers()));
@@ -608,14 +600,12 @@ public class ExportUtil1 {
                         if (transferOfPower2.getPowerNumber()!=null&&erpCredit.getTenKvModel()==null){
                             powerValue=erpCreditChild1.getEqmBookedFee1()+eqmNumbers;//价值合计 设备入账金额+安装费
                             transferOfPower2.setPowerValue(decimalFormat.format(powerValue));//赋值设备价值
-                            powerDeliveredAssets +=powerValue;//交付使用价值合计
-                            powerValueAll+=powerValue;//合计//设备价值合计
                         }else {
-                            powerValue=erpCreditChild1.getEqmBookedFee1();//价值合计 设备入账金额+安装费
+                            powerValue=erpCreditChild1.getEqmBookedFee1();//价值合计 设备入账金额
                             transferOfPower2.setPowerValue(decimalFormat.format(powerValue));//赋值设备价值
-                            powerDeliveredAssets +=powerValue;//交付使用价值合计
-                            powerValueAll+=powerValue;//合计//设备价值合计
                         }
+                        powerDeliveredAssets +=powerValue;//交付使用价值合计
+                        powerValueAll+=powerValue;//合计//设备价值合计
                     }else {
                         powerValue=erpCreditChild1.getEqmBookedFee1();
                         transferOfPower2.setPowerValue(decimalFormat.format(powerValue));
@@ -623,15 +613,16 @@ public class ExportUtil1 {
                         powerValueAll+=powerValue;//合计
                     }
                     //计算摊入费用
-                    powerStandInFee = Double.parseDouble(transferOfPower2.getPowerValue())+powerInstallFee;//设备价值加上安装费设备价值
-                    if (erpCredit.getConsBuildingFee()!=null&&!erpCredit.getConsBuildingFee().equals("0")){//如果建筑费不为空
-                        powerStandInFee=Double.parseDouble(transferOfPower2.getPowerValue())/powerStandInFee *erpCredit.getConsBuildingFee();
+                    powerEqmMater = Double.parseDouble(transferOfPower2.getPowerValue())+powerInstallFee;//设备价值加上安装费设备价值
+                    if (erpCredit.getOtherTotalFee()!=null){
+                        powerStandInFee=Double.parseDouble(transferOfPower2.getPowerValue())/powerEqmMater*erpCredit.getOtherTotalFee();
+                    }else {
+                        powerStandInFee =0.0;
                     }
-                    //建筑费为空情况下
-                    powerStandInFee=Double.parseDouble(transferOfPower2.getPowerValue())/powerStandInFee;
                     transferOfPower2.setPowerStandInFee(decimalFormat.format(powerStandInFee));//赋值设备分摊费用
                     powerDeliveredAssets+=powerStandInFee;//交付使用费用累加
                     powerStandInFeeAll+=powerStandInFee;//分摊费用累加
+
                     //添加资产类别
                     if (transferOfPower2.getPowerCapacity().contains(POWER_BDZ)){
                         transferOfPower2.setPowerAssetClass(POWER_BDZCOUNT);
@@ -850,4 +841,16 @@ public class ExportUtil1 {
         mCompletionProject.setCompleted(decimalFormat.format(completed));
         return mCompletionProject;
     }
+
+    //材料费合计
+    public  static Double getErpCreditMaterial(ErpCredit erpCredit){
+        Double materialTotal = 0.0;
+        List<ErpCreditMaterial> erpCreditMaterials = erpCredit.getErpCreditChild2s();//材料费
+        if (null!=erpCreditMaterials&& erpCreditMaterials.size()>0){//得到材料费合计
+            for (ErpCreditMaterial erpCreditMaterial:erpCreditMaterials){
+                materialTotal+=erpCreditMaterial.getMtlBookedFee2();
+            }
+        }
+        return materialTotal;
+    }
 }