xs %!s(int64=5) %!d(string=hai) anos
pai
achega
1a9abe8539

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

@@ -143,15 +143,13 @@ public class ErpCreditService extends CrudService<ErpCreditMapper,ErpCredit> {
     public void getExport(String[] ids, HttpServletResponse response){
         List<ErpCredit> erpCreditList = getListErpCredit(ids);
         List<MaintainData> maintainDatas = getFindListMain(ids);
-        for (MaintainData maintainData:maintainDatas){
-            System.out.println("11123123====="+maintainData);
-        }
         ExportTemplate exportTemplate = new ExportTemplate();
         File newFile = exportTemplate.createNewFile();
         // 新文件写入数据,并下载
         InputStream inputStream = null;
         XSSFWorkbook workbook = null;
         XSSFSheet sheet1 = null;
+        XSSFSheet sheet2 = null;
         XSSFSheet sheet3 = null;
         XSSFSheet sheet5 = null;
         XSSFSheet sheet4 = null;
@@ -163,6 +161,7 @@ public class ErpCreditService extends CrudService<ErpCreditMapper,ErpCredit> {
             inputStream = new FileInputStream(newFile);// 将excel文件转为输入流
             workbook = new XSSFWorkbook(inputStream);// 创建个workbook,
             sheet1 =workbook.getSheetAt(1);
+            sheet2 = workbook.getSheetAt(2);
             sheet3 = workbook.getSheetAt(3);
             sheet4 = workbook.getSheetAt(4);
             sheet5=workbook.getSheetAt(5);
@@ -177,7 +176,8 @@ public class ErpCreditService extends CrudService<ErpCreditMapper,ErpCredit> {
             // 写数据
             FileOutputStream fos = new FileOutputStream(newFile);
             ExportUtil2.getSheet1(sheet1,erpCreditList,maintainDatas);
-            ExportUtil2.getSheet3(sheet3,erpCreditList);
+            ExportUtil2.getSheet2(sheet2,erpCreditList,maintainDatas);
+            ExportUtil2.getSheet3(sheet3,erpCreditList,maintainDatas);
             ExportUtil2.getSheet5(sheet5,erpCreditList);
             ExportUtil2.getSheet6(sheet6,erpCreditList);
             ExportUtil2.getSheet7(sheet7,erpCreditList);

+ 101 - 42
src/main/java/com/jeeplus/modules/sg/financial/erpcredit/util/ExportUtil1.java

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

+ 51 - 6
src/main/java/com/jeeplus/modules/sg/financial/erpcredit/util/ExportUtil2.java

@@ -12,12 +12,57 @@ import java.util.List;
 import java.util.Map;
 
 public class ExportUtil2 {
+
+    //一览表
+    public static void getSheet2(Sheet sheet,List<ErpCredit> erpCredits,List<MaintainData> maintainDataList){
+        if (sheet!=null){
+            Schedule schedule = null;
+            XSSFRow row = (XSSFRow) sheet.getRow(0);
+            XSSFCell cell = row.getCell(3);
+            List<Schedule> scheduleList = ExportUtil1.getScheduleList(erpCredits, maintainDataList);
+            for (int i = 1; i <=scheduleList.size(); i++) {
+                schedule = scheduleList.get(i);
+                row=(XSSFRow)sheet.getRow(i+5);
+                cell=row.getCell(0);
+                cell.setCellValue(i);
+                cell=row.getCell(1);
+                cell.setCellValue(schedule.getItemId());
+                cell=row.getCell(2);
+                cell.setCellValue(schedule.getItemName());
+                cell=row.getCell(3);
+                cell.setCellValue(schedule.getBudgetBuildProject());
+                cell=row.getCell(4);
+                cell.setCellValue(schedule.getBudgetInstallProject());
+                cell=row.getCell(5);
+                cell.setCellValue(schedule.getBudgetEquipmentValue());
+                cell=row.getCell(6);
+                cell.setCellValue(schedule.getBudgetOtherFee());
+                cell=row.getCell(7);
+                cell.setCellValue(schedule.getBudgetTotalFee());
+                cell=row.getCell(8);
+                cell.setCellValue(schedule.getActualBuildProject());
+                cell=row.getCell(9);
+                cell.setCellValue(schedule.getActualIntallProject());
+                cell=row.getCell(10);
+                cell.setCellValue(schedule.getActualEquipmentValue());
+                cell=row.getCell(11);
+                cell.setCellValue(schedule.getActualOtherFee());
+                cell=row.getCell(12);
+                cell.setCellValue(schedule.getActualTotalFee());
+                cell=row.getCell(13);
+                cell.setCellValue(schedule.getAddSubtractionLines());
+                cell=row.getCell(14);
+                cell.setCellValue(schedule.getAddSubtractionRate());
+            }
+        }
+
+    }
     //读取得到其他费用表
-   public static void getSheet3(Sheet sheet,List<ErpCredit> erpCredits){
+   public static void getSheet3(Sheet sheet,List<ErpCredit> erpCredits,List<MaintainData> maintainDataList){
        if (null!=sheet){
            XSSFRow row = (XSSFRow) sheet.getRow(0);
            XSSFCell cell = row.getCell(3);
-           ScheduleOther scheduleOther = ExportUtil1.getScheduleOfOtherExpenses(erpCredits);
+           ScheduleOther scheduleOther = ExportUtil1.getScheduleOfOtherExpenses(erpCredits,maintainDataList);
            List list = new ArrayList();
            list.add(scheduleOther.getRequisitionSite());
            list.add(scheduleOther.getCompensationAcquisition());
@@ -232,19 +277,19 @@ public class ExportUtil2 {
        if (sheet!=null){
            GeneralSituation generalSituation = ExportUtil1.getFeneraSituation(erpCredits,maintainDataList);
            XSSFRow row = (XSSFRow) sheet.getRow(6);
-           XSSFCell cell = row.getCell(3);
+           XSSFCell cell = row.getCell(6);
            cell.setCellValue(generalSituation.getOrganDataNumber());//日期,批文号
 
            row = (XSSFRow)sheet.getRow(9);
            cell = row.getCell(2);
            cell.setCellValue(generalSituation.getLineLength());
-           cell = row.getCell(4);
+           cell = row.getCell(7);
            cell.setCellValue(generalSituation.getCommencementDate());
 
            row = (XSSFRow)sheet.getRow(10);
            cell = row.getCell(2);
            cell.setCellValue(generalSituation.getTenKvLength());
-           cell = row.getCell(4);
+           cell = row.getCell(7);
            cell.setCellValue(generalSituation.getCompletionDate());
 
            row = (XSSFRow)sheet.getRow(11);
@@ -252,7 +297,7 @@ public class ExportUtil2 {
            cell.setCellValue(generalSituation.getFourKvLength());
 
            row = (XSSFRow)sheet.getRow(12);
-           cell=row.getCell(4);
+           cell=row.getCell(7);
            cell.setCellValue(generalSituation.getInvestmentBudget());
 
            row = (XSSFRow)sheet.getRow(13);

+ 28 - 0
src/main/java/com/jeeplus/modules/sg/financial/settlement/entity/MaintainData.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.common.utils.excel.annotation.ExcelField;
 import com.jeeplus.core.persistence.DataEntity;
 
+import java.util.Arrays;
 import java.util.Date;
 
 public class MaintainData extends DataEntity<MaintainData> {
@@ -216,4 +217,31 @@ public class MaintainData extends DataEntity<MaintainData> {
     public void setTotalFee(Double totalFee) {
         this.totalFee = totalFee;
     }
+
+    @Override
+    public String toString() {
+        return "MaintainData{" +
+                "projectId='" + projectId + '\'' +
+                ", designUnits='" + designUnits + '\'' +
+                ", constructionUnits='" + constructionUnits + '\'' +
+                ", address='" + address + '\'' +
+                ", property='" + property + '\'' +
+                ", investment='" + investment + '\'' +
+                ", startDate=" + startDate +
+                ", endDate=" + endDate +
+                ", approvalNumber='" + approvalNumber + '\'' +
+                ", buildingFee=" + buildingFee +
+                ", installFee=" + installFee +
+                ", equipmentFee=" + equipmentFee +
+                ", materialFee=" + materialFee +
+                ", designFee=" + designFee +
+                ", supervisionFee=" + supervisionFee +
+                ", preliminaryWorkFee=" + preliminaryWorkFee +
+                ", damages=" + damages +
+                ", managementFee=" + managementFee +
+                ", totalFee=" + totalFee +
+                ", state='" + state + '\'' +
+                ", projectIds=" + Arrays.toString(projectIds) +
+                '}';
+    }
 }

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

@@ -15,4 +15,5 @@ import java.util.List;
 public interface DataMaintenanceMapper extends BaseMapper<MaintainData> {
 	int insertList(@Param("list") List<MaintainData> list);
 	void deleteData(String projectId);
+	List<MaintainData> getFindListMain(String[] ids);
 }

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

@@ -247,5 +247,18 @@
 	<select id="findUniqueByProperty" resultType="TestNote" statementType="STATEMENT">
 		select * FROM js_maintain_data  where ${propertyName} = '${value}'
 	</select>
-	
+
+	<select id="getFindListMain" parameterType="java.util.List" resultType="maintainData">
+		select
+		<include refid="infoColumns"/>
+		FROM js_maintain_data a
+		WHERE a.del_flag = '0'
+		and a.project_id in
+		<if test="array !=null and array.length > 0">
+			<foreach collection="array" index="index" item="item" open="("
+					 separator="," close=")">
+				#{item}
+			</foreach>
+		</if>
+	</select>
 </mapper>

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

@@ -56,10 +56,10 @@ public class DataMaintenanceService extends CrudService<DataMaintenanceMapper, M
 		super.delete(maintainData);
 	}
 
-//	@Transactional(readOnly = false)
-//    public void deleteData(String projectId){
-//        dataMaintenanceMapper.deleteData(projectId);
-//    }
+	@Transactional(readOnly = false)
+    public void deleteData(String projectId){
+        dataMaintenanceMapper.deleteData(projectId);
+    }
 
 
 	public void export(MaintainData maintainData , HttpServletResponse response){

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

@@ -181,7 +181,7 @@ public class DataMaintenanceController extends BaseController {
 		AjaxJson j = new AjaxJson();
 		String idArray[] =ids.split(",");
 		for(String id : idArray){
-//			dataMaintenanceService.deleteData(id);
+			dataMaintenanceService.deleteData(id);
 		}
 		j.setMsg("删除成功");
 		return j;