Wayne 5 місяців тому
батько
коміт
09f2d98cdd

+ 8 - 2
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.java

@@ -10,8 +10,8 @@ import com.rtrh.projects.modules.projects.po.SubFix;
 import com.rtrh.projects.modules.projects.po.SubInfo;
 import com.rtrh.projects.modules.projects.vo.*;
 import com.rtrh.projects.modules.projects.po.SubInfoGxj;
-import com.rtrh.projects.modules.projects.vo.export.SubInfoFixCbDetail;
-import com.rtrh.projects.modules.projects.vo.export.SubInfoFixDetail;
+import com.rtrh.projects.modules.projects.vo.export.*;
+import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 
 import com.rtrh.core.repository.mybatis.MyBatisRepository;
@@ -67,4 +67,10 @@ public interface SubInfoMapper {
     List<RptCont> selectNewestMonthReport(@Param("ids") List<String> ids);
 
     List<SubInfoFixCbDetail> exportFixCbDetailExcel(@Param("stateFix") String stateFix, @Param("year") String year);
+
+    List<SubInfoFixZjDetail> exportFixZjDetailExcel(@Param("stateFix") String stateFix, @Param("year") String year);
+
+    List<MoneyMap> selectYearMoney(@Param("subIdList") List<String> subIdList, @Param("year") String year);
+
+    List<SubInfoFixTcDetail> exportFixTcDetailExcel(@Param("stateFix") String stateFix,@Param("year") String year);
 }

+ 55 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.xml

@@ -465,4 +465,59 @@
                  LEFT JOIN sub_info ON sub_fix.sub_id = sub_info.id
         WHERE sub_fix.cat = #{stateFix} and sub_fix.year = #{year} and sub_info.logic_delete_flag = 0
     </select>
+    <select id="exportFixZjDetailExcel" resultType="com.rtrh.projects.modules.projects.vo.export.SubInfoFixZjDetail">
+        SELECT
+            sub_info.id AS id,
+            sub_info.sub_name AS subName,
+            sub_info.subject_id AS subjectId,
+            sub_info.content AS content,
+            sub_info.amt_total AS amtTotal,
+            sub_info.end_date AS endDate,
+            sub_info.remark AS remark,
+            sub_info.indus_kind AS indusKind,
+            sub_info.progress AS progress
+        FROM
+            sub_fix
+                LEFT JOIN
+            sub_info ON sub_fix.sub_id = sub_info.id
+        WHERE
+            sub_info.logic_delete_flag = 0
+          AND sub_fix.cat = #{stateFix}
+          AND sub_fix.year = #{year}
+    </select>
+    <select id="selectYearMoney" resultType="com.rtrh.projects.modules.projects.vo.export.MoneyMap">
+        SELECT
+        sub_id AS subId,
+        SUM(amt) AS amt
+        FROM
+        sub_amtplan
+        WHERE
+        sub_id IN
+        <foreach collection="subIdList" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+        AND y_month LIKE CONCAT(#{year}, '%')
+        AND logic_delete_flag = 0
+        GROUP BY
+        sub_id
+    </select>
+    <select id="exportFixTcDetailExcel" resultType="com.rtrh.projects.modules.projects.vo.export.SubInfoFixTcDetail">
+        SELECT
+            sub_info.id AS id,
+            sub_info.sub_name AS subName,
+            sub_info.subject_id AS subjectId,
+            sub_info.content AS content,
+            sub_info.rg_date AS rgDate,
+            sub_info.remark AS remark,
+            sub_info.indus_kind AS indusKind,
+            sub_info.progress AS progress
+        FROM
+            sub_fix
+                LEFT JOIN
+            sub_info ON sub_fix.sub_id = sub_info.id
+        WHERE
+            sub_info.logic_delete_flag = 0
+          AND sub_fix.cat = #{stateFix}
+          AND sub_fix.year = #{year}
+    </select>
 </mapper>

+ 5 - 3
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubInfoService.java

@@ -11,9 +11,7 @@ import com.rtrh.projects.modules.projects.po.SubInfo;
 import com.rtrh.projects.modules.projects.po.SubInfoGxj;
 import com.rtrh.projects.modules.projects.po.SubLabel;
 import com.rtrh.projects.modules.projects.vo.*;
-import com.rtrh.projects.modules.projects.vo.export.SubInfoFixCbDetail;
-import com.rtrh.projects.modules.projects.vo.export.SubInfoFixDetail;
-import com.rtrh.projects.modules.projects.vo.export.SubInfoFixVO;
+import com.rtrh.projects.modules.projects.vo.export.*;
 import com.rtrh.projects.modules.system.vo.LoginUserVO;
 import com.rtrh.projects.vo.subject.MoveDbParamVo;
 import com.rtrh.projects.vo.subject.SubinfoPreQueryVo;
@@ -417,4 +415,8 @@ public interface SubInfoService {
 	List<SubInfoFixCbDetail> exportFixCbDetailExcel(SubInfoQueryTzVO vo);
 
 	List<SubInfoTotalExcel> exportTotalExcelByStatus(SubInfoQueryTzVO vo);
+
+	List<SubInfoFixZjDetail> exportFixZjDetailExcel(SubInfoQueryTzVO vo);
+
+	List<SubInfoFixTcDetail> exportFixTcDetailExcel(SubInfoQueryTzVO vo);
 }

+ 151 - 5
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoServiceImpl.java

@@ -14,9 +14,7 @@ import com.rtrh.projects.modules.projects.mapper.SubInfoMapper;
 import com.rtrh.projects.modules.projects.po.*;
 import com.rtrh.projects.modules.projects.service.*;
 import com.rtrh.projects.modules.projects.vo.*;
-import com.rtrh.projects.modules.projects.vo.export.SubInfoFixCbDetail;
-import com.rtrh.projects.modules.projects.vo.export.SubInfoFixDetail;
-import com.rtrh.projects.modules.projects.vo.export.SubInfoFixVO;
+import com.rtrh.projects.modules.projects.vo.export.*;
 import com.rtrh.projects.modules.rolemeun.dao.SecRoleDao;
 import com.rtrh.projects.modules.rolemeun.po.SecRole;
 import com.rtrh.projects.modules.system.dao.TSystableDao;
@@ -58,7 +56,6 @@ import com.rtrh.projects.modules.projects.enums.StatusEnum;
 import com.rtrh.projects.modules.projects.enums.SubIsHideStatusEnum;
 import com.rtrh.projects.modules.projects.enums.SubPlanStatusEnum;
 import com.rtrh.projects.modules.projects.enums.SubqestionStatus;
-import com.rtrh.projects.modules.projects.vo.export.SubInfoExportVO;
 import com.rtrh.projects.modules.system.SysConstant;
 import com.rtrh.projects.modules.system.dao.JDepartDao;
 import com.rtrh.projects.modules.system.dao.JUnitDao;
@@ -4787,6 +4784,11 @@ public class SubInfoServiceImpl implements SubInfoService {
                 subInfoMapper.selectSubPreNewBySubIds(subIdList)
         ).orElse(Collections.emptyList());
 
+        // 获取行业
+        List<SubIndu> subInduList = Optional.ofNullable(
+                subInduService.queryTreeALl()
+        ).orElse(Collections.emptyList());
+
 
         //对手续信息按照id进行分组
         Map<String, List<SubInfoFixDetailPreNew>> preNewMap = preNewList.stream().collect(Collectors.groupingBy(SubInfoFixDetailPreNew::getSubId));
@@ -4831,8 +4833,29 @@ public class SubInfoServiceImpl implements SubInfoService {
             if (StringUtils.isNotBlank(e.getSubjectId())){
                 e.setSubjectId(jsddList.stream().filter(f->f.getCode().equals(e.getSubjectId())).findFirst().map(TSystable::getTitle).orElse(""));
             }
-        });
 
+            //遍历subInfoTotalExcel将万元转换为亿元
+            e.setAmtTotal(e.getAmtTotal().divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP));
+
+            //设置行业
+            if (StringUtil.isNotEmpty(e.getIndusKind())) {
+                String induskind = e.getIndusKind();
+                //这是新的行业列表subInduList,subInduList中有children里面装的子行业,我需要将induskind替换为subInduList中的一级行业title
+                Optional<SubIndu> first = subInduList.stream().filter(item -> item.getCode().equals(induskind)).findFirst();
+                if (first.isPresent()) {
+                    //判断上级名称是否存在,如果存在将induskind替换为上级名称,否则将induskind替换为名称
+                    if (StringUtil.isNotEmpty(first.get().getParentTitle())) {
+                        e.setIndusKind(first.get().getParentTitle());
+                    } else {
+                        e.setIndusKind(first.get().getTitle());
+                    }
+                }else {
+                    e.setIndusKind("");
+                }
+            }else {
+                e.setIndusKind("");
+            }
+        });
 
         return dataList;
     }
@@ -4888,6 +4911,129 @@ public class SubInfoServiceImpl implements SubInfoService {
         return dataList;
     }
 
+    @Override
+    public List<SubInfoFixZjDetail> exportFixZjDetailExcel(SubInfoQueryTzVO vo) {
+
+        // 查询所有的重点项目信息,若结果为空则初始化为一个空列表
+        List<SubInfoFixZjDetail> dataList = Optional.ofNullable(
+                subInfoMapper.exportFixZjDetailExcel(vo.getStateFix(), vo.getYear())
+        ).orElse(Collections.emptyList());
+
+        //获取所有SubInfoFixZjDetail的id
+        List<String> subIdList = dataList.stream().map(SubInfoFixZjDetail::getId).collect(Collectors.toList());
+        if (!subIdList.isEmpty()){
+            //查询项目中的年度金额
+            List<MoneyMap> yearMoneyMap = Optional.ofNullable(
+                    subInfoMapper.selectYearMoney(subIdList, vo.getYear())
+            ).orElse(Collections.emptyList());
+            dataList.forEach(e->{
+                //遍历yearMoneyMap,将id相同的金额赋值给e
+                yearMoneyMap.forEach(f->{
+                    if (e.getId().equals(f.getSubId())){
+                        e.setYearMoneyTotal(f.getAmt());
+                    }
+                });
+            });
+        }
+
+        // 获取项目建设地点
+        List<TSystable> jsddList = Optional.ofNullable(
+                tSysTableService.getByKind(SysTableKind.JSDD)
+        ).orElse(Collections.emptyList());
+
+        // 获取行业
+        List<SubIndu> subInduList = Optional.ofNullable(
+                subInduService.queryTreeALl()
+        ).orElse(Collections.emptyList());
+
+        // 遍历重点项目信息,找到对应的前期手续信息,然后拼接手续完成情况为字符串,拼接到对应的重点项目信息中
+        dataList.forEach(e->{
+            //设置项目所在地
+            if (StringUtils.isNotBlank(e.getSubjectId())){
+                e.setSubjectId(jsddList.stream().filter(f->f.getCode().equals(e.getSubjectId())).findFirst().map(TSystable::getTitle).orElse(""));
+            }
+
+            //设置行业
+            if (StringUtil.isNotEmpty(e.getIndusKind())) {
+                String induskind = e.getIndusKind();
+                //这是新的行业列表subInduList,subInduList中有children里面装的子行业,我需要将induskind替换为subInduList中的一级行业title
+                Optional<SubIndu> first = subInduList.stream().filter(item -> item.getCode().equals(induskind)).findFirst();
+                if (first.isPresent()) {
+                    //判断上级名称是否存在,如果存在将induskind替换为上级名称,否则将induskind替换为名称
+                    if (StringUtil.isNotEmpty(first.get().getParentTitle())) {
+                        e.setIndusKind(first.get().getParentTitle());
+                    } else {
+                        e.setIndusKind(first.get().getTitle());
+                    }
+                }else {
+                    e.setIndusKind("");
+                }
+            }else {
+                e.setIndusKind("");
+            }
+
+            //将万元转换为亿元
+            if (e.getAmtTotal() == null){
+                e.setAmtTotal(new BigDecimal("0"));
+            }
+            e.setAmtTotal(e.getAmtTotal().divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP));
+            if (e.getYearMoneyTotal() == null){
+                e.setYearMoneyTotal(new BigDecimal("0"));
+            }
+            e.setYearMoneyTotal(e.getYearMoneyTotal().divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP));
+        });
+
+        return dataList;
+    }
+
+    @Override
+    public List<SubInfoFixTcDetail> exportFixTcDetailExcel(SubInfoQueryTzVO vo) {
+
+        // 查询所有的重点项目信息,若结果为空则初始化为一个空列表
+        List<SubInfoFixTcDetail> dataList = Optional.ofNullable(
+                subInfoMapper.exportFixTcDetailExcel(vo.getStateFix(), vo.getYear())
+        ).orElse(Collections.emptyList());
+
+        // 获取项目建设地点
+        List<TSystable> jsddList = Optional.ofNullable(
+                tSysTableService.getByKind(SysTableKind.JSDD)
+        ).orElse(Collections.emptyList());
+
+        // 获取行业
+        List<SubIndu> subInduList = Optional.ofNullable(
+                subInduService.queryTreeALl()
+        ).orElse(Collections.emptyList());
+
+        // 遍历重点项目信息,找到对应的前期手续信息,然后拼接手续完成情况为字符串,拼接到对应的重点项目信息中
+        dataList.forEach(e->{
+            //设置项目所在地
+            if (StringUtils.isNotBlank(e.getSubjectId())){
+                e.setSubjectId(jsddList.stream().filter(f->f.getCode().equals(e.getSubjectId())).findFirst().map(TSystable::getTitle).orElse(""));
+            }
+
+            //设置行业
+            if (StringUtil.isNotEmpty(e.getIndusKind())) {
+                String induskind = e.getIndusKind();
+                //这是新的行业列表subInduList,subInduList中有children里面装的子行业,我需要将induskind替换为subInduList中的一级行业title
+                Optional<SubIndu> first = subInduList.stream().filter(item -> item.getCode().equals(induskind)).findFirst();
+                if (first.isPresent()) {
+                    //判断上级名称是否存在,如果存在将induskind替换为上级名称,否则将induskind替换为名称
+                    if (StringUtil.isNotEmpty(first.get().getParentTitle())) {
+                        e.setIndusKind(first.get().getParentTitle());
+                    } else {
+                        e.setIndusKind(first.get().getTitle());
+                    }
+                }else {
+                    e.setIndusKind("");
+                }
+            }else {
+                e.setIndusKind("");
+            }
+        });
+
+        return dataList;
+    }
+
     @Override
     public List<SubInfoTotalExcel> exportTotalExcelByStatus(SubInfoQueryTzVO vo) {
         return subInfoMapper.exportTotalExcelByStatus(vo.getStatus());

+ 14 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/export/MoneyMap.java

@@ -0,0 +1,14 @@
+package com.rtrh.projects.modules.projects.vo.export;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class MoneyMap {
+
+    public String subId;
+
+    public BigDecimal amt;
+
+}

+ 29 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/export/SubInfoFixTcDetail.java

@@ -0,0 +1,29 @@
+package com.rtrh.projects.modules.projects.vo.export;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class SubInfoFixTcDetail {
+
+
+    private String id; // 序号
+
+    private String subName; // 项目名称
+
+    private String subjectId;   // 项目所在地
+
+    private String content; // 项目内容
+
+    private Date rgDate;    // 计划投产时间
+
+    private String progress;    // 进展情况
+
+    private String remark;  // 备注
+
+    private String indusKind;   //行业
+
+
+}

+ 31 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/export/SubInfoFixZjDetail.java

@@ -0,0 +1,31 @@
+package com.rtrh.projects.modules.projects.vo.export;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class SubInfoFixZjDetail {
+
+    private String id; // 序号
+
+    private String subName; // 项目名称
+
+    private String subjectId;   // 项目所在地
+
+    private String content; // 项目内容
+
+    private String Date;    // 计划投产时间
+
+    private BigDecimal amtTotal;    // 总金额
+
+    private BigDecimal yearMoneyTotal;  //项目前期手续办理情况
+
+    private String progress;    // 进展情况
+
+    private String remark;  // 备注
+
+    private String indusKind;   //行业
+
+}

+ 293 - 31
projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java

@@ -6,6 +6,7 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -997,13 +998,13 @@ public class SubInfoExportController extends BaseController {
     }
 
     /**
-     * 导出重点项目明细表
+     * 导出重点项目新建明细表
      *
      * @param response
      * @param vo
      */
-    @PostMapping("/exportFixDetailExcel")
-    public void exportFixDetailExcel(HttpServletResponse response, @RequestBody SubInfoQueryTzVO vo) throws IOException {
+    @PostMapping("/exportFixXjDetailExcel")
+    public void exportFixXjDetailExcel(HttpServletResponse response, @RequestBody SubInfoQueryTzVO vo) throws IOException {
         try (cn.hutool.poi.excel.ExcelWriter writer = ExcelUtil.getBigWriter();
              ServletOutputStream out = response.getOutputStream()) {
 
@@ -1013,15 +1014,12 @@ public class SubInfoExportController extends BaseController {
                 subInfoTotalExcel = CollUtil.newArrayList();
             }
 
-            //遍历subInfoTotalExcel将万元转换为亿元
-            subInfoTotalExcel.forEach(item -> {
-                item.setAmtTotal(item.getAmtTotal().divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP));
-            });
-
             // 写入标题行
-            List<String> titleRow = CollUtil.newArrayList("四个一批工业项目表");
-            writer.writeHeadRow(titleRow);
-            writer.merge(0, 0, 0, 7, null, true);
+            writer.writeHeadRow(CollUtil.newArrayList("四个一批工业项目表"));
+            writer.merge(0, 0, 0, 6, "“四个一批”工业项目表(新建项目库)", true);
+
+            // 写入子标题行
+            writer.writeHeadRow(CollUtil.newArrayList("序号", "项目名称", "项目所在地", "项目建设内容", "计划总投资(亿元)", "预计开工时间", "前期手续办理情况", "备注"));
 
             // 设置每列的默认宽度
             SXSSFSheet sheet = ((SXSSFWorkbook) writer.getWorkbook()).getSheetAt(0);
@@ -1030,27 +1028,71 @@ public class SubInfoExportController extends BaseController {
                 sheet.setColumnWidth(i, defaultColumnWidth * 256); // 其他列保持默认宽度
             }
 
-            //写入合计行数据
-            String total = "合计(" + subInfoTotalExcel.size() + ")";
-            //计算总金额
-            BigDecimal totalAmt = subInfoTotalExcel.stream().map(SubInfoFixDetail::getAmtTotal).reduce(BigDecimal.ZERO, BigDecimal::add);
-            List<String> totalRow = CollUtil.newArrayList(total,total,total,total,totalAmt.toString(),"","","","");
-            writer.write(totalRow, true);
-            writer.merge(1, 1, 0, 7, null, true);
+            // 写入合计行
+            BigDecimal totalAmt = subInfoTotalExcel.stream()
+                    .map(SubInfoFixDetail::getAmtTotal)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            writer.writeRow(CollUtil.newArrayList(
+                    "合计(" + subInfoTotalExcel.size() + "个)", "", "", "", totalAmt.toString(), "", "", ""));
+            writer.merge(2, 2, 0, 3, null, true);
 
 
-            // 自定义标题别名
-            writer.addHeaderAlias("id", "序号");
-            writer.addHeaderAlias("subName", "项目名称");
-            writer.addHeaderAlias("subjectId", "项目所在地");
-            writer.addHeaderAlias("content", "项目建设内容");
-            writer.addHeaderAlias("amtTotal", "计划总投资(亿元)");
-            writer.addHeaderAlias("beginDate", "预计开工时间");
-            writer.addHeaderAlias("Formalities", "前期手续办理情况");
-            writer.addHeaderAlias("remark", "备注");
+            //对数据根据行业进行分组
+            Map<String, List<SubInfoFixDetail>> hyflGroupData = subInfoTotalExcel.stream().collect(Collectors.groupingBy(SubInfoFixDetail::getIndusKind));
+            int startRow = 3;
+            int titleNumber = 1;
+            //初始化值
+            List<List<String>> valueList = new ArrayList<>();
+            //需要合并行的集合
+            List<Integer> mergeRowList = new ArrayList<>();
+            for (Map.Entry<String, List<SubInfoFixDetail>> entry : hyflGroupData.entrySet()) {
+                String key = entry.getKey();
+                List<SubInfoFixDetail> value = entry.getValue();
 
-            // 写入数据
-            writer.write(subInfoTotalExcel, true);
+                //我需要将key进行拼接,例如这是第1个key,前面就加一个中文一
+                String newKey = StringUtils.toChineseNumber(titleNumber++) + "、" + key + "(" + value.size() + "个)";
+
+                //遍历value将id设置为从1开始的值,并计算总金额
+                BigDecimal hyflTotalAmt = BigDecimal.ZERO;
+                for (int i = 0; i < value.size(); i++) {
+                    value.get(i).setId(String.valueOf(i + 1));
+                    hyflTotalAmt = hyflTotalAmt.add(value.get(i).getAmtTotal());
+
+                }
+
+                //写入行业标题行
+                List<String> hyflTitleRow = CollUtil.newArrayList(newKey,newKey,newKey,newKey,hyflTotalAmt.toString(),"","","");
+                valueList.add(hyflTitleRow);
+                mergeRowList.add(startRow);
+                startRow++;
+
+
+                //将value转换为列表
+                // 日期格式化器
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月");
+                List<List<String>> data = value.stream().map(e -> {
+                    List<String> row = new ArrayList<>();
+                    row.add(e.getId());
+                    row.add(e.getSubName());
+                    row.add(e.getSubjectId());
+                    row.add(e.getContent());
+                    row.add(e.getAmtTotal() != null ? e.getAmtTotal().toString() : ""); // 处理空值
+                    row.add(e.getBeginDate() != null ? formatter.format(e.getBeginDate()) : ""); // 日期格式化
+                    row.add(e.getFormalities());
+                    row.add(e.getRemark());
+                    return row;
+                }).collect(Collectors.toList());
+                valueList.addAll(data);
+                startRow += value.size();
+            }
+
+            //根据合并行进行合并
+            for (int i = 0; i < mergeRowList.size(); i++) {
+                writer.merge(mergeRowList.get(i), mergeRowList.get(i), 0, 3, null, true);
+            }
+
+            //写入行业明细行
+            writer.write(valueList, true);
 
             // 设置响应头
             response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
@@ -1106,7 +1148,7 @@ public class SubInfoExportController extends BaseController {
                     .map(SubInfoFixCbDetail::getAmtTotal)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
             writer.writeRow(CollUtil.newArrayList(
-                    "合计(" + subInfoTotalExcel.size() + ")", "", "", "", totalAmt.toString(), "", ""));
+                    "合计(" + subInfoTotalExcel.size() + ")", "", "", "", totalAmt.toString(), "", ""));
             writer.merge(2, 2, 0, 3, null, true);
 
 
@@ -1123,7 +1165,7 @@ public class SubInfoExportController extends BaseController {
                 List<SubInfoFixCbDetail> value = entry.getValue();
 
                 //我需要将key进行拼接,例如这是第1个key,前面就加一个中文一
-                String newKey = StringUtils.toChineseNumber(titleNumber++) + "、" + key + "(" + value.size() + ")";
+                String newKey = StringUtils.toChineseNumber(titleNumber++) + "、" + key + "(" + value.size() + ")";
 
                 //遍历value将id设置为从1开始的值,并计算总金额
                 BigDecimal hyflTotalAmt = BigDecimal.ZERO;
@@ -1166,6 +1208,226 @@ public class SubInfoExportController extends BaseController {
         }
     }
 
+    /**
+     * 导出重点项目储备明细表
+     *
+     * @param response
+     * @param vo
+     */
+    @PostMapping("/exportFixZjDetailExcel")
+    public void exportFixZjDetailExcel(HttpServletResponse response, @RequestBody SubInfoQueryTzVO vo) throws IOException {
+
+        // 设置响应头
+        response.setContentType("application/vnd.ms-excel;charset=utf-8");
+        response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("重点项目调度-项目数据.xlsx", "UTF-8"));
+
+        try (cn.hutool.poi.excel.ExcelWriter writer = ExcelUtil.getBigWriter();
+             ServletOutputStream out = response.getOutputStream()) {
+
+            // 获取数据
+            List<SubInfoFixZjDetail> subInfoTotalExcel = subInfoService.exportFixZjDetailExcel(vo);
+
+            // 写入标题行
+            writer.writeHeadRow(CollUtil.newArrayList("四个一批工业项目表"));
+            writer.merge(0, 0, 0, 8, "“四个一批”工业项目表(在建项目库)", true);
+
+            // 写入子标题行
+            writer.writeHeadRow(CollUtil.newArrayList("序号", "项目名称", "项目所在地", "项目建设内容", "计划总投资(亿元)", "建成投产时间","年度投资(亿元)","进展情况", "备注"));
+
+            // 设置每列的默认宽度
+            SXSSFSheet sheet = ((SXSSFWorkbook) writer.getWorkbook()).getSheetAt(0);
+            int defaultColumnWidth = 40; // 默认宽度为20个字符
+            for (int i = 0; i < 9; i++) {
+                sheet.setColumnWidth(i, defaultColumnWidth * 256); // 其他列保持默认宽度
+            }
+
+            // 写入合计行
+            BigDecimal totalAmt = subInfoTotalExcel.stream()
+                    .map(SubInfoFixZjDetail::getAmtTotal)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
+            writer.writeRow(CollUtil.newArrayList(
+                    "合计(" + subInfoTotalExcel.size() + "个)", "", "", "", totalAmt.toString(), "", ""));
+            writer.merge(2, 2, 0, 3, null, true);
+
+
+            //对数据根据行业进行分组
+            Map<String, List<SubInfoFixZjDetail>> hyflGroupData = subInfoTotalExcel.stream().collect(Collectors.groupingBy(SubInfoFixZjDetail::getIndusKind));
+            int startRow = 3;
+            int titleNumber = 1;
+            //初始化值
+            List<List<String>> valueList = new ArrayList<>();
+            //需要合并行的集合
+            List<Integer> mergeRowList = new ArrayList<>();
+            for (Map.Entry<String, List<SubInfoFixZjDetail>> entry : hyflGroupData.entrySet()) {
+                String key = entry.getKey();
+                List<SubInfoFixZjDetail> value = entry.getValue();
+
+                //我需要将key进行拼接,例如这是第1个key,前面就加一个中文一
+                String newKey = StringUtils.toChineseNumber(titleNumber++) + "、" + key + "(" + value.size() + "个)";
+
+                //遍历value将id设置为从1开始的值,并计算总金额
+                BigDecimal hyflTotalAmt = BigDecimal.ZERO;
+                for (int i = 0; i < value.size(); i++) {
+                    value.get(i).setId(String.valueOf(i + 1));
+                    hyflTotalAmt = hyflTotalAmt.add(value.get(i).getAmtTotal());
+
+                }
+
+                //写入行业标题行
+                List<String> hyflTitleRow = CollUtil.newArrayList(newKey,newKey,newKey,newKey,hyflTotalAmt.toString(),"","");
+                valueList.add(hyflTitleRow);
+                mergeRowList.add(startRow);
+                startRow++;
+
+                //将value转换为列表
+                // 日期格式化器
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月");
+                List<List<String>> data = value.stream().map(e -> {
+                    List<String> row = new ArrayList<>();
+                    row.add(e.getId());
+                    row.add(e.getSubName());
+                    row.add(e.getSubjectId());
+                    row.add(e.getContent());
+                    row.add(e.getAmtTotal() != null ? e.getAmtTotal().toString() : ""); // 处理空值
+                    try {
+                        row.add(e.getDate() != null ? formatter.format(e.getDate()) : ""); // 处理空值
+                    } catch (Exception ex) {
+                        row.add(""); // 处理日期格式化异常
+                    }
+                    row.add(e.getYearMoneyTotal() != null ? e.getYearMoneyTotal().toString() : ""); // 处理空值
+                    row.add(e.getProgress());
+                    row.add(e.getRemark());
+                    return row;
+                }).collect(Collectors.toList());
+                valueList.addAll(data);
+                startRow += value.size();
+            }
+
+            //根据合并行进行合并
+            for (int i = 0; i < mergeRowList.size(); i++) {
+                writer.merge(mergeRowList.get(i), mergeRowList.get(i), 0, 3, null, true);
+            }
+
+            //写入行业明细行
+            writer.write(valueList, true);
+            // 输出到客户端
+            writer.flush(out, true);
+
+        } catch (IOException e) {
+            // 处理 IO 异常
+            handleErrorResponse(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "导出 Excel 文件时出现错误:" + e.getMessage());
+        } catch (Exception e) {
+            // 处理其他异常
+            handleErrorResponse(response, HttpServletResponse.SC_BAD_REQUEST, "请求参数错误或发生其他错误:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 导出重点项目储备明细表
+     *
+     * @param response
+     * @param vo
+     */
+    @PostMapping("/exportFixTcDetailExcel")
+    public void exportFixTcDetailExcel(HttpServletResponse response, @RequestBody SubInfoQueryTzVO vo) throws IOException {
+
+        // 设置响应头
+        response.setContentType("application/vnd.ms-excel;charset=utf-8");
+        response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("重点项目调度-项目数据.xlsx", "UTF-8"));
+
+        try (cn.hutool.poi.excel.ExcelWriter writer = ExcelUtil.getBigWriter();
+             ServletOutputStream out = response.getOutputStream()) {
+
+            // 获取数据
+            List<SubInfoFixTcDetail> subInfoTotalExcel = subInfoService.exportFixTcDetailExcel(vo);
+
+            // 写入标题行
+            writer.writeHeadRow(CollUtil.newArrayList("四个一批工业项目表"));
+            writer.merge(0, 0, 0, 6, "“四个一批”工业项目表(投产项目库)", true);
+
+            // 写入子标题行
+            writer.writeHeadRow(CollUtil.newArrayList("序号", "项目名称", "项目所在地", "项目基本情况", "升规入统时间","进展情况", "备注"));
+
+            // 设置每列的默认宽度
+            SXSSFSheet sheet = ((SXSSFWorkbook) writer.getWorkbook()).getSheetAt(0);
+            int defaultColumnWidth = 40; // 默认宽度为20个字符
+            for (int i = 0; i < 7; i++) {
+                sheet.setColumnWidth(i, defaultColumnWidth * 256); // 其他列保持默认宽度
+            }
+
+            // 写入合计行
+            writer.writeRow(CollUtil.newArrayList(
+                    "合计(" + subInfoTotalExcel.size() + "个)", "", "", "", "", "", ""));
+            writer.merge(2, 2, 0, 3, null, true);
+
+
+            //对数据根据行业进行分组
+            Map<String, List<SubInfoFixTcDetail>> hyflGroupData = subInfoTotalExcel.stream().collect(Collectors.groupingBy(SubInfoFixTcDetail::getIndusKind));
+            int startRow = 3;
+            int titleNumber = 1;
+            //初始化值
+            List<List<String>> valueList = new ArrayList<>();
+            //需要合并行的集合
+            List<Integer> mergeRowList = new ArrayList<>();
+            for (Map.Entry<String, List<SubInfoFixTcDetail>> entry : hyflGroupData.entrySet()) {
+                String key = entry.getKey();
+                List<SubInfoFixTcDetail> value = entry.getValue();
+
+                //我需要将key进行拼接,例如这是第1个key,前面就加一个中文一
+                String newKey = StringUtils.toChineseNumber(titleNumber++) + "、" + key + "(" + value.size() + "个)";
+
+                //遍历value将id设置为从1开始的值,并计算总金额
+                for (int i = 0; i < value.size(); i++) {
+                    value.get(i).setId(String.valueOf(i + 1));
+                }
+
+                //写入行业标题行
+                List<String> hyflTitleRow = CollUtil.newArrayList(newKey,newKey,newKey,newKey,"","","");
+                valueList.add(hyflTitleRow);
+                mergeRowList.add(startRow);
+                startRow++;
+
+                //将value转换为列表
+                // 日期格式化器
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月");
+                List<List<String>> data = value.stream().map(e -> {
+                    List<String> row = new ArrayList<>();
+                    row.add(e.getId());
+                    row.add(e.getSubName());
+                    row.add(e.getSubjectId());
+                    row.add(e.getContent());
+                    try {
+                        row.add(e.getRgDate() != null ? formatter.format(e.getRgDate()) : ""); // 处理空值
+                    } catch (Exception ex) {
+                        row.add(""); // 处理日期格式化异常
+                    }
+                    row.add(e.getProgress());
+                    row.add(e.getRemark());
+                    return row;
+                }).collect(Collectors.toList());
+                valueList.addAll(data);
+                startRow += value.size();
+            }
+
+            //根据合并行进行合并
+            for (int i = 0; i < mergeRowList.size(); i++) {
+                writer.merge(mergeRowList.get(i), mergeRowList.get(i), 0, 3, null, true);
+            }
+
+            //写入行业明细行
+            writer.write(valueList, true);
+            // 输出到客户端
+            writer.flush(out, true);
+
+        } catch (IOException e) {
+            // 处理 IO 异常
+            handleErrorResponse(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "导出 Excel 文件时出现错误:" + e.getMessage());
+        } catch (Exception e) {
+            // 处理其他异常
+            handleErrorResponse(response, HttpServletResponse.SC_BAD_REQUEST, "请求参数错误或发生其他错误:" + e.getMessage());
+        }
+    }
+
     private void handleErrorResponse(HttpServletResponse response, int statusCode, String errorMessage) throws IOException {
         response.setStatus(statusCode);
         response.setContentType("text/plain;charset=UTF-8");

+ 1 - 140
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_extend.jsp

@@ -112,29 +112,6 @@
                                         </div>
                                     </div>
                                 </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers">领导</label>
-                                        <div class="layui-input-block">
-                                            <input type="text" name="leaderName" placeholder="请输入领导姓名"
-                                                   autocomplete="off"
-                                                   class="layui-input">
-                                        </div>
-                                    </div>
-                                </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">投资类型</label>
-                                        <div class="layui-input-block">
-                                            <select name="kindNature">
-                                                <option value="">请选择</option>
-                                                <c:forEach items="${TZXZ }" var="hy">
-                                                    <option value="${hy.code }">${hy.title }</option>
-                                                </c:forEach>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3" style="display:none;">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label label-longers required">项目类型</label>
@@ -143,64 +120,6 @@
                                         </div>
                                     </div>
                                 </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">月份</label>
-                                        <div class="layui-input-block">
-                                            <select id="month" name="month">
-                                                <option value="">请选择</option>
-                                                <option value="1">1月</option>
-                                                <option value="2">2月</option>
-                                                <option value="3">3月</option>
-                                                <option value="4">4月</option>
-                                                <option value="5">5月</option>
-                                                <option value="6">6月</option>
-                                                <option value="7">7月</option>
-                                                <option value="8">8月</option>
-                                                <option value="9">9月</option>
-                                                <option value="10">10月</option>
-                                                <option value="11">11月</option>
-                                                <option value="12">12月</option>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
-                                <c:if test="${isHydw}">
-                                    <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                        <div class="layui-form-item">
-                                            <label class="layui-form-label label-longers required">预警灯</label>
-                                            <div class="layui-input-block">
-                                                <div id="light"></div>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </c:if>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">建设性质</label>
-                                        <div class="layui-input-block">
-                                            <select name="propKind">
-                                                <option value="">请选择</option>
-                                                <c:forEach items="${JSXZ}" var="js">
-                                                    <option value="${js.code }">${js.title }</option>
-                                                </c:forEach>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">资金来源</label>
-                                        <div class="layui-input-block">
-                                            <select name="zjly" lay-search="">
-                                                <option value="">请选择</option>
-                                                <c:forEach items="${ZJLY }" var="zj">
-                                                    <option value="${zj.id }">${zj.title }</option>
-                                                </c:forEach>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 ">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label label-longers required">所属行业</label>
@@ -222,19 +141,6 @@
                                         </div>
                                     </div>
                                 </div>
-                                <c:if test="${isHydw }">
-                                    <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                        <div class="layui-form-item">
-                                            <label class="layui-form-label label-longers">是否分管</label>
-                                            <div class="layui-input-block">
-                                                <select name="blSub">
-                                                    <option value="false">所有项目</option>
-                                                    <option value="true">是</option>
-                                                </select>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </c:if>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 ">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label label-longers">项目单位</label>
@@ -258,36 +164,6 @@
                                         </div>
                                     </div>
                                 </div>
-
-
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers">项目状态</label>
-                                        <div class="layui-input-block">
-                                            <select name="status">
-                                                <option value="">请选择</option>
-                                                <option value="1">项目前期</option>
-                                                <option value="6">待开工</option>
-                                                <option value="7">施工中</option>
-                                                <option value="8">暂停施工</option>
-                                                <option value="A">已竣工</option>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
-                                <%--                   <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                                       <div class="layui-form-item">
-                                                           <label class="layui-form-label label-longers required">资金来源</label>
-                                                           <div class="layui-input-block">
-                                                               <select name="zjly" lay-search="">
-                                                                   <option value="">请选择</option>
-                                                                   <c:forEach items="${ZJLY }" var="zj">
-                                                                       <option value="${zj.id }">${zj.title }</option>
-                                                                   </c:forEach>
-                                                               </select>
-                                                           </div>
-                                                       </div>
-                                                   </div>--%>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label label-longers ">偏离度</label>
@@ -920,18 +796,6 @@
                     if (params) {
                         layui.form.val("searchForm", JSON.parse(params));
                     }
-                    if (${ isHydw }) {
-                        this.light = layui.xmSelect.render({
-                            el: "#light",
-                            language: 'zn',
-                            data: [
-                                /*       {value: '0', name: '绿灯'},*/
-                                {value: '1', name: '黄灯'},
-                                {value: '2', name: '红灯'}
-                            ]
-                        })
-                    }
-                    ;
                     document.getElementById("exportId", function () {
                         self.showExport = true;
                         console.log('移入了')
@@ -1083,9 +947,6 @@
                         param.beginDate = param.year + "-01-01";
                         param.endDate = param.year + "-12-31";
                     }
-                    if (this.light) {
-                        param.light = this.light.getValue("valueStr");
-                    }
                     if (this.indusKind) {
                         param.indusKind = this.indusKind.getValue("valueStr");
                     }
@@ -1632,7 +1493,7 @@
                     var param = this.getSearchParams();
                     param.stateFix = this.getSearchParams().fixCat;
                     param.isFix = '1';
-                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixDetailExcel"), "POST", param, "重点项目-在建明细表.xlsx", "导出失败");
+                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixZjDetailExcel"), "POST", param, "重点项目-在建明细表.xlsx", "导出失败");
                 },
                 search: function () {
                     var param = layui.form.getValue("searchForm");

+ 1 - 196
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_new.jsp

@@ -111,29 +111,6 @@
                                         </div>
                                     </div>
                                 </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers">领导</label>
-                                        <div class="layui-input-block">
-                                            <input type="text" name="leaderName" placeholder="请输入领导姓名"
-                                                   autocomplete="off"
-                                                   class="layui-input">
-                                        </div>
-                                    </div>
-                                </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">投资类型</label>
-                                        <div class="layui-input-block">
-                                            <select name="kindNature">
-                                                <option value="">请选择</option>
-                                                <c:forEach items="${TZXZ }" var="hy">
-                                                    <option value="${hy.code }">${hy.title }</option>
-                                                </c:forEach>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3" style="display:none;">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label label-longers required">项目类型</label>
@@ -142,64 +119,6 @@
                                         </div>
                                     </div>
                                 </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">月份</label>
-                                        <div class="layui-input-block">
-                                            <select id="month" name="month">
-                                                <option value="">请选择</option>
-                                                <option value="1">1月</option>
-                                                <option value="2">2月</option>
-                                                <option value="3">3月</option>
-                                                <option value="4">4月</option>
-                                                <option value="5">5月</option>
-                                                <option value="6">6月</option>
-                                                <option value="7">7月</option>
-                                                <option value="8">8月</option>
-                                                <option value="9">9月</option>
-                                                <option value="10">10月</option>
-                                                <option value="11">11月</option>
-                                                <option value="12">12月</option>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
-                                <c:if test="${isHydw}">
-                                    <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                        <div class="layui-form-item">
-                                            <label class="layui-form-label label-longers required">预警灯</label>
-                                            <div class="layui-input-block">
-                                                <div id="light"></div>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </c:if>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">建设性质</label>
-                                        <div class="layui-input-block">
-                                            <select name="propKind">
-                                                <option value="">请选择</option>
-                                                <c:forEach items="${JSXZ}" var="js">
-                                                    <option value="${js.code }">${js.title }</option>
-                                                </c:forEach>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">资金来源</label>
-                                        <div class="layui-input-block">
-                                            <select name="zjly" lay-search="">
-                                                <option value="">请选择</option>
-                                                <c:forEach items="${ZJLY }" var="zj">
-                                                    <option value="${zj.id }">${zj.title }</option>
-                                                </c:forEach>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 ">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label label-longers required">所属行业</label>
@@ -221,19 +140,6 @@
                                         </div>
                                     </div>
                                 </div>
-                                <c:if test="${isHydw }">
-                                    <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                        <div class="layui-form-item">
-                                            <label class="layui-form-label label-longers">是否分管</label>
-                                            <div class="layui-input-block">
-                                                <select name="blSub">
-                                                    <option value="false">所有项目</option>
-                                                    <option value="true">是</option>
-                                                </select>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </c:if>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 ">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label label-longers">项目单位</label>
@@ -258,22 +164,6 @@
                                     </div>
                                 </div>
 
-
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers">项目状态</label>
-                                        <div class="layui-input-block">
-                                            <select name="status">
-                                                <option value="">请选择</option>
-                                                <option value="1">项目前期</option>
-                                                <option value="6">待开工</option>
-                                                <option value="7">施工中</option>
-                                                <option value="8">暂停施工</option>
-                                                <option value="A">已竣工</option>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
                                 <%--                   <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
                                                        <div class="layui-form-item">
                                                            <label class="layui-form-label label-longers required">资金来源</label>
@@ -383,65 +273,8 @@
                                 </div>
                             </div>
                         </label>
-                        <label class="juli">
-                            未开工项目数<span class="lanse-first">{{beginRate.noNum}}</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
-                                </div>
-                            </div>
-                        </label>
-                        <label class="juli">
-                            已开工项目数<span class="lanse-first">{{beginRate.beginNum}}</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
-                                </div>
-                            </div>
-                        </label>
-                      <%--  <label class="juli">
-                            已竣工项目数<span class="lanse-first">{{beginRate.endNum}}</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>
-                                </div>
-                            </div>
-                        </label>
-                        <label class="juli">
-                            停工项目数<span class="lanse-first">{{beginRate.stopNum}}</span>
-                            <div class="progress-div">
-                                <div class="layui-progress" lay-filter="layui-progress-bar">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.stopRate"></div>
-                                </div>
-                            </div>
-                        </label>
---%>
-                        <label class="juli">
-                            开工率<span class="lanse-first">{{beginRate.beginRate}}</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
-                                </div>
-                            </div>
-                        </label>
-                       <%-- <label class="juli">
-                            竣工率<span class="lanse-first">{{beginRate.endRate}}</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>
-                                </div>
-                            </div>
-                        </label>--%>
                     </div>
                     <div style="display: flex">
-                        <label class="juli">
-                            投资进度<span class="lanse-first">{{beginRate.amtRate}}%</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.amtRate+'%'"></div>
-                                </div>
-                            </div>
-                        </label>
                         <label class="juli">
                             年初计划<span class="lanse-first">{{beginRate.yearAmt}}亿元</span>
                             <div class="progress-div">
@@ -497,19 +330,6 @@
                     </div>
                     <div class="sanjiao"></div>
                     <div class="export-item" v-if="showExport" style="right: 5px;top:-30px">
-                        <%--                        <button type="button" class="" @click="exportExcel">--%>
-                        <%--                            项目汇总--%>
-                        <%--                        </button>--%>
-                        <%--                        <button type="button" class=""--%>
-                        <%--                                @click="exportExcelByIndusKind">按所属行业--%>
-                        <%--                        </button>--%>
-                        <%--                        <button type="button" class=""--%>
-                        <%--                                @click="exportSchedulingExcel">项目调度表--%>
-                        <%--                        </button>--%>
-                        <%--                        <!-- <button type="button" class="" @click="exportExcel2">项目明细导出</button> -->--%>
-                        <%--                        <button type="button" class=""--%>
-                        <%--                                @click="exportMoreExcel">自定义--%>
-                        <%--                        </button>--%>
                         <button type="button" class="" @click="exportProject">新建项目</button>
                     </div>
                 </div>
@@ -918,18 +738,6 @@
                     if (params) {
                         layui.form.val("searchForm", JSON.parse(params));
                     }
-                    if (${ isHydw }) {
-                        this.light = layui.xmSelect.render({
-                            el: "#light",
-                            language: 'zn',
-                            data: [
-                                /*       {value: '0', name: '绿灯'},*/
-                                {value: '1', name: '黄灯'},
-                                {value: '2', name: '红灯'}
-                            ]
-                        })
-                    }
-                    ;
                     document.getElementById("exportId", function () {
                         self.showExport = true;
                         console.log('移入了')
@@ -1081,9 +889,6 @@
                         param.beginDate = param.year + "-01-01";
                         param.endDate = param.year + "-12-31";
                     }
-                    if (this.light) {
-                        param.light = this.light.getValue("valueStr");
-                    }
                     if (this.indusKind) {
                         param.indusKind = this.indusKind.getValue("valueStr");
                     }
@@ -1629,7 +1434,7 @@
                     var param = this.getSearchParams();
                     param.stateFix = this.getSearchParams().fixCat;
                     param.isFix = '1';
-                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixDetailExcel"), "POST", param, "重点项目-新建明细表.xlsx", "导出失败");
+                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixXjDetailExcel"), "POST", param, "重点项目-新建明细表.xlsx", "导出失败");
                 },
                 search: function () {
                     var param = layui.form.getValue("searchForm");

+ 1 - 140
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_sum.jsp

@@ -111,29 +111,6 @@
                                         </div>
                                     </div>
                                 </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers">领导</label>
-                                        <div class="layui-input-block">
-                                            <input type="text" name="leaderName" placeholder="请输入领导姓名"
-                                                   autocomplete="off"
-                                                   class="layui-input">
-                                        </div>
-                                    </div>
-                                </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">投资类型</label>
-                                        <div class="layui-input-block">
-                                            <select name="kindNature">
-                                                <option value="">请选择</option>
-                                                <c:forEach items="${TZXZ }" var="hy">
-                                                    <option value="${hy.code }">${hy.title }</option>
-                                                </c:forEach>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3" style="display:none;">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label label-longers required">项目类型</label>
@@ -142,64 +119,6 @@
                                         </div>
                                     </div>
                                 </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">月份</label>
-                                        <div class="layui-input-block">
-                                            <select id="month" name="month">
-                                                <option value="">请选择</option>
-                                                <option value="1">1月</option>
-                                                <option value="2">2月</option>
-                                                <option value="3">3月</option>
-                                                <option value="4">4月</option>
-                                                <option value="5">5月</option>
-                                                <option value="6">6月</option>
-                                                <option value="7">7月</option>
-                                                <option value="8">8月</option>
-                                                <option value="9">9月</option>
-                                                <option value="10">10月</option>
-                                                <option value="11">11月</option>
-                                                <option value="12">12月</option>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
-                                <c:if test="${isHydw}">
-                                    <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                        <div class="layui-form-item">
-                                            <label class="layui-form-label label-longers required">预警灯</label>
-                                            <div class="layui-input-block">
-                                                <div id="light"></div>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </c:if>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">建设性质</label>
-                                        <div class="layui-input-block">
-                                            <select name="propKind">
-                                                <option value="">请选择</option>
-                                                <c:forEach items="${JSXZ}" var="js">
-                                                    <option value="${js.code }">${js.title }</option>
-                                                </c:forEach>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers required">资金来源</label>
-                                        <div class="layui-input-block">
-                                            <select name="zjly" lay-search="">
-                                                <option value="">请选择</option>
-                                                <c:forEach items="${ZJLY }" var="zj">
-                                                    <option value="${zj.id }">${zj.title }</option>
-                                                </c:forEach>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 ">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label label-longers required">所属行业</label>
@@ -221,19 +140,6 @@
                                         </div>
                                     </div>
                                 </div>
-                                <c:if test="${isHydw }">
-                                    <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                        <div class="layui-form-item">
-                                            <label class="layui-form-label label-longers">是否分管</label>
-                                            <div class="layui-input-block">
-                                                <select name="blSub">
-                                                    <option value="false">所有项目</option>
-                                                    <option value="true">是</option>
-                                                </select>
-                                            </div>
-                                        </div>
-                                    </div>
-                                </c:if>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 ">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label label-longers">项目单位</label>
@@ -257,36 +163,6 @@
                                         </div>
                                     </div>
                                 </div>
-
-
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers">项目状态</label>
-                                        <div class="layui-input-block">
-                                            <select name="status">
-                                                <option value="">请选择</option>
-                                                <option value="1">项目前期</option>
-                                                <option value="6">待开工</option>
-                                                <option value="7">施工中</option>
-                                                <option value="8">暂停施工</option>
-                                                <option value="A">已竣工</option>
-                                            </select>
-                                        </div>
-                                    </div>
-                                </div>
-                                <%--                   <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                                       <div class="layui-form-item">
-                                                           <label class="layui-form-label label-longers required">资金来源</label>
-                                                           <div class="layui-input-block">
-                                                               <select name="zjly" lay-search="">
-                                                                   <option value="">请选择</option>
-                                                                   <c:forEach items="${ZJLY }" var="zj">
-                                                                       <option value="${zj.id }">${zj.title }</option>
-                                                                   </c:forEach>
-                                                               </select>
-                                                           </div>
-                                                       </div>
-                                                   </div>--%>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label label-longers ">偏离度</label>
@@ -917,18 +793,6 @@
                     if (params) {
                         layui.form.val("searchForm", JSON.parse(params));
                     }
-                    if (${ isHydw }) {
-                        this.light = layui.xmSelect.render({
-                            el: "#light",
-                            language: 'zn',
-                            data: [
-                                /*       {value: '0', name: '绿灯'},*/
-                                {value: '1', name: '黄灯'},
-                                {value: '2', name: '红灯'}
-                            ]
-                        })
-                    }
-                    ;
                     document.getElementById("exportId", function () {
                         self.showExport = true;
                         console.log('移入了')
@@ -1080,9 +944,6 @@
                         param.beginDate = param.year + "-01-01";
                         param.endDate = param.year + "-12-31";
                     }
-                    if (this.light) {
-                        param.light = this.light.getValue("valueStr");
-                    }
                     if (this.indusKind) {
                         param.indusKind = this.indusKind.getValue("valueStr");
                     }
@@ -1635,7 +1496,7 @@
                     var param = this.getSearchParams();
                     param.stateFix = this.getSearchParams().fixCat;
                     param.isFix = '1';
-                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixDetailExcel"), "POST", param, "重点项目-投产明细表.xlsx", "导出失败");
+                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixTcDetailExcel"), "POST", param, "重点项目-投产明细表.xlsx", "导出失败");
                 },
                 search: function () {
                     var param = layui.form.getValue("searchForm");