Browse Source

Merge remote-tracking branch 'origin/master'

yue 5 years ago
parent
commit
39c79a6e08
20 changed files with 1878 additions and 430 deletions
  1. 2 2
      src/main/java/com/jeeplus/modules/sg/financial/erpcredit/entity/ErpCredit.java
  2. 18 0
      src/main/java/com/jeeplus/modules/sg/financial/erpcredit/entity/MCompletionProject.java
  3. 40 34
      src/main/java/com/jeeplus/modules/sg/financial/erpcredit/service/ErpCreditService.java
  4. 14 4
      src/main/java/com/jeeplus/modules/sg/financial/erpcredit/util/ErpInfo.java
  5. 362 176
      src/main/java/com/jeeplus/modules/sg/financial/erpcredit/util/ExportUtil1.java
  6. 636 173
      src/main/java/com/jeeplus/modules/sg/financial/erpcredit/util/ExportUtil2.java
  7. 8 2
      src/main/java/com/jeeplus/modules/sg/financial/erpcredit/web/ErpCreditController.java
  8. 8 8
      src/main/java/com/jeeplus/modules/sg/financial/project/mapper/xml/ProjectMapper.xml
  9. 3 0
      src/main/java/com/jeeplus/modules/sg/financial/settlement/mapper/xml/DataMaintenanceMapper.xml
  10. 258 17
      src/main/java/com/jeeplus/modules/sg/financial/settlement/service/DataMaintenanceService.java
  11. 36 11
      src/main/java/com/jeeplus/modules/sg/financial/settlement/util/ExcelWriter.java
  12. 5 1
      src/main/java/com/jeeplus/modules/sg/financial/settlement/web/DataMaintenanceController.java
  13. BIN
      src/main/resources/freemarker/excelmodel/maintainDataExport.xlsx
  14. BIN
      src/main/resources/freemarker/excelmodel/maintainDataImport.xlsx
  15. BIN
      src/main/resources/freemarker/excelmodel/竣工决算模板.xlsx
  16. 61 0
      src/main/webapp/static/plugin/bootstrapTable/bootstrap-table-resizable.js
  17. 415 0
      src/main/webapp/static/plugin/bootstrapTable/colResizable-1.6.js
  18. 1 0
      src/main/webapp/webpage/modules/sg/financial/project/projectList.js
  19. 8 1
      src/main/webapp/webpage/modules/sg/financial/settlement/dataMaintenanceList.js
  20. 3 1
      src/main/webapp/webpage/modules/sg/financial/settlement/dataMaintenanceList.jsp

+ 2 - 2
src/main/java/com/jeeplus/modules/sg/financial/erpcredit/entity/ErpCredit.java

@@ -27,8 +27,8 @@ public class ErpCredit extends DataEntity<ErpCredit>{
     private String tenKvModel;//架空导线型号
     private String tenKvUnit;//10kv线路信息单位
     private Double tenKvLength;//10kv线路信息长度
-    private Double tenKvLineLength;//10kv线路长度
-    private Double tenKvItsLine;//10kv线路
+    private Double tenKvLineLength;//10kv线路长度km
+    private Double tenKvItsLine;//10kv线路其中
     private Double tenKvItesFhvFollow;//400v以下
     private String supplierName;//供应商名称
     private String status;//状态

+ 18 - 0
src/main/java/com/jeeplus/modules/sg/financial/erpcredit/entity/MCompletionProject.java

@@ -4,9 +4,27 @@ package com.jeeplus.modules.sg.financial.erpcredit.entity;
  * 竣 工 工 程 财 务 决 算 表
  */
 public class MCompletionProject {
+    private String transferAssets;//移交资产合计
     private String appropriatedFunds;//上级拨入资金
     private String vatDeduction;//、抵扣增值税
     private String fixedAssets;//交付使用固定资产
+    private String completed;//含税投资完成
+
+    public String getCompleted() {
+        return completed;
+    }
+
+    public void setCompleted(String completed) {
+        this.completed = completed;
+    }
+
+    public String getTransferAssets() {
+        return transferAssets;
+    }
+
+    public void setTransferAssets(String transferAssets) {
+        this.transferAssets = transferAssets;
+    }
 
     public String getAppropriatedFunds() {
         return appropriatedFunds;

+ 40 - 34
src/main/java/com/jeeplus/modules/sg/financial/erpcredit/service/ErpCreditService.java

@@ -52,8 +52,14 @@ public class ErpCreditService extends CrudService<ErpCreditMapper,ErpCredit> {
     @Autowired
     private DataMaintenanceService dataMaintenanceService;
 
-    public List<ErpCredit> getListErpCredit(List<String> itemId){
-        List<ErpCredit> erpCreditList = erpCreditMapper.findErpCreditList(itemId);
+    public List<ErpCredit> getListErpCredit(List<String> itemId,String status){
+        List<ErpCredit> erpCreditList = new ArrayList<ErpCredit>();
+        List<ErpCredit> erpCredits = erpCreditMapper.findErpCreditList(itemId);
+        for (ErpCredit erpCredit:erpCredits){
+            if (erpCredit.getStatus().equals(status)){
+                erpCreditList.add(erpCredit);
+            }
+        }
         List<String> strings = new ArrayList<String>();
         for (ErpCredit erpCredit:erpCreditList){
             strings.add(erpCredit.getId());
@@ -158,13 +164,13 @@ public class ErpCreditService extends CrudService<ErpCreditMapper,ErpCredit> {
     }
 
     //导出
-    public void getExport(String ids, HttpServletResponse response){
+    public void getExport(String ids, HttpServletResponse response,String status){
         String[] strings = ids.split(",");
         List<String> strs = new ArrayList<String>();
         for (String str:strings){
             strs.add(str);
         }
-        List<ErpCredit> erpCreditList = getListErpCredit(strs);
+        List<ErpCredit> erpCreditList = getListErpCredit(strs,status);
         List<MaintainData> maintainDatas = getFindListMain(strs);
         ExportTemplate exportTemplate = new ExportTemplate();
         File newFile = exportTemplate.createNewFile();
@@ -172,46 +178,46 @@ public class ErpCreditService extends CrudService<ErpCreditMapper,ErpCredit> {
         InputStream inputStream = null;
         XSSFWorkbook workbook = null;
         XSSFFont font=null;
-        XSSFSheet sheet1 = null;
-        XSSFSheet sheet2 = null;
-        XSSFSheet sheet3 = null;
-        XSSFSheet sheet5 = null;
-        XSSFSheet sheet4 = null;
-        XSSFSheet sheet6=null;
-        XSSFSheet sheet7=null;
-        XSSFSheet sheet8=null;
-        XSSFSheet sheet10=null;
-        XSSFSheet sheet11=null;
+        XSSFSheet sheetOverView = null;
+        XSSFSheet sheetView = null;
+        XSSFSheet sheetOtherFee = null;//定义其他费用明细表费用
+        XSSFSheet sheetAssetsTotal= null;//资产总表
+        XSSFSheet sheetLine1 = null;//移交生产总值一览表
+        XSSFSheet sheetEquip=null;//移交总值设备表
+        XSSFSheet sheetEquipMaterial=null;//设备材料费用
+        XSSFSheet sheetSettlement=null;//结算表
+        XSSFSheet sheetLine2=null;//线路2
+        XSSFSheet sheetEquip2=null;//设备2
         try {
             inputStream = new FileInputStream(newFile);// 将excel文件转为输入流
             workbook = new XSSFWorkbook(inputStream);// 创建个workbook,
             font = workbook.createFont();
-            sheet1 =workbook.getSheetAt(1);
-            sheet2 = workbook.getSheetAt(2);
-            sheet3 = workbook.getSheetAt(3);
-            sheet4 = workbook.getSheetAt(4);
-            sheet5=workbook.getSheetAt(5);
-            sheet6=workbook.getSheetAt(6);
-            sheet7=workbook.getSheetAt(7);
-            sheet8=workbook.getSheetAt(8);
-            sheet10=workbook.getSheetAt(10);
-            sheet11=workbook.getSheetAt(11);
+            sheetOverView =workbook.getSheetAt(0);//概述表
+            sheetView = workbook.getSheetAt(1);//定义一览表
+            sheetOtherFee = workbook.getSheetAt(2);//其他费用表
+            sheetAssetsTotal = workbook.getSheetAt(3);//移交生产总值
+            sheetLine1=workbook.getSheetAt(4);//线路1
+            sheetEquip=workbook.getSheetAt(5);//设备1
+            sheetEquipMaterial=workbook.getSheetAt(6);//设备材料清单表
+            sheetSettlement=workbook.getSheetAt(7);//结算表
+            sheetLine2=workbook.getSheetAt(9);//线路2
+            sheetEquip2=workbook.getSheetAt(10);//设备2
         } catch (Exception e1) {
             e1.printStackTrace();
         }
         try {
             // 写数据
             FileOutputStream fos = new FileOutputStream(newFile);
-            ExportUtil2.getSheet1(sheet1,erpCreditList,maintainDatas);
-            ExportUtil2.getSheet2(sheet2,erpCreditList,maintainDatas);
-            ExportUtil2.getSheet3(sheet3,erpCreditList,maintainDatas);
-            ExportUtil2.getSheet4(sheet4,erpCreditList);
-            ExportUtil2.getSheet5(sheet5,erpCreditList,workbook);
-            ExportUtil2.getSheet6(sheet6,erpCreditList,workbook);
-            ExportUtil2.getSheet7(sheet7,erpCreditList);
-            ExportUtil2.getSheet8(sheet8,erpCreditList,maintainDatas);
-            ExportUtil2.getSheet10(sheet10,erpCreditList,workbook);
-            ExportUtil2.getSheet11(sheet11,erpCreditList,workbook);
+            ExportUtil2.getSheetOverView(sheetOverView,erpCreditList,maintainDatas);
+            ExportUtil2.getSheetView(sheetView,erpCreditList,maintainDatas,workbook);//调用一览表写入方法
+            ExportUtil2.getSheetOtherFee(sheetOtherFee,erpCreditList,maintainDatas);
+            ExportUtil2.getSheetAssetsTotal(sheetAssetsTotal,erpCreditList);
+            ExportUtil2.getSheetLine1(sheetLine1,erpCreditList,workbook);
+            ExportUtil2.getSheetEquip(sheetEquip,erpCreditList,workbook);
+            ExportUtil2.getSheetEquipMaterial(sheetEquipMaterial,erpCreditList,workbook);
+            ExportUtil2.getSheetSettlement(sheetSettlement,erpCreditList,maintainDatas);
+            ExportUtil2.getSheetLine2(sheetLine2,erpCreditList,workbook);
+            ExportUtil2.getSheetEquip2(sheetEquip2,erpCreditList,workbook);
             workbook.write(fos);
             fos.flush();
             fos.close();

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

@@ -180,6 +180,7 @@ public  class ErpInfo {
                         erpCredit = getActualAndConstruction(erpCredit,erpAccount,flag);
                         erpCredit=getOtherFee(erpCredit,erpAccount,flag);
                         erpCredit=getTenKvLineInformation(erpCredit,erpAccount,flag);
+                        erpCredit = getFourHundredInformation(erpCredit,erpAccount,flag);
                         break;
                     }
                 }
@@ -194,10 +195,19 @@ public  class ErpInfo {
                 erpCredit = getTenKvLineInformation(erpCredit,erpAccount,flag);
                 erpCredits.add(erpCredit);
             }
+            if (null!=erpCredit.getTenKvItesFhvFollow()&&null!=erpCredit.getTenKvItsLine()){
+                erpCredit.setTenKvLineLength(erpCredit.getTenKvItesFhvFollow()+erpCredit.getTenKvItsLine());
+            }else {
+                if (null!=erpCredit.getTenKvItesFhvFollow()){
+                    erpCredit.setTenKvLineLength(erpCredit.getTenKvItesFhvFollow());
+                }
+                if (null!=erpCredit.getTenKvItsLine()){
+                    erpCredit.setTenKvLineLength(erpCredit.getTenKvItsLine());
+                }
+            }
         }
         return erpCredits;
     }
-
     /**
      * 400
      * @param erpCredit
@@ -294,13 +304,13 @@ public  class ErpInfo {
 //                erpCredit.setTenKvUnit(erpAccount.getUnit());//单位
 //                erpCredit.setSupplierName(erpAccount.getSupplierName());//公司
 //            }
-            erpCredit.setTenKvModel(materialDetails);
+            erpCredit.setTenKvModel(materialDetails);//10kv电缆架空型号
             erpCredit.setTenKvUnit(erpAccount.getUnit());//单位
             erpCredit.setSupplierName(erpAccount.getSupplierName());//公司
-            if (null!=erpCredit.getTenKvLength()){
+            if (null!=erpCredit.getTenKvLength()){//10kv线路信息长度
                 tenKvLength=erpCredit.getTenKvLength()+tenKvLength;
             }
-            if (null!=erpCredit.getTenKvItsLine()){
+            if (null!=erpCredit.getTenKvItsLine()){////10kv线路
                 tenKvItsLine=erpCredit.getTenKvItsLine()+tenKvItsLine;
             }
             //添加长度

+ 362 - 176
src/main/java/com/jeeplus/modules/sg/financial/erpcredit/util/ExportUtil1.java

@@ -8,9 +8,12 @@ import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
+/**
+ * 导出数据计算类
+ */
 public class ExportUtil1 {
     public static String POWER_DEPARTMENT="配电检修工区";
-    public static String POWER_BDZ="变电站";
+    public static String POWER_BDZ="变压器";
     public static String POWER_BOXBDZ="箱式变电站";
     public static String POWER_HGW="环网柜";
     public static String POWER_KGG="高压开关柜";
@@ -21,7 +24,28 @@ public class ExportUtil1 {
     public static String POWER_KGGCOUNT="160200010";
     public static String POWER_HJ="合计";
 
+    /**
+     * 一览表汇总
+     * @param erpCreditList
+     * @param maintainDataList
+     * @return
+     */
     public static List<Schedule> getScheduleList(List<ErpCredit> erpCreditList,List<MaintainData> maintainDataList){
+        DecimalFormat decimalFormat   = new DecimalFormat("#0.00");
+        String itemNameAll="合计";//工程名称
+        Double budgetBuildProjectAll=0.0;//预算建筑工程
+        Double budgetInstallProjectAll=0.0;//预算安装工程
+        Double budgetEquipmentValueAll=0.0;//预算设备价值
+        Double budgetOtherFeeAll=0.0;//预算其他费用
+        Double budgetTotalFeeAll=0.0;//预算合计金额
+        Double actualBuildProjectAll=0.0;//实际金额建筑工程
+        Double actualIntallProjectAll=0.0;//实际安装工程
+        Double actualEquipmentValueAll=0.0;//实际设备价值
+        Double actualOtherFeeAll=0.0;//实际其他费用
+        Double actualTotalFeeAll=0.0;//实际合计
+        Double addSubtractionLinesAll=0.0;//增加额
+        Double addSubtractionRateAll=0.0;//增加率
+        Schedule scheduletotal = new Schedule();
         List<Schedule> schedules = new ArrayList<Schedule>();
         Schedule schedule = null;
         if (null!=erpCreditList&&erpCreditList.size()>0){
@@ -31,49 +55,113 @@ public class ExportUtil1 {
                 schedules.add(schedule);
             }
         }
+        for (Schedule s:schedules){
+            if (null!=s.getBudgetBuildProject()){
+                budgetBuildProjectAll+=Double.parseDouble(s.getBudgetBuildProject());
+                scheduletotal.setBudgetBuildProject(decimalFormat.format(budgetBuildProjectAll));
+            }
+            if (null!=s.getBudgetTotalFee()){
+                budgetInstallProjectAll+=Double.parseDouble(s.getBudgetTotalFee());
+                scheduletotal.setBudgetInstallProject(decimalFormat.format(budgetInstallProjectAll));
+            }
+            if (null!=s.getBudgetEquipmentValue()){
+                budgetEquipmentValueAll+=Double.parseDouble(s.getBudgetEquipmentValue());
+                scheduletotal.setBudgetEquipmentValue(decimalFormat.format(budgetEquipmentValueAll));
+            }
+            if (null!=s.getBudgetOtherFee()){
+                budgetOtherFeeAll+=Double.parseDouble(s.getBudgetOtherFee());
+                scheduletotal.setBudgetOtherFee(decimalFormat.format(budgetOtherFeeAll));
+            }
+            if (null!=s.getBudgetTotalFee()){
+                budgetTotalFeeAll+=Double.parseDouble(s.getBudgetTotalFee());
+                scheduletotal.setBudgetTotalFee(decimalFormat.format(budgetTotalFeeAll));
+            }
+            if (null!=s.getActualBuildProject()){
+                actualBuildProjectAll+=Double.parseDouble(s.getActualBuildProject());
+                scheduletotal.setActualBuildProject(decimalFormat.format(actualBuildProjectAll));
+            }
+            if (null!=s.getActualIntallProject()){
+                actualIntallProjectAll+=Double.parseDouble(s.getActualIntallProject());
+                scheduletotal.setActualIntallProject(decimalFormat.format(actualIntallProjectAll));
+            }
+            if (null!=s.getActualEquipmentValue()){
+                actualEquipmentValueAll+=Double.parseDouble(s.getActualEquipmentValue());
+                scheduletotal.setActualEquipmentValue(decimalFormat.format(actualEquipmentValueAll));
+            }
+            if (null!=s.getActualOtherFee()){
+                actualOtherFeeAll+=Double.parseDouble(s.getActualOtherFee());
+                scheduletotal.setActualOtherFee(decimalFormat.format(actualOtherFeeAll));
+            }
+            if (null!=s.getActualTotalFee()){
+                actualTotalFeeAll+=Double.parseDouble(s.getActualTotalFee());
+                scheduletotal.setActualTotalFee(decimalFormat.format(actualTotalFeeAll));
+            }
+            if (null!=s.getAddSubtractionLines()){
+                addSubtractionLinesAll+=Double.parseDouble(s.getAddSubtractionLines());
+                scheduletotal.setAddSubtractionLines(decimalFormat.format(addSubtractionLinesAll));
+            }
+            if (null!=s.getAddSubtractionRate()){
+                addSubtractionRateAll+=Double.parseDouble(s.getAddSubtractionRate());
+                scheduletotal.setAddSubtractionRate(decimalFormat.format(addSubtractionRateAll));
+            }
+        }
+        scheduletotal.setItemName(itemNameAll);
+        schedules.add(scheduletotal);
         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="";
+        Schedule scheduleBudget = getScheduleBudget(schedule,erpCredit,maintainDataList);//得到预算合计费用
+        Schedule scheduleActual = getScheduleActual(scheduleBudget,erpCredit);//得到实际费用
+        double addSubtractionLines = 0.0;//增加额
+        double addSubtractionRate1=0.0;//增减去率
+        //判断为空的条件
+        //如果实际合计金额为空 赋予初始值为0
         if (null==schedule.getActualTotalFee()) {
             schedule.setActualTotalFee("0");
         }
+        //如果预算合计金额为空,赋予初始值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(decimalFormat.format(addSubtractionLines));//添加入郑家率
+        if (null==schedule.getBudgetTotalFee()) {//如果预算价值为空,赋初始值为1;
             schedule.setAddSubtractionLines("1");
         }
-        addSubtractionRate1 = addSubtractionLines/Double.parseDouble(schedule.getBudgetTotalFee());
-        addSubtractionRate2 = decimalFormat.format(addSubtractionRate1);
-        schedule.setAddSubtractionRate(addSubtractionRate2);
-        return schedule;
+        //计算增减率
+        addSubtractionRate1 = addSubtractionLines/Double.parseDouble(schedule.getBudgetTotalFee())*100;
+        schedule.setAddSubtractionRate(decimalFormat.format(addSubtractionRate1));
+        return scheduleActual;
     }
     //获取:一览表 预算价值
     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){
                 //判断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()));
+                    schedule.setBudgetBuildProject(decimalFormat.format(maintainData.getBuildingFee()));//建筑费
+                    //安装供材 = 安装费+主材费
+                    schedule.setBudgetInstallProject(decimalFormat.format(maintainData.getInstallFee()+maintainData.getMaterialFee()));
+                    schedule.setBudgetEquipmentValue(decimalFormat.format(maintainData.getEquipmentFee()));//设备购置费
+                    //其他费用合计
+                    schedule.setBudgetOtherFee(decimalFormat.format(maintainData.getTotalFee()));
+                    //预算合计费用
+                    schedule.setBudgetTotalFee(decimalFormat.format(maintainData.getBuildingFee()+maintainData.getInstallFee()
+                            +maintainData.getMaterialFee()+maintainData.getEquipmentFee()+maintainData.getTotalFee()));
                 }
             }
         }
         return schedule;
     }
+    //计算一览表合计
+
     //获取:一览表 实际价值
     public static Schedule getScheduleActual(Schedule schedule,ErpCredit erpCredit){
+        DecimalFormat decimalFormat   = new DecimalFormat("#0.00");
         boolean flag = false;
         List<ErpCreditMaterial> erpCreditChild2s = null;//得到材料费金额
         List<ErpCreditEquipment> erpCreditChild1s = null;//得到设备费金额
@@ -83,98 +171,100 @@ public class ExportUtil1 {
         schedule.setItemId(erpCredit.getItemId());//得到项目定义编号
         schedule.setItemName(erpCredit.getItemName());//得到项目名称
         if (null!=erpCredit.getConsBuildingFee()){//如果建筑费不为空
-            //得到建筑费
-            schedule.setActualBuildProject(String.valueOf(erpCredit.getConsBuildingFee()));
-            actualTotalFee+=erpCredit.getConsBuildingFee();
+            //得到实际建筑工程
+            schedule.setActualBuildProject(decimalFormat.format(erpCredit.getConsBuildingFee()));
+            actualTotalFee+=erpCredit.getConsBuildingFee();//合计金额加上
         }
         erpCreditChild2s = erpCredit.getErpCreditChild2s();//得到材料费
         //判断材料费
-        if (erpCreditChild2s!=null&&erpCreditChild2s.size()>0){
-            for (ErpCreditMaterial erpCreditChild2:erpCreditChild2s){
-                if (null!=erpCreditChild2.getMtlBookedFee2()){
+        if (erpCreditChild2s!=null&&erpCreditChild2s.size()>0){//如果材料费不为空
+            for (ErpCreditMaterial erpCreditChild2:erpCreditChild2s){//循环材料费集合
+                if (null!=erpCreditChild2.getMtlBookedFee2()){//如果材料费不为空
                     netAmount+=erpCreditChild2.getMtlBookedFee2();//得到材料费入账金额
                     flag = true;
                 }
             }
-            if (flag){
-                schedule.setActualIntallProject(String.valueOf(netAmount));
-                actualTotalFee+=netAmount;
+            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;
+            flag = false;//数据请0
             netAmount = 0.0;
+        }else {
+            if (null!=erpCredit.getConsInstallFee()){
+                schedule.setActualIntallProject(decimalFormat.format(erpCredit.getConsInstallFee()));
+                actualTotalFee+=erpCredit.getConsInstallFee();//合计金额累加
+            }
         }
         erpCreditChild1s = erpCredit.getErpCreditChild1s();//得到设备费
         //判断设备费
         if (null!=erpCreditChild1s&&erpCreditChild1s.size()>0){
             for (ErpCreditEquipment erpCreditChild1:erpCreditChild1s){
                 if (null!=erpCreditChild1.getEqmBookedFee1()){
-                    netAmount+=erpCreditChild1.getEqmBookedFee1();//得到
+                    netAmount+=erpCreditChild1.getEqmBookedFee1();//得到设备费累加(设备价值)
                     flag=true;
                 }
             }
             if (flag){
-                schedule.setActualEquipmentValue(String.valueOf(netAmount));
-                actualTotalFee+=netAmount;
+                schedule.setActualEquipmentValue(decimalFormat.format(netAmount));//实际设备价值
+                actualTotalFee+=netAmount;//实际费用累加
             }
-            flag=false;
+            flag=false;//数据清0
             netAmount=0.0;
         }
         //得到其他费用合计
-        if (null!=erpCredit.getOtherTotalFee()){
-            schedule.setActualOtherFee(String.valueOf(erpCredit.getOtherTotalFee()));
-            actualTotalFee+=erpCredit.getOtherTotalFee();
+        if (null!=erpCredit.getOtherTotalFee()){//得到其他费用
+            schedule.setActualOtherFee(decimalFormat.format(erpCredit.getOtherTotalFee()));
+            actualTotalFee+=erpCredit.getOtherTotalFee();//合计金额累加
         }
         //添加合计金额
-        schedule.setActualTotalFee(String.valueOf(actualTotalFee));
+        schedule.setActualTotalFee(decimalFormat.format(actualTotalFee));//写入合计金额
         return schedule;
     }
 
     /**
-     * 其他费用明细表
+     * 其他费用明细表 实际费用
      * @param erpCreditList
      * @return
      */
-    public static ScheduleOther getScheduleOfOtherExpenses(List<ErpCredit> erpCreditList,List<MaintainData> maintainDataList){
+    public static ScheduleOther getScheduleOfOtherExpenses(List<ErpCredit> erpCreditList){
         DecimalFormat decimalFormat   = new DecimalFormat("#0.00");
         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(decimalFormat.format(cleaningFees));
-            scheduleOther.setPreWorkingFee(decimalFormat.format(preparationFee));
-        }
         if (null!=erpCreditList&&erpCreditList.size()>0){
             for (ErpCredit erpCredit:erpCreditList){
                 //如果线路施工赔偿费不等于空,土地征用补偿费累加
                 if (null!=erpCredit.getOtherLineDamages()){
-                    compensateFee+=erpCredit.getOtherLineDamages();
+                    compensateFee+=erpCredit.getOtherLineDamages();//赔青费
+                }
+                //前期工作费合计
+                if (null!=erpCredit.getOtherBeWorkFee()){
+                    preWorkingFee+=erpCredit.getOtherBeWorkFee();
                 }
                 //如果法人管理费不为空,则赋值项目管理经费
                 if (null!=erpCredit.getOtherLegalManage()){
-                    itemManageFee=+erpCredit.getOtherLegalManage();
+                    itemManageFee+=erpCredit.getOtherLegalManage();//项目管理经费
                 }
                 //如果监理费不为空,则赋值为工程监理费
                 if (null!=erpCredit.getOtherSupervisorFee()){
@@ -193,11 +283,11 @@ public class ExportUtil1 {
         //项目建设技术服务费(暂无)
         technicalFee=surveyFee+economicFee;
         //项目建设管理费
-        managementFee=itemManageFee+supervisionFee;
+        managementFee=itemManageFee+supervisionFee+preWorkingFee;
         //建设场地征用费
         requisitionSite=compensationAcquisition+compensateFee;
         //合计
-        totalFee=requisitionSite+managementFee+technicalFee+inspectionFee+preparationFee+basicFee+reserveFee;
+        totalFee=requisitionSite+managementFee+technicalFee+inspectionFee+preparationFee+basicFee+reserveFee+preWorkingFee;
         scheduleOther.setCompensateFee(decimalFormat.format(compensateFee));//土地征用补偿费
         scheduleOther.setItemManageFee(decimalFormat.format(itemManageFee));//项目管理经费
         scheduleOther.setSupervisionFee(decimalFormat.format(supervisionFee));//工程监理费
@@ -209,6 +299,54 @@ public class ExportUtil1 {
         scheduleOther.setTotalFee(decimalFormat.format(totalFee));//合计
         return scheduleOther;
     }
+    /**
+     * 其他费用明细表 预算费用
+     * @param
+     * @return
+     */
+    public static ScheduleOther getScheduleOfOtherExpensesReg(List<MaintainData> maintainDataList){
+        DecimalFormat decimalFormat   = new DecimalFormat("#0.00");
+        Double requisitionSite=0.0;//建设场地征用及清理费
+        ScheduleOther scheduleOther = new ScheduleOther();
+        Double  cleaningFees=0.0;//余物清理费
+        Double  managementFee=0.0;//项目建设管理费
+        Double  preWorkingFee=0.0;//项目前期工作费
+        Double  itemManageFee=0.0;//项目管理经费
+        Double  supervisionFee=0.0;//工程监理费
+        Double  designFee=0.0;//工程设计费
+        Double  preparationFee=0.0;//生产准备费
+        Double compensateFee=0.0;//土地征用补偿费(赔青费)
+        Double  totalFee=0.0;//合计
+        if (null!=maintainDataList&&maintainDataList.size()>0){
+            for (MaintainData maintainData:maintainDataList){
+                compensateFee+=maintainData.getDamages();
+                cleaningFees+=maintainData.getDamages();//清理费
+                preWorkingFee+=maintainData.getPreliminaryWorkFee();//项目前期工作费
+                itemManageFee+=maintainData.getMaterialFee();//法人管理经费
+                supervisionFee+=maintainData.getSupervisionFee();//监理费
+                designFee+=maintainData.getDesignFee();//工程设计费
+            }
+            //项目建设管理费
+            managementFee = preWorkingFee+itemManageFee+supervisionFee;
+            //合计金额
+            totalFee=preWorkingFee+itemManageFee+supervisionFee+designFee;
+            scheduleOther.setPreWorkingFee(decimalFormat.format(preparationFee));//项目前期工作费合计
+            scheduleOther.setItemManageFee(decimalFormat.format(itemManageFee));//法人管理经费
+//            scheduleOther.setCleaningFees(decimalFormat.format(cleaningFees));//余物清理费
+            scheduleOther.setSupervisionFee(decimalFormat.format(supervisionFee));//工程监理费
+            scheduleOther.setDesignFee(decimalFormat.format(designFee));//工程设计费合计
+            scheduleOther.setPreWorkingFee(decimalFormat.format(preparationFee));
+            //合计金额
+            scheduleOther.setTotalFee(decimalFormat.format(totalFee));//合计金额
+            scheduleOther.setCompensateFee(decimalFormat.format(compensateFee));//赔青
+            //项目建设管理费
+            scheduleOther.setManagementFee(decimalFormat.format(managementFee));
+            //工程建设服务费
+            scheduleOther.setTechnicalFee(decimalFormat.format(designFee));
+            scheduleOther.setRequisitionSite(decimalFormat.format(compensateFee));//建设场地征用及清理费
+        }
+        return scheduleOther;
+    }
 
     /**
      * 设备材料清册
@@ -224,14 +362,14 @@ public class ExportUtil1 {
         List<ErpCreditEquipment> erpCreditChild1s = null;
         List<ErpCreditMaterial> erpCreditChild2s = null;
         for (ErpCredit erpCredit:erpCredits){
-            erpCreditChild1s=erpCredit.getErpCreditChild1s();
-            erpCreditChild2s=erpCredit.getErpCreditChild2s();
+            erpCreditChild1s=erpCredit.getErpCreditChild1s();//获取设备费描述
+            erpCreditChild2s=erpCredit.getErpCreditChild2s();//获取材料表描述
             //设备详情
             if (null!=erpCreditChild1s&&erpCreditChild1s.size()>0){
                 for (ErpCreditEquipment erpCreditChild1:erpCreditChild1s){
                     count=0.0;
                     materialEquipment=new MaterialEquipment();
-                    materialEquipment.setId(erpCredit.getItemId());
+                    materialEquipment.setId(erpCredit.getItemId());//得到项目id
                     //物料描述赋值给名称
                     materialEquipment.setMeName(erpCreditChild1.getEqmMaterialDetails1());
                     //如果供应商不为空,赋值供应商
@@ -244,7 +382,7 @@ public class ExportUtil1 {
                     }
                     //得到数量
                     if (null!=erpCreditChild1.getEqmNumbers()){
-                        materialEquipment.setMeNumber(decimalFormat1.format(erpCreditChild1.getEqmNumbers()));
+                        materialEquipment.setMeNumber(String.valueOf(erpCreditChild1.getEqmNumbers()));
                     }
                     //得到合计金额
                     if (null!=erpCreditChild1.getEqmBookedFee1()){
@@ -280,7 +418,7 @@ public class ExportUtil1 {
                     }
                     //得到数量
                     if (null!=erpCreditChild2.getMtlNumbers()){
-                        materialEquipment.setMeNumber(decimalFormat1.format(erpCreditChild2.getMtlNumbers()));
+                        materialEquipment.setMeNumber(String.valueOf(erpCreditChild2.getMtlNumbers()));
                     }
                     //得到合计金额
                     if (null!=erpCreditChild2.getMtlBookedFee2()){
@@ -307,10 +445,16 @@ public class ExportUtil1 {
      */
     public static List<TransferOfPower1> getTransFerPower1(List<ErpCredit> erpCredits){
         DecimalFormat decimalFormat   = new DecimalFormat("#0.00");
-        List<TransferOfPower1> transferOfPower1s = new ArrayList<TransferOfPower1>();
-        TransferOfPower1 transferOfPower1 = null;
-        List<ErpCreditEquipment> erpCreditChild1s = null;
-        Double eqmNumbers = 0.0;//获取总数量
+        List<TransferOfPower1> transferOfPower1s = new ArrayList<TransferOfPower1>();//创建一个线路集合
+        TransferOfPower1 transferOfPower1 = null;//定义线路对象
+        List<ErpCreditEquipment> erpCreditChild1s = null;//定义设备对象
+
+        List<ErpCreditMaterial> erpCreditMaterials = null;//材料费对象
+        Double materialTotal = 0.0;//材料费总计
+
+
+        Double eqmNumbers = 0.0;//总容量 //分摊后安装费
+        Double eqmBookedFee=0.0;//设备入账金额
         Double eqmValue = 0.0;//相同项目定义号合计
         Double standInFee=0.0;//摊入费用
         Double powerDeliveredAssets=0.0;//交付知产使用价值
@@ -320,57 +464,74 @@ public class ExportUtil1 {
         Double installFeeAll=0.0;//安装费用合计
         Double standInFeeAll=0.0;//摊入费用合计
         Double powerDeliveredAssetsAll=0.0;//交付知产使用价值合计
-        for (ErpCredit erpCredit:erpCredits){
-            erpCreditChild1s = erpCredit.getErpCreditChild1s();//获取集合
+        for (ErpCredit erpCredit:erpCredits){//循环erp账户项目
+            materialTotal = 0.0;
+            erpCreditChild1s = erpCredit.getErpCreditChild1s();//获取设备集合
+
+            erpCreditMaterials = erpCredit.getErpCreditChild2s();//材料费
+//            if (null!=erpCreditMaterials&& erpCreditMaterials.size()>0){
+//                for (ErpCreditMaterial erpCreditMaterial:erpCreditMaterials){
+//                    materialTotal+=erpCreditMaterial.getMtlBookedFee2();
+//                }
+//            }
             if (null!=erpCreditChild1s&&erpCreditChild1s.size()>=0){
-                eqmNumbers = 0.0;
-                for (ErpCreditEquipment erpCreditChild11:erpCreditChild1s){
+                eqmNumbers = 0.0;//赋予初始值
+                for (ErpCreditEquipment erpCreditChild11:erpCreditChild1s){//循环设备费
                     if (null!=erpCreditChild11.getEqmNumbers()){//当前项目定义号所有的台数合计
                         eqmNumbers+=erpCreditChild11.getEqmNumbers();
                     }
+                    if (null!=erpCreditChild11.getEqmBookedFee1()){
+                        eqmBookedFee+=erpCreditChild11.getEqmBookedFee1();//设备入账金额
+                    }
                 }
                 if (null!=erpCredit.getConsInstallFee()){//得到分摊后安装费
                     eqmNumbers=erpCredit.getConsTotalFee()/eqmNumbers;
                 }
-                for (ErpCreditEquipment erpCreditChild1:erpCreditChild1s){
-                    if (null!=erpCredit.getTenKvModel()){//若10KV电缆、架空导线型号为空:得到设备价值
-                        eqmValue = erpCreditChild1.getEqmBookedFee1()+eqmNumbers+eqmValue;//设备H6的和
-                    }
+                if (null==erpCredit.getTenKvModel()||erpCredit.getTenKvModel()==""){//若10KV电缆、架空导线型号为空:得到设备价值
+                    eqmValue = eqmBookedFee + eqmNumbers + eqmValue;//设备H6的和
+                }else {
+                    eqmValue = eqmBookedFee;
                 }
             }
             //添加固定数据:线路
-            transferOfPower1  = new TransferOfPower1();
+            transferOfPower1  = new TransferOfPower1();//得到线路集合
             transferOfPower1.setPowerId(erpCredit.getItemId());//添加项目定义号
             transferOfPower1.setPowerName(erpCredit.getItemName());//添加项目名称
+            transferOfPower1.setPowerArea("-");//添加其实地点和所在第
+            transferOfPower1.setPowerNumberBars("1");
+            transferOfPower1.setPowerAssetClass(POWER_ZYXL);//中亚线路
             transferOfPower1.setPowerDepartment(ExportUtil1.POWER_DEPARTMENT);//添加保管
             if (null!=erpCredit.getTenKvItsLine()) {//其中 10kv线路 10kv线路长度
-                transferOfPower1.setPowerTenKvLineLength(String.valueOf(erpCredit.getTenKvItsLine()));
-                powerTenKvLineLengthAll+=erpCredit.getTenKvItsLine();
+                transferOfPower1.setPowerTenKvLineLength(decimalFormat.format(erpCredit.getTenKvItsLine()));//添加10kv线路
+                powerTenKvLineLengthAll+=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();
-                buildFeeAll+=erpCredit.getConsBuildingFee();//建筑费用合计
-            }
-            if (null!=erpCredit.getConsInstallFee()){//安装费
-                transferOfPower1.setPowerInstallFee(String.valueOf(erpCredit.getConsInstallFee()));
-                powerDeliveredAssets+=erpCredit.getConsInstallFee();
-                installFeeAll+=erpCredit.getConsInstallFee();//建筑费用合计
+                transferOfPower1.setPowerBuildFee(decimalFormat.format(erpCredit.getConsBuildingFee()+materialTotal));
+                powerDeliveredAssets+=erpCredit.getConsBuildingFee()+materialTotal;//交付使用资产价值
+                buildFeeAll+=erpCredit.getConsBuildingFee()+materialTotal;//建筑费用合计
+            }
+            if (null!=erpCredit.getConsInstallFee()&&erpCredit.getTenKvModel()!=null){//安装费
+                transferOfPower1.setPowerInstallFee(decimalFormat.format(erpCredit.getConsInstallFee()+materialTotal));//添加安装费
+                powerDeliveredAssets+=erpCredit.getConsInstallFee()+materialTotal;//交付使用资产价值
+                installFeeAll+=erpCredit.getConsInstallFee()+materialTotal;//建筑费用合计
             }else {
-                transferOfPower1.setPowerInstallFee("0");
+                transferOfPower1.setPowerInstallFee("-");
             }
-            if (transferOfPower1.getPowerInstallFee().equals("0")){//摊入费用
-                transferOfPower1.setPowerInstallFee("0");
+            if (transferOfPower1.getPowerInstallFee().equals("-")){//摊入费用
+                transferOfPower1.setPowerStandInFee("-");
             }else {
-                standInFee = Double.valueOf(transferOfPower1.getPowerInstallFee())/(Double.valueOf(transferOfPower1.getPowerInstallFee())+eqmNumbers);
-                transferOfPower1.setPowerStandInFee(decimalFormat.format(standInFee));
-                powerDeliveredAssets+=standInFee;
-                standInFeeAll+=standInFee;
+                //摊入费用
+                standInFee = Double.valueOf(transferOfPower1.getPowerInstallFee())+eqmValue;
+                standInFee = Double.valueOf(transferOfPower1.getPowerInstallFee())/standInFee;
+                if (erpCredit.getOtherTotalFee()!=null){
+                    standInFee = standInFee*erpCredit.getOtherTotalFee();//乘其他费用合计
+                }
+                transferOfPower1.setPowerStandInFee(decimalFormat.format(standInFee));//添加摊入费用
+                powerDeliveredAssets+=standInFee;//交付使用资产价值
+                standInFeeAll+=standInFee;//摊入费用合计
             }
             //添加交付使用资产价值
             transferOfPower1.setPowerDeliveredAssets(decimalFormat.format(powerDeliveredAssets));
@@ -378,6 +539,7 @@ public class ExportUtil1 {
             transferOfPower1s.add(transferOfPower1);//添加到集合中
         }
         transferOfPower1 = new TransferOfPower1();
+        //添加 合计金额
         transferOfPower1.setPowerName(POWER_HJ);
         transferOfPower1.setPowerTenKvLineLength(decimalFormat.format(powerTenKvLineLengthAll));
         transferOfPower1.setPowerBuildFee(decimalFormat.format(buildFeeAll));
@@ -396,9 +558,9 @@ public class ExportUtil1 {
     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<ErpCreditEquipment> erpCreditChild1s = null;
-        TransferOfPower2 transferOfPower2 = null;
+        List<TransferOfPower2> transferOfPower2s =  new ArrayList<TransferOfPower2>();//得到设备表集合
+        List<ErpCreditEquipment> erpCreditChild1s = null;//定义设备 费对象
+        TransferOfPower2 transferOfPower2 = null;//定义设备表对象
         Double powerValue = 0.0;
         Double eqmNumbers = 0.0;//获取总数量
         Double powerInstallFee = 0.0;//安装费用(线路)
@@ -410,14 +572,14 @@ public class ExportUtil1 {
         Double powerStandInFeeAll=0.0;//摊入费用
         Double powerDeliveredAssetsAll=0.0;//交付使用资产价值
         for (ErpCredit erpCredit:erpCredits){
-            erpCreditChild1s = erpCredit.getErpCreditChild1s();//得到集合
+            erpCreditChild1s = erpCredit.getErpCreditChild1s();//得到设备费集合
             //得到安装费用
-            if (null!=erpCredit.getConsInstallFee()){//安装费
+            if (null!=erpCredit.getConsInstallFee()){ //安装费(x线路表)
                 powerInstallFee = erpCredit.getConsInstallFee();
             }
-            if (null!=erpCreditChild1s && erpCreditChild1s.size()>=0){
-                eqmNumbers = 0.0;
-                for (ErpCreditEquipment erpCreditChild11:erpCreditChild1s){
+            if (null!=erpCreditChild1s && erpCreditChild1s.size()>=0){//
+                eqmNumbers = 0.0;//定义台数初始值
+                for (ErpCreditEquipment erpCreditChild11:erpCreditChild1s){//循环集合
                     if (null!=erpCreditChild11.getEqmNumbers()){//当前项目定义号所有的台数合计
                         eqmNumbers+=erpCreditChild11.getEqmNumbers();
                     }
@@ -426,14 +588,15 @@ public class ExportUtil1 {
                     eqmNumbers=eqmNumbers/erpCredit.getConsTotalFee();
                 }
                 for (ErpCreditEquipment erpCreditChild1:erpCreditChild1s){
-                    powerDeliveredAssets=0.0;
-                    transferOfPower2 = new TransferOfPower2();
-                    transferOfPower2.setPowerId(erpCredit.getItemId());
-                    transferOfPower2.setPowerName(erpCredit.getItemName());//添加名称
+                    powerDeliveredAssets=0.0;//交付使用价值初始值
+                    transferOfPower2 = new TransferOfPower2();//定义设备表对象
+                    transferOfPower2.setPowerId(erpCredit.getItemId());//赋值项目定义编号
+                    transferOfPower2.setPowerName(erpCredit.getItemName());//添加项目名称
+                    transferOfPower2.setPowerArea("-");//线路起始地带你
                     transferOfPower2.setPowerDepartment(ExportUtil1.POWER_DEPARTMENT);//添加保管
-                    if (null!=erpCreditChild1.getEqmNumbers()){//得到配变数量
+                    if (null!=erpCreditChild1.getEqmNumbers()){//得到配变数量(erp账户中设备台数)
                         transferOfPower2.setPowerNumber(decimalFormat1.format(erpCreditChild1.getEqmNumbers()));
-                        eqmNumbersAll+=erpCreditChild1.getEqmNumbers();
+                        eqmNumbersAll+=erpCreditChild1.getEqmNumbers();//配电数量合计金额累加
                     }
                     if (null!=erpCreditChild1.getEqmUnit()){//计量单位
                         transferOfPower2.setPowerUnit(erpCreditChild1.getEqmUnit());
@@ -441,11 +604,18 @@ public class ExportUtil1 {
                     //配电容量
                     transferOfPower2.setPowerCapacity(erpCreditChild1.getEqmMaterialDetails1());
                     //设备价值
-                    if (null!=erpCreditChild1.getEqmBookedFee1()){
-                        powerValue=erpCreditChild1.getEqmBookedFee1()+eqmNumbers;
-                        transferOfPower2.setPowerValue(decimalFormat.format(powerValue));
-                        powerDeliveredAssets +=powerValue;
-                        powerValueAll+=powerValue;//合计
+                    if (null!=erpCreditChild1.getEqmBookedFee1()){//如果入账金额不为空
+                        if (transferOfPower2.getPowerNumber()!=null&&erpCredit.getTenKvModel()==null){
+                            powerValue=erpCreditChild1.getEqmBookedFee1()+eqmNumbers;//价值合计 设备入账金额+安装费
+                            transferOfPower2.setPowerValue(decimalFormat.format(powerValue));//赋值设备价值
+                            powerDeliveredAssets +=powerValue;//交付使用价值合计
+                            powerValueAll+=powerValue;//合计//设备价值合计
+                        }else {
+                            powerValue=erpCreditChild1.getEqmBookedFee1();//价值合计 设备入账金额+安装费
+                            transferOfPower2.setPowerValue(decimalFormat.format(powerValue));//赋值设备价值
+                            powerDeliveredAssets +=powerValue;//交付使用价值合计
+                            powerValueAll+=powerValue;//合计//设备价值合计
+                        }
                     }else {
                         powerValue=erpCreditChild1.getEqmBookedFee1();
                         transferOfPower2.setPowerValue(decimalFormat.format(powerValue));
@@ -453,25 +623,26 @@ public class ExportUtil1 {
                         powerValueAll+=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;
-                        powerStandInFeeAll+=powerStandInFee;
-                    }else {
-                        transferOfPower2.setPowerStandInFee("0");
+                    powerStandInFee = Double.parseDouble(transferOfPower2.getPowerValue())+powerInstallFee;//设备价值加上安装费设备价值
+                    if (erpCredit.getConsBuildingFee()!=null&&!erpCredit.getConsBuildingFee().equals("0")){//如果建筑费不为空
+                        powerStandInFee=Double.parseDouble(transferOfPower2.getPowerValue())/powerStandInFee *erpCredit.getConsBuildingFee();
                     }
+                    //建筑费为空情况下
+                    powerStandInFee=Double.parseDouble(transferOfPower2.getPowerValue())/powerStandInFee;
+                    transferOfPower2.setPowerStandInFee(decimalFormat.format(powerStandInFee));//赋值设备分摊费用
+                    powerDeliveredAssets+=powerStandInFee;//交付使用费用累加
+                    powerStandInFeeAll+=powerStandInFee;//分摊费用累加
                     //添加资产类别
-                    if (erpCreditChild1.getEqmMaterialDetails1().contains(POWER_BDZ)){
+                    if (transferOfPower2.getPowerCapacity().contains(POWER_BDZ)){
                         transferOfPower2.setPowerAssetClass(POWER_BDZCOUNT);
                     }
-                    if (erpCreditChild1.getEqmMaterialDetails1().contains(POWER_BOXBDZ)){
+                    if (transferOfPower2.getPowerCapacity().contains(POWER_BOXBDZ)){
                         transferOfPower2.setPowerAssetClass(POWER_BOXCOUNT);
                     }
-                    if (erpCreditChild1.getEqmMaterialDetails1().contains(POWER_HGW)){
+                    if (transferOfPower2.getPowerCapacity().contains(POWER_HGW)){
                         transferOfPower2.setPowerAssetClass(POWER_HGWCOUNT);
                     }
-                    if (erpCreditChild1.getEqmMaterialDetails1().contains(POWER_KGG)){
+                    if (transferOfPower2.getPowerCapacity().contains(POWER_KGG)){
                         transferOfPower2.setPowerAssetClass(POWER_KGGCOUNT);
                     }
                     transferOfPower2.setPowerDeliveredAssets(decimalFormat.format(powerDeliveredAssets));//交付使用资产价值
@@ -482,16 +653,17 @@ public class ExportUtil1 {
         }
         transferOfPower2 = new TransferOfPower2();
         transferOfPower2.setPowerName(POWER_HJ);
-        transferOfPower2.setPowerNumber(decimalFormat1.format(eqmNumbersAll));//配电数量
-        transferOfPower2.setPowerValue(decimalFormat.format(powerValueAll));//计量价值
-        transferOfPower2.setPowerStandInFee(decimalFormat.format(powerStandInFeeAll));//摊入费用
-        transferOfPower2.setPowerDeliveredAssets(decimalFormat.format(powerDeliveredAssetsAll));//交付使用资产价值
+        transferOfPower2.setPowerNumber(decimalFormat1.format(eqmNumbersAll));//配电数量合计
+        transferOfPower2.setPowerValue(decimalFormat.format(powerValueAll));//计量价值合计
+        transferOfPower2.setPowerStandInFee(decimalFormat.format(powerStandInFeeAll));//摊入费用合计
+        transferOfPower2.setPowerDeliveredAssets(decimalFormat.format(powerDeliveredAssetsAll));//交付使用资产价值合计
         transferOfPower2s.add(transferOfPower2);
         return transferOfPower2s;
     }
     //概况表
     public static GeneralSituation getFeneraSituation(List<ErpCredit> erpCredits, List<MaintainData> maintainDataList){
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        DecimalFormat decimalFormat   = new DecimalFormat("#0.00");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
         GeneralSituation generalSituation = new GeneralSituation();
         Double lineLength=0.0;//线路长度
         Double tenKvLength=0.0;//其中:10kv线路
@@ -523,19 +695,19 @@ public class ExportUtil1 {
                     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));
+            generalSituation.setLineLength(decimalFormat.format(lineLength));
+            generalSituation.setTenKvLength(decimalFormat.format(tenKvLength));
+            generalSituation.setFourKvLength(decimalFormat.format(fourKvLength));
+            generalSituation.setActualInvestment(decimalFormat.format(actualInvestment));
+            generalSituation.setTransferAssets(decimalFormat.format(actualInvestment));
+            generalSituation.setHasItsOwn(decimalFormat.format(actualInvestment));
         }
         if (null!=maintainDataList&&maintainDataList.size()>0){
             for (MaintainData maintainData:maintainDataList){
                 if (null!=maintainData.getApprovalNumber()){//如果审批文号不为空
                     organDataList.add(maintainData.getApprovalNumber());
                 }
-                if (null!=maintainData.getStartDate()&&maintainData.getEndDate().toString().length()>0){
+                if (null!=maintainData.getStartDate()&&maintainData.getStartDate().toString().length()>0){
                     commencementDateList.add(maintainData.getStartDate());
                 }
                 if (null!=maintainData.getEndDate()&&maintainData.getEndDate().toString().length()>0){
@@ -545,23 +717,23 @@ public class ExportUtil1 {
             }
             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);
+//                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(organDataList.get(1));
             }
             if (null!=commencementDateList&&commencementDateList.size()>0){
                 for (Date date:commencementDateList){
                     beforeDate = date;
                     if (beforeDate!=null){
-                        if (date.before(beforeDate)){
+                        if (beforeDate.before(date)){
                             beforeDate=date;
                         }
                     }
@@ -570,10 +742,10 @@ public class ExportUtil1 {
 //                generalSituation.setCommencementDate(sdf.format(Collections.min(commencementDateList)));
             }
             if (null!=completionDateList&&completionDateList.size()>0){
-                for (Date date:commencementDateList){
+                for (Date date:completionDateList){
                     endDate = date;
                     if (endDate!=null){
-                        if (date.after(endDate)){
+                        if (date.before(endDate)){
                             endDate=date;
                         }
                     }
@@ -581,7 +753,7 @@ public class ExportUtil1 {
                 generalSituation.setCompletionDate(sdf.format(endDate));
 //                generalSituation.setCompletionDate(sdf.format(Collections.max(completionDateList)));
             }
-            generalSituation.setInvestmentBudget(String.valueOf(investmentBudget));
+            generalSituation.setInvestmentBudget(String.valueOf(decimalFormat.format(investmentBudget)));
         }
         return generalSituation;
     }
@@ -600,36 +772,45 @@ public class ExportUtil1 {
         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());
+        List<TransferOfPower1> transferOfPower1s = getTransFerPower1(erpCredits);//得到线路表
+        List<TransferOfPower2> transferOfPower2s = getTransferOfPower2(erpCredits);//得到设备表
+        for (int i = 0; i < transferOfPower1s.size(); i++) {
+            if (i!=transferOfPower1s.size()-1){
+                if (null!= transferOfPower1s.get(i).getPowerBuildFee()){//建筑
+                    buildProject+=Double.parseDouble(transferOfPower1s.get(i).getPowerBuildFee());
+                }
+                if (null!=transferOfPower1s.get(i).getPowerInstallFee()&&!transferOfPower1s.get(i).getPowerStandInFee().equals("-")){
+                    intallProject+=Double.parseDouble(transferOfPower1s.get(i).getPowerInstallFee());
+                }
+                if (null!=transferOfPower1s.get(i).getPowerStandInFee()&&!transferOfPower1s.get(i).getPowerStandInFee().equals("-")){//分摊费用
+                    costSharing+=Double.parseDouble(transferOfPower1s.get(i).getPowerStandInFee());
+                }
+                if (null!=transferOfPower1s.get(i).getPowerDeliveredAssets()){
+                    deliveryCostValue+=Double.parseDouble(transferOfPower1s.get(i).getPowerDeliveredAssets());
+                }
             }
-            deliveryCostValue=buildProject+intallProject+costSharing;
         }
-        theAssetsTotal1.setBuildProject(decimalFormat.format(buildProject));
-        theAssetsTotal1.setIntallProject(decimalFormat.format(intallProject));
+        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());
+        for (int i = 0; i < transferOfPower2s.size(); i++) {
+            if (i!=transferOfPower2s.size()-1){
+                if (null!=transferOfPower2s.get(i).getPowerValue()){//设备价值
+                    equipmentValue1+=Double.parseDouble(transferOfPower2s.get(i).getPowerValue());
+                }
+                if (null!=transferOfPower2s.get(i).getPowerStandInFee()){
+                    costSharing1+=Double.parseDouble(transferOfPower2s.get(i).getPowerStandInFee());
+                }
+                if (null!=transferOfPower2s.get(i).getPowerDeliveredAssets()){
+                    deliveryCostValue1 = Double.parseDouble(transferOfPower2s.get(i).getPowerDeliveredAssets());
+                }
             }
-            deliveryCostValue1=equipmentValue1+costSharing1;
-            theAssetsTotal2.setEquipmentValue(decimalFormat.format(equipmentValue1));
-            theAssetsTotal2.setCostSharing(decimalFormat.format(costSharing1));
-            theAssetsTotal2.setDeliveryCostValue(decimalFormat.format(deliveryCostValue1));
         }
+        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));
@@ -647,21 +828,26 @@ public class ExportUtil1 {
         Double appropriatedFunds=0.0;//上级拨入资金
         Double vatDeduction=0.0;//、抵扣增值税
         Double fixedAssets=0.0;//交付使用固定资产
+        Double transferAssets=0.0;//移交资产合计
+        Double completed=0.0;//含税投资完成
         for (ErpCredit erpCredit:erpCredits){
             if (null!=erpCredit.getActualInvestment()){
-                appropriatedFunds+=erpCredit.getActualInvestment();
+                fixedAssets+=erpCredit.getActualInvestment();
+                transferAssets+=erpCredit.getActualInvestment();
             }
             if (null!=erpCredit.getTheInputTax()){
                 vatDeduction+=erpCredit.getTheInputTax();
             }
         }
-        for (MaintainData maintainData:maintainDataList){
-            fixedAssets+=maintainData.getDesignFee()+maintainData.getSupervisionFee()+maintainData.getPreliminaryWorkFee()
-                    +maintainData.getDamages()+maintainData.getManagementFee();
-        }
+        completed=transferAssets+vatDeduction;
+//        for (MaintainData maintainData:maintainDataList){
+//            appropriatedFunds+=maintainData.getDesignFee()+maintainData.getSupervisionFee()+maintainData.getPreliminaryWorkFee()
+//                    +maintainData.getDamages()+maintainData.getManagementFee();
+//        }
         mCompletionProject.setAppropriatedFunds(decimalFormat.format(appropriatedFunds));
         mCompletionProject.setFixedAssets(decimalFormat.format(fixedAssets));
         mCompletionProject.setVatDeduction(decimalFormat.format(vatDeduction));
+        mCompletionProject.setCompleted(decimalFormat.format(completed));
         return mCompletionProject;
     }
 }

File diff suppressed because it is too large
+ 636 - 173
src/main/java/com/jeeplus/modules/sg/financial/erpcredit/util/ExportUtil2.java


+ 8 - 2
src/main/java/com/jeeplus/modules/sg/financial/erpcredit/web/ErpCreditController.java

@@ -82,13 +82,17 @@ public class ErpCreditController extends BaseController {
 	@ResponseBody
 //	@RequiresPermissions("sg:financial:erpCredit:list")
 	@RequestMapping(value = "data")
-	public Map<String, Object> data(ErpCredit erpCredit, HttpServletRequest request, HttpServletResponse response, Model model) {
+	public Map<String, Object> data(ErpCredit erpCredit, HttpServletRequest request, HttpServletResponse response, Model model) throws Exception{
 		HttpSession session = request.getSession();
 		String attribute = (String) session.getAttribute("erpStatus");
 		Page<ErpCredit> page = null;
 		if (attribute!=null){
 			erpCredit.setStatus(attribute);
 			page = erpCreditService.findPage(new Page<ErpCredit>(request, response), erpCredit);
+		}else {
+			erpCredit.setId("123456");
+			erpCredit.setStatus("0");
+			page = erpCreditService.findPage(new Page<ErpCredit>(request, response), erpCredit);
 		}
 		return getBootstrapData(page);
 	}
@@ -193,7 +197,9 @@ public class ErpCreditController extends BaseController {
 	public Result exportFile(String ids,HttpServletRequest request, HttpServletResponse response){
 		Result j = new Result();
 		try {
-			erpCreditService.getExport(ids,response);
+			HttpSession session = request.getSession();
+			String attribute = (String) session.getAttribute("erpStatus");
+			erpCreditService.getExport(ids,response,attribute);
 			j.setSuccess(true);
 			j.setMsg("导出成功!");
 		}catch (Exception e){

+ 8 - 8
src/main/java/com/jeeplus/modules/sg/financial/project/mapper/xml/ProjectMapper.xml

@@ -30,14 +30,14 @@
 	<select id="get" resultType="Project" >
 		SELECT 
 			<include refid="projectColumns"/>
-		FROM js_project_detail a
+		FROM sm_project_detail a
 		WHERE a.id = #{id}
 	</select>
 	
 	<select id="findList" resultType="Project" >
 		SELECT 
 			<include refid="projectColumns"/>
-		FROM js_project_detail a
+		FROM sm_project_detail a
 		<where>
 			a.del_flag = #{DEL_FLAG_NORMAL}
 			${dataScope}
@@ -58,7 +58,7 @@
 	<select id="findAllList" resultType="Project" >
 		SELECT
 		<include refid="projectColumns"/>
-		FROM js_project_detail a
+		FROM sm_project_detail a
 		<where>
 			a.del_flag = #{DEL_FLAG_NORMAL}
 			${dataScope}
@@ -74,7 +74,7 @@
 	</select>
 	
 	<insert id="insert">
-		INSERT INTO js_project_detail(
+		INSERT INTO sm_project_detail(
 			id,
 			create_by,
 			create_date,
@@ -124,7 +124,7 @@
 	</insert>
 	
 	<update id="update">
-		UPDATE js_project_detail SET
+		UPDATE sm_project_detail SET
 			update_by = #{updateBy.id},
 			update_date = #{updateDate},
 			remarks = #{remarks},
@@ -149,13 +149,13 @@
 	
 	<!--物理删除-->
 	<update id="delete">
-		DELETE FROM js_project_detail
+		DELETE FROM sm_project_detail
 		WHERE id = #{id}
 	</update>
 	
 	<!--逻辑删除-->
 	<update id="deleteByLogic">
-		UPDATE js_project_detail SET
+		UPDATE sm_project_detail SET
 			del_flag = #{DEL_FLAG_DELETE}
 		WHERE id = #{id}
 	</update>
@@ -163,7 +163,7 @@
 	
 	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
 	<select id="findUniqueByProperty" resultType="Project" statementType="STATEMENT">
-		select * FROM js_project_detail  where ${id} = '${value}'
+		select * FROM sm_project_detail  where ${id} = '${value}'
 	</select>
 	
 </mapper>

+ 3 - 0
src/main/java/com/jeeplus/modules/sg/financial/settlement/mapper/xml/DataMaintenanceMapper.xml

@@ -51,6 +51,9 @@
                 #{item}
                 </foreach>
 			</if>
+			<if test="projectId != null and projectId != ''">
+				AND a.project_id LIKE CONCAT(CONCAT('%',#{projectId},'%'))
+			</if>
 		</where>
 		<choose>
 			<when test="page !=null and page.orderBy != null and page.orderBy != ''">

+ 258 - 17
src/main/java/com/jeeplus/modules/sg/financial/settlement/service/DataMaintenanceService.java

@@ -3,21 +3,25 @@
  */
 package com.jeeplus.modules.sg.financial.settlement.service;
 
+import com.jeeplus.common.utils.DateUtils;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.time.DateUtil;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.service.CrudService;
 import com.jeeplus.modules.sg.financial.settlement.entity.MaintainData;
 import com.jeeplus.modules.sg.financial.settlement.mapper.DataMaintenanceMapper;
 import com.jeeplus.modules.sg.financial.settlement.util.ExcelWriter;
-import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.hssf.util.HSSFColor;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
+import java.io.*;
+import java.net.URLEncoder;
+import java.util.*;
 
 
 @Service
@@ -27,6 +31,8 @@ public class DataMaintenanceService extends CrudService<DataMaintenanceMapper, M
 	@Autowired
 	private DataMaintenanceMapper dataMaintenanceMapper;
 
+	public static Map<String, CellStyle> styles;
+
 	public MaintainData get(String id) {
 		return super.get(id);
 	}
@@ -85,16 +91,32 @@ public class DataMaintenanceService extends CrudService<DataMaintenanceMapper, M
 	}
 
 	public void export(MaintainData maintainData , HttpServletResponse response){
-		Workbook workbook = null;
+		InputStream inputStream = null;
+		XSSFWorkbook workbook = null;
 		try {
-			List<MaintainData> list = dataMaintenanceMapper.findList(maintainData);
-			workbook = ExcelWriter.exportData(list);
-			long time = System.currentTimeMillis();
-			String outFile = time + ".xlsx";
-
+			String path = (getSispPath() + "excelmodel/maintainDataExport.xlsx");
+			List<MaintainData> dataList = dataMaintenanceMapper.findList(maintainData);
+//			String path = "D:/IDEA workspace/sg_audit/target/classes/freemarker/excelmodel/maintainDataExport.xlsx";
+			File file = new File(path);
+			inputStream = new FileInputStream(file);// 将excel文件转为输入流
+			workbook = new XSSFWorkbook(inputStream);// 创建个workbook
+			styles = createStyles(workbook);  //创建样式
+			int rowNum = 3;
+			Sheet sheet = workbook.getSheetAt(0);
+			for (Iterator<MaintainData> it = dataList.iterator(); it.hasNext(); ) {
+				MaintainData data = it.next();
+				if (data == null) {
+					continue;
+				}
+				//输出行数据
+				Row row = sheet.createRow(rowNum++);
+				convertDataToRow(data, row);
+			}
+			String st = DateUtils.formatDate(new Date(),"yyyyMMddHHmmss");
+			String str = URLEncoder.encode("概预算基本信息"+st+".xlsx", "UTF8");
 			OutputStream outputStream = response.getOutputStream();
 			response.reset();
-			response.setHeader("Content-Disposition", "attachment;filename="+outFile);
+			response.setHeader("Content-Disposition", "attachment;filename="+str);
 			response.setContentType("application/vnd.ms-excel;charset=UTF-8");
 			workbook.write(outputStream);
 			outputStream.flush();
@@ -103,18 +125,24 @@ public class DataMaintenanceService extends CrudService<DataMaintenanceMapper, M
 			e.printStackTrace();
 		} finally {
 		}
+
+
         	}
 
 
 	public void exportHeard( HttpServletResponse response){
-		Workbook workbook = null;
+		InputStream inputStream = null;
+		XSSFWorkbook workbook = null;
 		try {
-			workbook = ExcelWriter.exportHeard();
-			long time = System.currentTimeMillis();
-			String outFile = time + ".xlsx";
+			String path = (getSispPath() + "excelmodel/maintainDataImport.xlsx");
+//			String path = "D:/IDEA workspace/sg_audit/target/classes/freemarker/excelmodel/maintainDataImport.xlsx";
+			File file = new File(path);
+			inputStream = new FileInputStream(file);// 将excel文件转为输入流
+			workbook = new XSSFWorkbook(inputStream);// 创建个workbook,
+			String str = URLEncoder.encode("概预算基本信息导入模板.xlsx", "UTF8");
 			OutputStream outputStream = response.getOutputStream();
 			response.reset();
-			response.setHeader("Content-Disposition", "attachment;filename="+outFile);
+			response.setHeader("Content-Disposition", "attachment;filename="+str);
 			response.setContentType("application/vnd.ms-excel;charset=UTF-8");
 			workbook.write(outputStream);
 			outputStream.flush();
@@ -124,5 +152,218 @@ public class DataMaintenanceService extends CrudService<DataMaintenanceMapper, M
 		} finally {
 		}
 	}
+
+
+	public  String getSispPath() {
+		String sispPath = this.getClass().getResource("/").getPath()+ "freemarker/";
+		return sispPath;
+	}
+
+
+	private  void convertDataToRow(MaintainData maintainData, Row row){
+		int cellNum = 0;
+		Cell cell;
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getProjectId()) {
+			cell.setCellValue(maintainData.getProjectId());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getDesignUnits()) {
+			cell.setCellValue(maintainData.getDesignUnits());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getConstructionUnits()) {
+			cell.setCellValue(maintainData.getConstructionUnits());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getAddress()) {
+			cell.setCellValue(maintainData.getAddress());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getProperty()) {
+			cell.setCellValue(maintainData.getProperty());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getInvestment()) {
+			cell.setCellValue(maintainData.getInvestment());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getStartDate()) {
+			cell.setCellValue(DateUtils.formatDate(maintainData.getStartDate()));
+
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getEndDate()) {
+			cell.setCellValue(DateUtils.formatDate(maintainData.getEndDate()));
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getApprovalNumber()) {
+			cell.setCellValue(maintainData.getApprovalNumber());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getBuildingFee()) {
+			cell.setCellValue(maintainData.getBuildingFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getInstallFee()) {
+			cell.setCellValue(maintainData.getInstallFee());
+		} else {
+			cell.setCellValue("");
+		}
+
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getEquipmentFee()) {
+			cell.setCellValue(maintainData.getEquipmentFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getMaterialFee()) {
+			cell.setCellValue(maintainData.getMaterialFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getDesignFee()) {
+			cell.setCellValue(maintainData.getDesignFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getSupervisionFee()) {
+			cell.setCellValue(maintainData.getSupervisionFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getPreliminaryWorkFee()) {
+			cell.setCellValue(maintainData.getPreliminaryWorkFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getDamages()) {
+			cell.setCellValue(maintainData.getDamages());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		if (null != maintainData.getManagementFee()) {
+			cell.setCellValue(maintainData.getManagementFee());
+		} else {
+			cell.setCellValue("");
+		}
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		cell.setCellValue(maintainData.getDesignFee()+maintainData.getSupervisionFee()+maintainData.getPreliminaryWorkFee()
+				+maintainData.getDamages()+maintainData.getManagementFee());
+
+		cell = row.createCell(cellNum++);
+		cell.setCellStyle(styles.get("data"));
+		cell.setCellValue(maintainData.getDesignFee()+maintainData.getSupervisionFee()+maintainData.getPreliminaryWorkFee()
+				+maintainData.getDamages()+maintainData.getManagementFee()+maintainData.getBuildingFee()+maintainData.getInstallFee()
+				+maintainData.getEquipmentFee()+maintainData.getMaterialFee());
+
+	}
+
+	private  Map<String, CellStyle> createStyles(Workbook wb) {
+		Map<String, CellStyle> styles = new HashMap<String, CellStyle>();
+
+		CellStyle style = wb.createCellStyle();
+		style.setAlignment(CellStyle.ALIGN_CENTER);
+		style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
+		Font titleFont = wb.createFont();
+		titleFont.setFontName("Arial");
+		titleFont.setFontHeightInPoints((short) 16);
+		titleFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
+		style.setFont(titleFont);
+		styles.put("title", style);
+
+		style = wb.createCellStyle();
+		style.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
+		style.setBorderRight(CellStyle.BORDER_THIN);
+		style.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+		style.setBorderLeft(CellStyle.BORDER_THIN);
+		style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+		style.setBorderTop(CellStyle.BORDER_THIN);
+		style.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+		style.setBorderBottom(CellStyle.BORDER_THIN);
+		style.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
+		Font dataFont = wb.createFont();
+		dataFont.setFontName("Arial");
+		dataFont.setFontHeightInPoints((short) 10);
+		style.setFont(dataFont);
+		styles.put("data", style);
+
+		style = wb.createCellStyle();
+		style.cloneStyleFrom(styles.get("data"));
+		style.setAlignment(CellStyle.ALIGN_LEFT);
+		styles.put("data1", style);
+
+		style = wb.createCellStyle();
+		style.cloneStyleFrom(styles.get("data"));
+		style.setAlignment(CellStyle.ALIGN_CENTER);
+		styles.put("data2", style);
+
+		style = wb.createCellStyle();
+		style.cloneStyleFrom(styles.get("data"));
+		style.setAlignment(CellStyle.ALIGN_RIGHT);
+		styles.put("data3", style);
+
+		style = wb.createCellStyle();
+		style.cloneStyleFrom(styles.get("data"));
+//		style.setWrapText(true);
+		style.setAlignment(CellStyle.ALIGN_CENTER);
+		style.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
+		style.setFillPattern(CellStyle.SOLID_FOREGROUND);
+		Font headerFont = wb.createFont();
+		headerFont.setFontName("Arial");
+		headerFont.setFontHeightInPoints((short) 10);
+		headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
+		headerFont.setColor(IndexedColors.BLACK.getIndex());
+		style.setFont(headerFont);
+		style.setFillForegroundColor(HSSFColor.WHITE.index);
+		styles.put("header", style);
+
+		return styles;
+	}
 	
 }

+ 36 - 11
src/main/java/com/jeeplus/modules/sg/financial/settlement/util/ExcelWriter.java

@@ -8,6 +8,7 @@ import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.xssf.streaming.SXSSFWorkbook;
 
+import java.io.File;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -87,7 +88,7 @@ public class ExcelWriter {
         sheet.addMergedRegion(new CellRangeAddress(2, 0, 6, 6));
         sheet.addMergedRegion(new CellRangeAddress(2, 0, 7, 7));
         sheet.addMergedRegion(new CellRangeAddress(2, 0, 8, 8));
-        sheet.addMergedRegion(new CellRangeAddress(0, 0, 9, 18));
+        sheet.addMergedRegion(new CellRangeAddress(0, 0, 9, 19));
         sheet.addMergedRegion(new CellRangeAddress(2, 1, 9, 9));
         sheet.addMergedRegion(new CellRangeAddress(2, 1, 10, 10));
         sheet.addMergedRegion(new CellRangeAddress(2, 1, 11, 11));
@@ -493,25 +494,21 @@ public class ExcelWriter {
         }
         cell = row.createCell(cellNum++);
         cell.setCellStyle(styles.get("data"));
-        if (null != maintainData.getTotalFee()) {
-            cell.setCellValue(maintainData.getDesignFee()+maintainData.getSupervisionFee()+maintainData.getPreliminaryWorkFee()
+        cell.setCellValue(maintainData.getDesignFee()+maintainData.getSupervisionFee()+maintainData.getPreliminaryWorkFee()
                               +maintainData.getDamages()+maintainData.getManagementFee());
-        } else {
-            cell.setCellValue("");
-        }
+
         cell = row.createCell(cellNum++);
         cell.setCellStyle(styles.get("data"));
-        if (null != maintainData.getTotalFee()) {
-            cell.setCellValue(maintainData.getDesignFee()+maintainData.getSupervisionFee()+maintainData.getPreliminaryWorkFee()
+        cell.setCellValue(maintainData.getDesignFee()+maintainData.getSupervisionFee()+maintainData.getPreliminaryWorkFee()
                     +maintainData.getDamages()+maintainData.getManagementFee()+maintainData.getBuildingFee()+maintainData.getInstallFee()
                     +maintainData.getEquipmentFee()+maintainData.getMaterialFee());
-        } else {
-            cell.setCellValue("");
-        }
 
     }
 
     private static Sheet buildHerd(Workbook workbook) {
+        CellStyle style = workbook.createCellStyle();
+        style.setBorderLeft(CellStyle.BORDER_THIN);
+        style.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex());
         Sheet sheet = workbook.createSheet();
         // 设置列头宽度
 //        for (int i=0; i<CELL_HEADS.size(); i++) {
@@ -613,6 +610,9 @@ public class ExcelWriter {
         Cell cellp = row2.createCell(17);
         cellp.setCellValue("");
         cellp.setCellStyle(styles.get("header"));
+        Cell cellq = row1.createCell(17);
+        cellq.setCellValue("");
+        cellq.setCellStyle(styles.get("header"));
 
         Cell celle = row3.createCell(0);
         celle.setCellValue("");
@@ -693,5 +693,30 @@ public class ExcelWriter {
         return sheet;
     }
 
+
+    public static Workbook export(List<MaintainData> dataList){
+        // 生成xlsx的Excel
+        Workbook workbook = new SXSSFWorkbook();
+        // 生成Sheet表,写入第一行的列头
+        Sheet sheet = buildDataSheet(workbook);
+        //构建每行的数据内容
+        int rowNum = 3;
+        for (Iterator<MaintainData> it = dataList.iterator(); it.hasNext(); ) {
+            MaintainData data = it.next();
+            if (data == null) {
+                continue;
+            }
+            //输出行数据
+            Row row = sheet.createRow(rowNum++);
+            convertDataToRow(data, row);
+        }
+        return workbook;
+    }
+
+    public  String getSispPath() {
+        String sispPath = this.getClass().getResource("/").getPath()+ "freemarker/";
+        return sispPath;
+    }
+
 }
 

+ 5 - 1
src/main/java/com/jeeplus/modules/sg/financial/settlement/web/DataMaintenanceController.java

@@ -89,7 +89,11 @@ public class DataMaintenanceController extends BaseController {
 		}
 		if(StringUtils.isNotBlank(st)){
 			String[] sts = st.split("\\s+");
-			maintainData.setProjectIds(sts);
+			if(sts.length == 1){
+			    maintainData.setProjectId(sts[0]);
+            }else {
+                maintainData.setProjectIds(sts);
+            }
 		}
 		Page<MaintainData> page = dataMaintenanceService.findPage(new Page<MaintainData>(request, response), maintainData);
 		return getBootstrapData(page);

BIN
src/main/resources/freemarker/excelmodel/maintainDataExport.xlsx


BIN
src/main/resources/freemarker/excelmodel/maintainDataImport.xlsx


BIN
src/main/resources/freemarker/excelmodel/竣工决算模板.xlsx


+ 61 - 0
src/main/webapp/static/plugin/bootstrapTable/bootstrap-table-resizable.js

@@ -0,0 +1,61 @@
+
+const isInit = that => that.$el.data('resizableColumns') !== undefined
+
+const initResizable = that => {
+  if (that.options.resizable && !that.options.cardView && !isInit(that)) {
+    that.$el.resizableColumns()
+  }
+}
+
+const destroy = that => {
+  if (isInit(that)) {
+    that.$el.data('resizableColumns').destroy()
+  }
+}
+
+const reInitResizable = that => {
+  destroy(that)
+  initResizable(that)
+}
+
+$.extend($.fn.bootstrapTable.defaults, {
+  resizable: false
+})
+
+const BootstrapTable = $.fn.bootstrapTable.Constructor
+const _initBody = BootstrapTable.prototype.initBody
+const _toggleView = BootstrapTable.prototype.toggleView
+const _resetView = BootstrapTable.prototype.resetView
+
+BootstrapTable.prototype.initBody = function (...args) {
+  const that = this
+  _initBody.apply(this, Array.prototype.slice.apply(args))
+
+  that.$el
+    .off('column-switch.bs.table, page-change.bs.table')
+    .on('column-switch.bs.table, page-change.bs.table', () => {
+      reInitResizable(that)
+    })
+}
+
+BootstrapTable.prototype.toggleView = function (...args) {
+  _toggleView.apply(this, Array.prototype.slice.apply(args))
+
+  if (this.options.resizable && this.options.cardView) {
+    // Destroy the plugin
+    destroy(this)
+  }
+}
+
+BootstrapTable.prototype.resetView = function (...args) {
+  const that = this
+
+  _resetView.apply(this, Array.prototype.slice.apply(args))
+
+  if (this.options.resizable) {
+    // because in fitHeader function, we use setTimeout(func, 100);
+    setTimeout(() => {
+      initResizable(that)
+    }, 100)
+  }
+}

File diff suppressed because it is too large
+ 415 - 0
src/main/webapp/static/plugin/bootstrapTable/colResizable-1.6.js


+ 1 - 0
src/main/webapp/webpage/modules/sg/financial/project/projectList.js

@@ -141,6 +141,7 @@ $(document).ready(function() {
                    ,{
                        field: 'bulbidResons',
                        title: '建设理由',
+					   width:250,
                        sortName: 'bulbidResons'
 
                    }

+ 8 - 1
src/main/webapp/webpage/modules/sg/financial/settlement/dataMaintenanceList.js

@@ -271,7 +271,14 @@ $(document).ready(function() {
 		  $("#searchForm  .select-item").html("");
 		  $('#dataTable').bootstrapTable('refresh');
 		});
-		
+
+
+	// $("#dataTable").colResizable({
+	// 	liveDrag:true,
+	// 	gripInnerHtml:"<div class='grip'></div>",
+	// 	draggingClass:"dragging",
+	// 	resizeMode:'fit'
+	// });
 		
 	});
 		

+ 3 - 1
src/main/webapp/webpage/modules/sg/financial/settlement/dataMaintenanceList.jsp

@@ -8,12 +8,14 @@
 	<%@ include file="/webpage/include/bootstraptable.jsp"%>
 	<%@include file="/webpage/include/treeview.jsp" %>
 	<%@include file="dataMaintenanceList.js" %>
+	<script src="${ctxStatic}/plugin/bootstrapTable/bootstrap-table-resizable.js"></script>
+	<script src="${ctxStatic}/plugin/bootstrapTable/colResizable-1.6.js"></script>
 </head>
 <body>
 	<div class="wrapper wrapper-content">
 	<div class="panel panel-primary">
 	<div class="panel-heading">
-		<h3 class="panel-title">数据维护</h3>
+		<h3 class="panel-title">概预算基本信息</h3>
 	</div>
 	<div class="panel-body">