Quellcode durchsuchen

新增导出项目明细表功能
菜单移除发改委相关目录
新增正在开发中页面及接口

Wayne vor 4 Monaten
Ursprung
Commit
375412ac5d

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

@@ -9,6 +9,7 @@ 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.SubInfoFixDetail;
 import org.apache.ibatis.annotations.Param;
 
 import com.rtrh.core.repository.mybatis.MyBatisRepository;
@@ -54,4 +55,8 @@ public interface SubInfoMapper {
     void updateFixeCat(@Param("subInfoId") String subInfoId, @Param("fixCat") String fixCat, @Param("oldCat") String oldCat);
 
     List<SubInfoTotalExcel> getFixTotalExcel(@Param("stateFix") String stateFix,@Param("year") String year);
+
+    List<SubInfoFixDetail> exportFixDetailExcel(@Param("stateFix")String stateFix, @Param("year") String year);
+
+    List<SubInfoFixDetailPreNew> selectSubPreNewBySubIds(@Param("subIdList")List<String> subIdList);
 }

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

@@ -359,4 +359,34 @@
         WHERE sub_fix.cat = #{stateFix} and sub_fix.year = #{year} and sub_info.logic_delete_flag = 0
     </select>
 
+    <select id="exportFixDetailExcel" resultType="com.rtrh.projects.modules.projects.vo.export.SubInfoFixDetail">
+        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.begin_date as beginDate,
+               sub_info.amt_total as amtTotal,
+               sub_info.remark as remark
+        FROM sub_fix
+                 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="selectSubPreNewBySubIds" resultType="com.rtrh.projects.modules.projects.vo.SubInfoFixDetailPreNew">
+        SELECT
+            a.sub_id as subId,
+            a.status_conf as statusConf,
+            b.title as title
+        FROM
+            sub_pre_new a
+        LEFT JOIN
+            sub_pre_flow b ON a.pre_flow_id = b.id
+        WHERE
+            a.sub_id IN
+            <foreach collection="subIdList" item="subId" open="(" separator="," close=")">
+            #{subId}
+            </foreach>
+            AND a.status = 1
+            AND a.status_conf IN (1, 2);
+    </select>
+
 </mapper>

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

@@ -11,6 +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.SubInfoFixDetail;
 import com.rtrh.projects.modules.projects.vo.export.SubInfoFixVO;
 import com.rtrh.projects.modules.system.vo.LoginUserVO;
 import com.rtrh.projects.vo.subject.MoveDbParamVo;
@@ -409,4 +410,6 @@ public interface SubInfoService {
 	boolean rg(MoveDbParamVo vo);
 
 	List<SubInfoTotalExcel> getFixTotalExcel(SubInfoQueryTzVO vo);
+
+    List<SubInfoFixDetail> exportFixDetailExcel(SubInfoQueryTzVO vo);
 }

+ 55 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoServiceImpl.java

@@ -14,6 +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.SubInfoFixDetail;
 import com.rtrh.projects.modules.projects.vo.export.SubInfoFixVO;
 import com.rtrh.projects.modules.rolemeun.dao.SecRoleDao;
 import com.rtrh.projects.modules.rolemeun.po.SecRole;
@@ -4762,6 +4763,60 @@ public class SubInfoServiceImpl implements SubInfoService {
         return dataList;
     }
 
+    @Override
+    public List<SubInfoFixDetail> exportFixDetailExcel(SubInfoQueryTzVO vo) {
+
+        // 查询所有的重点项目信息
+        List<SubInfoFixDetail> dataList = subInfoMapper.exportFixDetailExcel(vo.getStateFix(),vo.getYear());
+        //收集所有重点项目信息的id
+        List<String> subIdList = dataList.stream().map(SubInfoFixDetail::getId).collect(Collectors.toList());
+        //查询前期手续办理情况表中的数据,获取所有重点项目的前期手续信息
+        List<SubInfoFixDetailPreNew> preNewList =  subInfoMapper.selectSubPreNewBySubIds(subIdList);
+        //对手续信息按照id进行分组
+        Map<String, List<SubInfoFixDetailPreNew>> preNewMap = preNewList.stream().collect(Collectors.groupingBy(SubInfoFixDetailPreNew::getSubId));
+        //获取项目建设地点
+        List<TSystable> jsddList = tSysTableService.getByKind(SysTableKind.JSDD);
+        // 遍历重点项目信息,找到对应的前期手续信息,然后拼接手续完成情况为字符串,拼接到对应的重点项目信息中
+        dataList.forEach(e->{
+            List<SubInfoFixDetailPreNew> subInfoFixDetailPreNewList = preNewMap.get(e.getId());
+            StringBuilder sb = new StringBuilder();
+            if (CollectionUtil.isNotEmpty(subInfoFixDetailPreNewList)){
+                //已经完成的手续
+                StringBuilder end = new StringBuilder("已完成:");
+                //正在办理的手续
+                StringBuilder yellow = new StringBuilder("进行中:");
+                //判断是否有已完成手续
+                boolean endBoolean = subInfoFixDetailPreNewList.stream().anyMatch(f->"2".equals(f.getStatusConf()));
+                //判断是否有正在进行手续
+                boolean yellowBoolean = subInfoFixDetailPreNewList.stream().anyMatch(f->"1".equals(f.getStatusConf()));
+                subInfoFixDetailPreNewList.forEach(f->{
+                    if ("1".equals(f.getStatusConf())){
+                        yellow.append(f.getTitle()).append(",");
+                    }else if ("2".equals(f.getStatusConf())){
+                        end.append(f.getTitle()).append(",");
+                    }
+                });
+                if (endBoolean){
+                    sb.append(end, 0, end.length()-1).append("。");
+                }
+                if (yellowBoolean){
+                    sb.append(yellow, 0, yellow.length()-1).append("。");
+                }
+                if (!endBoolean && !yellowBoolean){
+                    sb.append("暂无手续办理情况!");
+                }
+            }
+            e.setFormalities(sb.toString());
+            e.setId(String.valueOf(dataList.indexOf(e)+1));
+            if (StringUtils.isNotBlank(e.getSubjectId())){
+                e.setSubjectId(jsddList.stream().filter(f->f.getCode().equals(e.getSubjectId())).findFirst().map(TSystable::getTitle).orElse(""));
+            }
+        });
+
+
+        return dataList;
+    }
+
     @Override
     public boolean moveDb(MoveDbParamVo vo) {
         SubInfo subinfo = subInfoDao.findById(vo.getId());

+ 16 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/SubInfoFixDetailPreNew.java

@@ -0,0 +1,16 @@
+package com.rtrh.projects.modules.projects.vo;
+
+import lombok.Data;
+
+@Data
+public class SubInfoFixDetailPreNew {
+
+    private String subId;   //项目id
+
+    private String statusConf;  //手续办理情况 0-未开始办理 1-开始办理 2-办理完成 3-退回
+
+    private String title;   //手续名称
+
+
+
+}

+ 8 - 0
projects/src/main/java/com/rtrh/projects/web/controller/passport/RegisterController.java

@@ -105,6 +105,14 @@ public class RegisterController extends BaseController {
 		return new ModelAndView("/vmodules/passport/registerList.jsp");
 	}
 
+	/**
+	 * 正在开发中页面
+	 */
+	@GetMapping({"/underConstruction"})
+	public ModelAndView underConstruction(ModelMap model) {
+		return new ModelAndView("/vmodules/underConstruction.jsp");
+	}
+
 
 	/**
 	 * 查询注册信息页面

+ 63 - 7
projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java

@@ -28,7 +28,7 @@ import com.rtrh.core.vo.ListMessage;
 import com.rtrh.projects.modules.projects.dao.SubSourceDao;
 import com.rtrh.projects.modules.projects.enums.ProjectStatusEnum;
 import com.rtrh.projects.modules.projects.vo.SubInfoTotalExcel;
-import com.rtrh.projects.modules.projects.vo.export.SubInfoFixVO;
+import com.rtrh.projects.modules.projects.vo.export.*;
 import com.rtrh.projects.modules.utils.CustomCellWriteWidthStrategy;
 import com.rtrh.projects.modules.utils.DateUtils;
 import com.rtrh.projects.modules.utils.QualificationsDeclareCellWriteHandler;
@@ -55,9 +55,6 @@ import com.rtrh.projects.modules.projects.service.SubInfoExportService;
 import com.rtrh.projects.modules.projects.service.SubInfoQueryService;
 import com.rtrh.projects.modules.projects.service.SubInfoService;
 import com.rtrh.projects.modules.projects.vo.SubInfoQueryTzVO;
-import com.rtrh.projects.modules.projects.vo.export.CustomExcelExportStyler;
-import com.rtrh.projects.modules.projects.vo.export.ExcelExportEntityVO;
-import com.rtrh.projects.modules.projects.vo.export.ExportQueryVO;
 import com.rtrh.projects.modules.system.enums.SysTableKind;
 import com.rtrh.projects.modules.system.po.TSystable;
 import com.rtrh.projects.modules.system.service.TSysTableService;
@@ -620,7 +617,7 @@ public class SubInfoExportController extends BaseController {
     }
 
     /**
-     * 导出总表
+     * 导出重点项目汇总表
      * @param response
      * @param vo
      */
@@ -633,7 +630,7 @@ public class SubInfoExportController extends BaseController {
             //获取属地字典
             List<TSystable> jsddList = tSysTableService.getByKind(SysTableKind.JSDD);
             //获取行业字典
-            List<TSystable> hyflList = tSysTableService.getByKind(SysTableKind.HYFL);
+            List<TSystable> gxjHyfl = tSysTableService.getGxjHyfl(SysTableKind.HYFL);
             //遍历subInfoTotalExcel,将subjectId替换为jsddList中code=subjectId的title
             for (SubInfoTotalExcel data : subInfoTotalExcel) {
                 if (data == null){
@@ -642,7 +639,7 @@ public class SubInfoExportController extends BaseController {
                 String subjectId = data.getSubjectId();
                 String induskind = data.getInduskind();
                 if (StringUtil.isNotEmpty(induskind)) {
-                    Optional<TSystable> first = hyflList.stream().filter(item -> item.getCode().equals(induskind)).findFirst();
+                    Optional<TSystable> first = gxjHyfl.stream().filter(item -> item.getCode().equals(induskind)).findFirst();
                     first.ifPresent(tSystable -> data.setInduskind(tSystable.getTitle()));
                 }
                 if (StringUtil.isNotEmpty(subjectId)) {
@@ -792,6 +789,65 @@ public class SubInfoExportController extends BaseController {
         }
     }
 
+    /**
+     * 导出重点项目明细表
+     * @param response
+     * @param vo
+     */
+    @PostMapping("/exportFixDetailExcel")
+    public void exportFixDetailExcel(HttpServletResponse response, @RequestBody SubInfoQueryTzVO vo) throws IOException {
+        try (cn.hutool.poi.excel.ExcelWriter writer = ExcelUtil.getBigWriter();
+             ServletOutputStream out = response.getOutputStream()) {
+
+            // 获取数据
+            List<SubInfoFixDetail> subInfoTotalExcel = subInfoService.exportFixDetailExcel(vo);
+
+            // 写入标题行
+            List<String> titleRow = CollUtil.newArrayList("四个一批工业项目表");
+            writer.writeHeadRow(titleRow);
+            writer.merge(0, 0, 0, 7, null, true);
+
+            // 设置每列的默认宽度
+            SXSSFSheet sheet = ((SXSSFWorkbook) writer.getWorkbook()).getSheetAt(0);
+            int defaultColumnWidth = 40; // 默认宽度为20个字符
+            for (int i = 0; i < 8; i++) {
+                sheet.setColumnWidth(i, defaultColumnWidth * 256); // 其他列保持默认宽度
+            }
+
+            // 自定义标题别名
+            writer.addHeaderAlias("id", "序号");
+            writer.addHeaderAlias("subName", "项目名称");
+            writer.addHeaderAlias("subjectId", "项目所在地");
+            writer.addHeaderAlias("content", "项目建设内容");
+            writer.addHeaderAlias("amtTotal", "计划总投资(亿元)");
+            writer.addHeaderAlias("beginDate", "预计开工时间");
+            writer.addHeaderAlias("Formalities", "前期手续办理情况");
+            writer.addHeaderAlias("remark", "备注");
+
+            // 写入数据
+            writer.write(subInfoTotalExcel, true);
+
+            // 设置响应头
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("重点项目调度-项目数据.xlsx", "UTF-8"));
+
+            // 输出到客户端
+            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");
+        response.getWriter().write(errorMessage);
+    }
 
     /**
      * 导出调度表

+ 200 - 183
projects/src/main/webapp/vmodules/leftMenu.jsp

@@ -66,11 +66,11 @@
                     icon: 'icon_project_active',
                     activeIcon: 'icon_project_active',
                     code: '4',
-                    txt: '固定资产投资项目四库',
+                    txt: '项目四库管理',
                     child: [
 
                         {
-                            txt: '储备项目库',
+                            txt: '储备库',
                             code: '402',
                             url: 'subject/subInfo/projTz?type=3',
                             before: function () {
@@ -78,7 +78,7 @@
                             }
                         },
                         {
-                            txt: '新建项目库',
+                            txt: '新建库',
                             code: '408',
                             url: 'subject/subInfo/projTz?type=0',
                             before: function () {
@@ -86,7 +86,7 @@
                             }
                         },
                         {
-                            txt: '在建项目库',
+                            txt: '在建库',
                             code: '401',
                             url: 'subject/subInfo/projTz?type=1',
                             before: function () {
@@ -94,7 +94,7 @@
                             }
                         },
                         {
-                            txt: '投产项目库',
+                            txt: '投产库',
                             code: '403',
                             url: 'subject/subInfo/projTz?type=4',
                             before: function () {
@@ -112,6 +112,34 @@
                         }
                     ]
                 },
+                {
+                    icon: 'icon_organ_manage_active',
+                    activeIcon: 'icon_organ_manage_active',
+                    code: '3',
+                    txt: '项目前期管理',
+                    child: [
+                        {
+                            txt: '项目信息申报',
+                            code: '301',
+                            url: 'subject/subInfo/report'
+                        },
+                        // {
+                        //     txt: '项目审核',
+                        //     code: '302',
+                        //     url: 'subject/apply/spList'/* ?type=qx */
+                        // },
+                        // {
+                        //     code: '304',
+                        //     txt: '前期手续办理情况评价',
+                        //     url: 'subject/subInfo/projTz?type=prePj',
+                        // },
+                        {
+                            txt: '前期手续办理情况',
+                            code: '303',
+                            url: 'subject/subInfo/pre'/* ?type=qx */
+                        }
+                    ]
+                },
                 {
                     icon: 'icon_project_active',
                     activeIcon: 'icon_project_active',
@@ -226,81 +254,53 @@
                         }*/
                     ]
                 },
-                {
-                    icon: 'icon_organ_manage_active',
-                    activeIcon: 'icon_organ_manage_active',
-                    code: '3',
-                    txt: '项目前期管理',
-                    child: [
-                        {
-                            txt: '项目信息申报',
-                            code: '301',
-                            url: 'subject/subInfo/report'
-                        },
-                        // {
-                        //     txt: '项目审核',
-                        //     code: '302',
-                        //     url: 'subject/apply/spList'/* ?type=qx */
-                        // },
-                        // {
-                        //     code: '304',
-                        //     txt: '前期手续办理情况评价',
-                        //     url: 'subject/subInfo/projTz?type=prePj',
-                        // },
-                        {
-                            txt: '前期手续办理情况',
-                            code: '303',
-                            url: 'subject/subInfo/pre'/* ?type=qx */
-                        }
-                    ]
-                },
-                {
-                    icon: 'icon_project_active',
-                    activeIcon: 'icon_project_active',
-                    code: '11',
-                    txt: '年度固定资产项目库',
-                    child: [
-                        {
-                            txt: '汇总项目',
-                            code: '1101',
-                            url: 'subject/subInfo/projTz?type=yearSum',
-                            before: function () {
-                                window.localStorage.removeItem("TzQueryParam_yearSum_${loginUserId}")
-                            }
-                        },
-                        {
-                            txt: '新建项目',
-                            code: '1101',
-                            url: 'subject/subInfo/projTz?type=yearNew',
-                            before: function () {
-                                window.localStorage.removeItem("TzQueryParam_yearNew_${loginUserId}")
-                            }
-                        },
-                        {
-                            txt: '续建项目',
-                            code: '1102',
-                            url: 'subject/subInfo/projTz?type=yearExtend',
-                            before: function () {
-                                window.localStorage.removeItem("TzQueryParam_yearExtend_${loginUserId}")
-                            }
-                        },
-                        {
-                            txt: '储备项目',
-                            code: '1103',
-                            url: 'subject/subInfo/projTz?type=yearReserve',
-                            before: function () {
-                                window.localStorage.removeItem("TzQueryParam_yearReserve_${loginUserId}")
-                            }
-                        }
-                    ]
-                },
-                {
-                    icon: 'icon_over_time_active',
-                    activeIcon: 'icon_over_time_active',
-                    code: '2000',
-                    txt: '竣工验收及项目后评价',
-                    url: 'subject/subInfo/projTz?type=8',
-                },
+                <%--{--%>
+                <%--    icon: 'icon_project_active',--%>
+                <%--    activeIcon: 'icon_project_active',--%>
+                <%--    code: '11',--%>
+                <%--    txt: '年度固定资产项目库',--%>
+                <%--    child: [--%>
+                <%--        {--%>
+                <%--            txt: '汇总项目',--%>
+                <%--            code: '1101',--%>
+                <%--            url: 'subject/subInfo/projTz?type=yearSum',--%>
+                <%--            before: function () {--%>
+                <%--                window.localStorage.removeItem("TzQueryParam_yearSum_${loginUserId}")--%>
+                <%--            }--%>
+                <%--        },--%>
+                <%--        {--%>
+                <%--            txt: '新建项目',--%>
+                <%--            code: '1101',--%>
+                <%--            url: 'subject/subInfo/projTz?type=yearNew',--%>
+                <%--            before: function () {--%>
+                <%--                window.localStorage.removeItem("TzQueryParam_yearNew_${loginUserId}")--%>
+                <%--            }--%>
+                <%--        },--%>
+                <%--        {--%>
+                <%--            txt: '续建项目',--%>
+                <%--            code: '1102',--%>
+                <%--            url: 'subject/subInfo/projTz?type=yearExtend',--%>
+                <%--            before: function () {--%>
+                <%--                window.localStorage.removeItem("TzQueryParam_yearExtend_${loginUserId}")--%>
+                <%--            }--%>
+                <%--        },--%>
+                <%--        {--%>
+                <%--            txt: '储备项目',--%>
+                <%--            code: '1103',--%>
+                <%--            url: 'subject/subInfo/projTz?type=yearReserve',--%>
+                <%--            before: function () {--%>
+                <%--                window.localStorage.removeItem("TzQueryParam_yearReserve_${loginUserId}")--%>
+                <%--            }--%>
+                <%--        }--%>
+                <%--    ]--%>
+                <%--},--%>
+                // {
+                //     icon: 'icon_over_time_active',
+                //     activeIcon: 'icon_over_time_active',
+                //     code: '2000',
+                //     txt: '竣工验收及项目后评价',
+                //     url: 'subject/subInfo/projTz?type=8',
+                // },
                 /*              {
                                   icon: 'icon_over_time_active', activeIcon: 'icon_over_time_active',
                                   code: '5',
@@ -311,7 +311,8 @@
                     icon: 'icon_over_time_active', activeIcon: 'icon_over_time_active',
                     code: '5',
                     txt: '统计分析',
-                    url: 'tjfx/index'
+                    // url: 'tjfx/index' 原始路径
+                    url: 'register/underConstruction'
                 },
                 {
                     icon: 'icon_over_time_active',
@@ -323,12 +324,14 @@
                             txt: '问题统计分析',
                             code: '602',
                             //icon: 'icon_question_gz',
-                            url: 'problem/info/index'
+                            // url: 'problem/info/index'
+                            url: 'register/underConstruction'
                         },
                         {
                             txt: '问题推送处理',
                             code: '603',
-                            url: "problemtrack/index"
+                            // url: "problemtrack/index"
+                            url: 'register/underConstruction'
 
                         }
                     ]
@@ -347,44 +350,48 @@
                         {
                             code: '702',
                             txt: '项目地图',
-                            url: 'smart/query'
+                            // url: 'smart/query'
+                            url: 'register/underConstruction'
                         },
                         {
                             code: '703',
                             txt: '实时视频',
-                            url: 'smart/vedio'
+                            // url: 'smart/vedio'
+                            url: 'register/underConstruction'
                         },
                         {
                             txt: '周调度图片',
                             code: '706',
-                            url: 'graphicProgress/list'
+                            // url: 'graphicProgress/list'
+                            url: 'register/underConstruction'
                         },
                         {
                             txt: '月航拍全景',
                             code: '707',
-                            url: 'aerial/list'
+                            // url: 'aerial/list'
+                            url: 'register/underConstruction'
                         }
 
                     ]
                 },
-                {
-                    icon: 'icon_project_active',
-                    activeIcon: 'icon_project_active',
-                    code: '8',
-                    txt: '产业链共享服务',
-                    url: 'intermediary/list'
-                    /* child: [
-                        {
-                            txt: '产业链服务库列表',
-                            code: '801',
-                            url: 'intermediary/list'
-                        },{
-                            txt: '产业链服务库统计',
-                            code: '802',
-                            url: 'intermediary/statics'
-                        },
-                    ] */
-                },
+                // {
+                //     icon: 'icon_project_active',
+                //     activeIcon: 'icon_project_active',
+                //     code: '8',
+                //     txt: '产业链共享服务',
+                //     url: 'intermediary/list'
+                //     /* child: [
+                //         {
+                //             txt: '产业链服务库列表',
+                //             code: '801',
+                //             url: 'intermediary/list'
+                //         },{
+                //             txt: '产业链服务库统计',
+                //             code: '802',
+                //             url: 'intermediary/statics'
+                //         },
+                //     ] */
+                // },
 
                 // ,{
                 // 	icon: 'icon_project_zjfwk_active',
@@ -442,46 +449,47 @@
                     code: '9',
                     txt: '系统管理',
                     child: [
-                        {
-                            txt: '角色管理',
-                            code: '901',
-                            url: "Rolemeun/view"
-                        },
-                        {
-                            txt: '用户管理',
-                            code: '902',
-                            url: "user/view"
-                        },
-                        {
-                            txt: '用户管理-项目单位',
-                            code: '903',
-                            url: "userapply/view"
-                        },
+                        // {
+                        //     txt: '角色管理',
+                        //     code: '901',
+                        //     url: "Rolemeun/view"
+                        // },
+                        // {
+                        //     txt: '用户管理',
+                        //     code: '902',
+                        //     url: "user/view"
+                        // },
+                        // {
+                        //     txt: '用户管理-项目单位',
+                        //     code: '903',
+                        //     url: "userapply/view"
+                        // },
                         {
                             txt: '项目单位信息',
                             code: '904',
                             url: 'register/query'
-                        }, {
-                            txt: '审核项目单位信息',
-                            code: '905',
-                            url: 'register/queryCheck'
                         },
+                        // {
+                        //     txt: '审核项目单位信息',
+                        //     code: '905',
+                        //     url: 'register/queryCheck'
+                        // },
                         {
                             txt: '行业部门信息',
                             code: '906',
                             url: 'junit/index'
                         },
-                        {
-                            txt: '部门科室信息',
-                            code: '907',
-                            url: 'jdepart/index'
-                        }
-                        ,
-                        {
-                            txt: '监管单位设置',
-                            code: '908',
-                            url: 'mainjunit/index'
-                        },
+                        // {
+                        //     txt: '部门科室信息',
+                        //     code: '907',
+                        //     url: 'jdepart/index'
+                        // }
+                        // ,
+                        // {
+                        //     txt: '监管单位设置',
+                        //     code: '908',
+                        //     url: 'mainjunit/index'
+                        // },
                         {
                             txt: '字典管理',
                             code: '909',
@@ -507,16 +515,16 @@
                             code: '911',
                             url: 'sysTable/index'
                         },
-                        {
-                            txt: '项目前期批复单位设置',
-                            code: '912',
-                            url: 'subPreFlow/setUnit'
-                        },
-                        {
-                            txt: '同步日志查询',
-                            code: '913',
-                            url: 'syncLog/index'
-                        },
+                        // {
+                        //     txt: '项目前期批复单位设置',
+                        //     code: '912',
+                        //     url: 'subPreFlow/setUnit'
+                        // },
+                        // {
+                        //     txt: '同步日志查询',
+                        //     code: '913',
+                        //     url: 'syncLog/index'
+                        // },
                         {
                             txt: '项目日志查询',
                             code: '913',
@@ -527,11 +535,11 @@
                             code: '911',
                             url: 'loginlog/index'
                         },
-                        {
-                            code: '914',
-                            txt: '政策文件分类',
-                            url: 'policy/column/index'
-                        },
+                        // {
+                        //     code: '914',
+                        //     txt: '政策文件分类',
+                        //     url: 'policy/column/index'
+                        // },
                         // {
                         // 	code: '1002',
                         // 	txt: '文件内容',
@@ -547,49 +555,58 @@
                             code: '915',
                             url: 'msgLog/index'
                         },
-                        {
-                            txt: '项目总库',
-                            code: '916',
-                            url: 'subject/subInfo/projTz?type=5',
-                            before: function () {
-                                window.localStorage.removeItem("TzQueryParam_zk_${loginUserId}")
-                            }
-                        },
+                        // {
+                        <%--    txt: '项目总库',--%>
+                        <%--    code: '916',--%>
+                        <%--    url: 'subject/subInfo/projTz?type=5',--%>
+                        <%--    before: function () {--%>
+                        <%--        window.localStorage.removeItem("TzQueryParam_zk_${loginUserId}")--%>
+                        <%--    }--%>
+                        <%--},--%>
                         {
                             code: '917',
-                            txt: '项目年度计划',
-                            url: 'annualPlan/index'
+                            txt: 'A项目年度计划',
+                            // url: 'annualPlan/index'
+                            url: 'register/underConstruction'
                         },
                         {
-                            txt: '项目周报',
+                            txt: 'B项目周报',
                             code: '406',
-                            url: 'weekReport/view'
+                            // url: 'weekReport/view'
+                            url: 'register/underConstruction'
                         },
                         {
-                            txt: '项目月报',
+                            txt: 'C项目月报',
                             code: '407',
-                            url: 'monthReport/view'
-                        },
-                        {
-                            txt: '逾期项目',
-                            code: '601',
-                            url: 'overdue/view?overStatus=1'
-                        },
-                        {
-                            code: '604',
-                            txt: '重大事件记录专栏',
-                            url: 'meetingRecords/list'
+                            // url: 'monthReport/view'
+                            url: 'register/underConstruction'
                         },
                         {
-                            txt: '经纬度设置',
-                            code: '704',
-                            url: 'subject/subInfo/latitudeAndLongitude'
-                        },
-                        {
-                            txt: '摄像头绑定',
-                            code: '705',
-                            url: 'camera/index'
-                        },
+                            txt: 'D每个月项目转换情况',
+                            code: '407',
+                            // url: 'monthReport/view'
+                            url: 'register/underConstruction'
+                        },
+                        <%--{--%>
+                        <%--    txt: '逾期项目',--%>
+                        <%--    code: '601',--%>
+                        <%--    url: 'overdue/view?overStatus=1'--%>
+                        <%--},--%>
+                        <%--{--%>
+                        <%--    code: '604',--%>
+                        <%--    txt: '重大事件记录专栏',--%>
+                        <%--    url: 'meetingRecords/list'--%>
+                        <%--},--%>
+                        <%--{--%>
+                        <%--    txt: '经纬度设置',--%>
+                        <%--    code: '704',--%>
+                        <%--    url: 'subject/subInfo/latitudeAndLongitude'--%>
+                        <%--},--%>
+                        <%--{--%>
+                        <%--    txt: '摄像头绑定',--%>
+                        <%--    code: '705',--%>
+                        <%--    url: 'camera/index'--%>
+                        <%--},--%>
                     ]
                 }
                 // ,{

+ 10 - 2
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_extend.jsp

@@ -336,7 +336,8 @@
                                                     style="margin-left: 20px"
                                                     @click="subInfoToSubFix">自动抓取
                                             </button>
-                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixTotalExcel">项目总表导出</button>
+                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixTotalExcel">项目汇总导出</button>
+                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixDetailExcel">项目明细导出</button>
                                         </div>
                                     </div>
                                 </div>
@@ -1605,7 +1606,14 @@
                     var param = this.getSearchParams();
                     param.stateFix = this.getSearchParams().fixCat;
                     param.isFix = '1';
-                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixTotalExcel"), "POST", param, "重点项目-总表在建库.xlsx", "导出失败");
+                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixTotalExcel"), "POST", param, "重点项目-在建汇总表.xlsx", "导出失败");
+                },
+                exportFixDetailExcel: function () {
+                    console.log('导出')
+                    var param = this.getSearchParams();
+                    param.stateFix = this.getSearchParams().fixCat;
+                    param.isFix = '1';
+                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixDetailExcel"), "POST", param, "重点项目-在建明细表.xlsx", "导出失败");
                 },
                 search: function () {
                     var param = layui.form.getValue("searchForm");

+ 10 - 2
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_new.jsp

@@ -336,7 +336,8 @@
                                                     style="margin-left: 20px"
                                                     @click="subInfoToSubFix">自动抓取
                                             </button>
-                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixTotalExcel">项目总表导出</button>
+                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixTotalExcel">项目汇总导出</button>
+                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixDetailExcel">项目明细导出</button>
                                         </div>
                                     </div>
                                 </div>
@@ -1604,7 +1605,14 @@
                     var param = this.getSearchParams();
                     param.stateFix = this.getSearchParams().fixCat;
                     param.isFix = '1';
-                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixTotalExcel"), "POST", param, "重点项目-总表新建库.xlsx", "导出失败");
+                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixTotalExcel"), "POST", param, "重点项目-新建汇总表.xlsx", "导出失败");
+                },
+                exportFixDetailExcel: function () {
+                    console.log('导出')
+                    var param = this.getSearchParams();
+                    param.stateFix = this.getSearchParams().fixCat;
+                    param.isFix = '1';
+                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixDetailExcel"), "POST", param, "重点项目-新建明细表.xlsx", "导出失败");
                 },
                 search: function () {
                     var param = layui.form.getValue("searchForm");

+ 10 - 2
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_reserve.jsp

@@ -336,7 +336,8 @@
                                                     style="margin-left: 20px"
                                                     @click="subInfoToSubFix">自动抓取
                                             </button>
-                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixTotalExcel">项目总表导出</button>
+                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixTotalExcel">项目汇总导出</button>
+                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixDetailExcel">项目明细导出</button>
                                         </div>
                                     </div>
                                 </div>
@@ -1599,7 +1600,14 @@
                     var param = this.getSearchParams();
                     param.stateFix = this.getSearchParams().fixCat;
                     param.isFix = '1';
-                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixTotalExcel"), "POST", param, "重点项目-总表储备库.xlsx", "导出失败");
+                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixTotalExcel"), "POST", param, "重点项目-储备汇总表.xlsx", "导出失败");
+                },
+                exportFixDetailExcel: function () {
+                    console.log('导出')
+                    var param = this.getSearchParams();
+                    param.stateFix = this.getSearchParams().fixCat;
+                    param.isFix = '1';
+                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixDetailExcel"), "POST", param, "重点项目-储备明细表.xlsx", "导出失败");
                 },
                 search: function () {
                     var param = layui.form.getValue("searchForm");

+ 10 - 2
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_sum.jsp

@@ -336,7 +336,8 @@
                                                     style="margin-left: 20px"
                                                     @click="subInfoToSubFix">自动抓取
                                             </button>
-                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixTotalExcel">项目总表导出</button>
+                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixTotalExcel">项目汇总导出</button>
+                                            <button type="button" class="layui-btn layui-btn-norma" style="margin-left: 20px" @click="exportFixDetailExcel">项目明细导出</button>
                                         </div>
                                     </div>
                                 </div>
@@ -1610,7 +1611,14 @@
                     var param = this.getSearchParams();
                     param.stateFix = this.getSearchParams().fixCat;
                     param.isFix = '1';
-                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixTotalExcel"), "POST", param, "重点项目-总表在建库.xlsx", "导出失败");
+                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixTotalExcel"), "POST", param, "重点项目-投产汇总表.xlsx", "导出失败");
+                },
+                exportFixDetailExcel: function () {
+                    console.log('导出')
+                    var param = this.getSearchParams();
+                    param.stateFix = this.getSearchParams().fixCat;
+                    param.isFix = '1';
+                    App.common.utils.downFile(App.getUrl("/subInfoExport/exportFixDetailExcel"), "POST", param, "重点项目-投产明细表.xlsx", "导出失败");
                 },
                 search: function () {
                     var param = layui.form.getValue("searchForm");

+ 99 - 0
projects/src/main/webapp/vmodules/underConstruction.jsp

@@ -0,0 +1,99 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>正在开发中</title>
+    <style>
+        /* 全局样式 */
+        * {
+            margin: 0;
+            padding: 0;
+            box-sizing: border-box;
+        }
+
+        body, html {
+            height: 100%;
+            font-family: 'Arial', sans-serif;
+            background: #f4f4f9;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            color: #333;
+        }
+
+        .container {
+            text-align: center;
+            max-width: 600px;
+            width: 100%;
+            padding: 20px;
+            background: #fff;
+            border-radius: 10px;
+            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
+        }
+
+        h1 {
+            font-size: 3rem;
+            margin-bottom: 20px;
+            color: #333;
+        }
+
+        p {
+            font-size: 1.2rem;
+            line-height: 1.6;
+            margin-bottom: 30px;
+            color: #666;
+        }
+
+        .icon {
+            font-size: 5rem;
+            color: #ff6b6b;
+            margin-bottom: 20px;
+        }
+
+        .spinner {
+            display: inline-block;
+            width: 50px;
+            height: 50px;
+            border: 4px solid rgba(0, 0, 0, 0.1);
+            border-left-color: #ff6b6b;
+            border-radius: 50%;
+            animation: spin 1s linear infinite;
+        }
+
+        @keyframes spin {
+            to {
+                transform: rotate(360deg);
+            }
+        }
+
+        .footer {
+            margin-top: 20px;
+            font-size: 0.9rem;
+            color: #999;
+        }
+
+        a {
+            color: #ff6b6b;
+            text-decoration: none;
+            font-weight: bold;
+        }
+
+        a:hover {
+            text-decoration: underline;
+        }
+    </style>
+</head>
+<body>
+<div class="container">
+    <div class="icon">🚧</div>
+    <h1>等待上线中</h1>
+    <p>我们正在努力为您带来更好的体验,请稍后再来访问。</p>
+    <div class="spinner"></div>
+    <div class="footer">
+        <p>如果您有任何问题或建议,请联系公司为你服务!</p>
+    </div>
+</div>
+</body>
+</html>