Browse Source

Merge remote-tracking branch 'origin/master'

JiangPengLi 3 months ago
parent
commit
42a2757e66
47 changed files with 3056 additions and 744 deletions
  1. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/msglog/service/impl/PhoneMsgLogServiceImpl.java
  2. 17 0
      projects-service/src/main/java/com/rtrh/projects/modules/problem/mapper/SubquestionInfoMapper.java
  3. 72 0
      projects-service/src/main/java/com/rtrh/projects/modules/problem/mapper/SubquestionInfoMapper.xml
  4. 3 0
      projects-service/src/main/java/com/rtrh/projects/modules/problem/service/Subquestioninfoservice.java
  5. 33 4
      projects-service/src/main/java/com/rtrh/projects/modules/problem/service/impl/SubquestioninfoserviceImpl.java
  6. 21 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubCameraMapper.java
  7. 50 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubCameraMapper.xml
  8. 2 3
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.java
  9. 122 69
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.xml
  10. 26 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreNewMapper.java
  11. 361 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreNewMapper.xml
  12. 18 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubRptContMapper.java
  13. 74 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubRptContMapper.xml
  14. 2 2
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/WorkbenchMapper.java
  15. 4 2
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/WorkbenchMapper.xml
  16. 4 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubCameraService.java
  17. 4 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubInfoService.java
  18. 29 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubPreNewService.java
  19. 5 1
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubRptContService.java
  20. 45 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubCameraServiceImpl.java
  21. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoQueryServiceImpl.java
  22. 130 7
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoServiceImpl.java
  23. 232 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubPreNewServiceImpl.java
  24. 99 31
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubRptContServiceImpl.java
  25. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/PreWarnDataQueryVO.java
  26. 10 15
      projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/RptContQueryVO.java
  27. 4 18
      projects/src/main/java/com/rtrh/projects/outapi/controller/MonthReportApiController.java
  28. 2 16
      projects/src/main/java/com/rtrh/projects/outapi/controller/WeekReportApiController.java
  29. 24 5
      projects/src/main/java/com/rtrh/projects/web/controller/problemreport/ProblemInfoController.java
  30. 264 37
      projects/src/main/java/com/rtrh/projects/web/controller/problemreport/api/ProblemInfoApiController.java
  31. 1 1
      projects/src/main/java/com/rtrh/projects/web/controller/problemreport/api/ProblemtrackApiController.java
  32. 3 8
      projects/src/main/java/com/rtrh/projects/web/controller/projects/ProWeekReportController.java
  33. 2 6
      projects/src/main/java/com/rtrh/projects/web/controller/projects/ProjMonthReportController.java
  34. 4 11
      projects/src/main/java/com/rtrh/projects/web/controller/projects/api/ProWeekReportApiController.java
  35. 3 4
      projects/src/main/java/com/rtrh/projects/web/controller/projects/api/ProjMonthReportApiController.java
  36. 4 2
      projects/src/main/java/com/rtrh/projects/web/controller/smart/api/SubSmartSiteApiController.java
  37. 4 4
      projects/src/main/webapp/vmodules/leftMenu.jsp
  38. 279 279
      projects/src/main/webapp/vmodules/map/map.jsp
  39. 899 0
      projects/src/main/webapp/vmodules/problem/info/cbToXjWarn.jsp
  40. 33 26
      projects/src/main/webapp/vmodules/problem/info/endWarn.jsp
  41. 30 26
      projects/src/main/webapp/vmodules/problem/info/monthWarn.jsp
  42. 33 27
      projects/src/main/webapp/vmodules/problem/info/openWarn.jsp
  43. 8 15
      projects/src/main/webapp/vmodules/problem/info/pldWarn.jsp
  44. 34 32
      projects/src/main/webapp/vmodules/problem/info/preInfo.jsp
  45. 1 0
      projects/src/main/webapp/vmodules/problem/info/preWarn.jsp
  46. 22 45
      projects/src/main/webapp/vmodules/project/monthReport.jsp
  47. 33 48
      projects/src/main/webapp/vmodules/project/weekReport.jsp

+ 2 - 0
projects-service/src/main/java/com/rtrh/projects/modules/msglog/service/impl/PhoneMsgLogServiceImpl.java

@@ -7,6 +7,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.regex.Pattern;
 
+import com.rtrh.projects.util.TargetDataSource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -35,6 +36,7 @@ public class PhoneMsgLogServiceImpl implements IPhoneMsgLogService {
 	private static Pattern TEL_PATTERN = Pattern.compile("^1[3-9]\\d{9}$");
 
 	@Override
+	@TargetDataSource("secondary")
 	public Page pageQueryLog(Page page, String tel, String subName, String userName) {
 		StringBuffer sql = new StringBuffer();
 		sql.append(" SELECT a.id, a.sub_id,a.content,a.success, a.tel, a.user_name userName, b.sub_name subName, ");

+ 17 - 0
projects-service/src/main/java/com/rtrh/projects/modules/problem/mapper/SubquestionInfoMapper.java

@@ -0,0 +1,17 @@
+package com.rtrh.projects.modules.problem.mapper;
+
+import com.rtrh.core.repository.mybatis.MyBatisRepository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author dupengcheng
+ * @date 2025/1/6
+ * @apiNote
+ */
+@MyBatisRepository
+public interface SubquestionInfoMapper {
+
+    List<Map<String,Object>> pageQueryQuestionNewList(Map<String,Object> params);
+}

+ 72 - 0
projects-service/src/main/java/com/rtrh/projects/modules/problem/mapper/SubquestionInfoMapper.xml

@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.rtrh.projects.modules.problem.mapper.SubquestionInfoMapper">
+
+    <select id="pageQueryQuestionNewList" parameterType="map" resultType="map">
+
+        SELECT IF
+                   (us.id IS NULL, 0, 1) AS   usersub,
+               IF
+                   (a.status_fgw = '2', 1, 0) redNum,
+               IF
+                   (a.status_fgw = '1', 1, 0) yellowNum,
+               a.close_reason,
+               a.STATUS                  AS   stu,
+               a.file_type               AS   fileType,
+               b.sub_name,
+               b.main_id,
+               a.sub_id,
+               a.date_apply,
+               b.STATUS,
+               a.id,
+               a.title,
+               c.title                   AS   kind_sourceid,
+               d.title                   AS   kind_typeid,
+               a.date_conf,
+               a.file_addre
+        FROM sub_q_info a
+                 LEFT JOIN sub_info b ON a.sub_id = b.id
+                 LEFT JOIN t_systable c ON a.kind_sourceid = c.id
+                 LEFT JOIN t_systable d ON a.kind_typeid = d.id
+                 LEFT JOIN sub_source g ON g.sub_id = b.id
+            AND g.logic_delete_flag = 0
+                 LEFT JOIN sub_manage e ON b.id = e.sub_id
+            AND e.logic_delete_flag = 0
+                 LEFT JOIN sub_verify f ON f.sub_id = a.sub_id
+            AND f.logic_delete_flag = 0
+                 LEFT JOIN sec_user_sub us ON b.id = us.sub_id
+            AND us.logic_delete_flag = 0
+            AND us.user_id = #{userId}
+        <where>
+            a.logic_delete_flag = 0
+            and b.indus_kind in('210','99','2')
+            <if test="subjectName != null and subjectName != ''">
+                AND b.sub_name LIKE CONCAT('%', #{subjectName}, '%')
+            </if>
+            <if test="propKind != null and propKind != ''">
+                AND b.prop_kind IN (${propKind})
+            </if>
+            <if test="startDate != null and startDate != ''">
+                AND  date_format(a.date_conf,'%Y-%m-%d') >= #{startDate}
+            </if>
+            <if test="endDate != null and endDate != ''">
+                AND  date_format(a.date_conf,'%Y-%m-%d') &lt;= #{endDate}
+            </if>
+            <if test="status != null and status != ''">
+                AND a.`status` = #{status}
+            </if>
+            <if test="closeReason != null and closeReason != ''">
+                AND a.close_reason = #{closeReason}
+            </if>
+            <if test="subjectId != null and subjectId != ''">
+                AND b.subject_id = #{subjectId}
+            </if>
+            <if test="indusKind != null and indusKind != ''">
+                AND b.indus_kind = #{indusKind}
+            </if>
+        </where>
+        GROUP BY a.id
+        ORDER BY usersub DESC, date_conf DESC
+
+    </select>
+</mapper>

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

@@ -58,6 +58,9 @@ public interface Subquestioninfoservice {
     Page pageQueryQuestionList(Page page, LoginUserVO vo, QuestionQueryVO queryVO);
 
 
+    Page pageQueryQuestionNewList(Page page, LoginUserVO vo, QuestionQueryVO queryVO);
+
+
 
     /***
      * 通过项目问题,查询项目数量

+ 33 - 4
projects-service/src/main/java/com/rtrh/projects/modules/problem/service/impl/SubquestioninfoserviceImpl.java

@@ -1,19 +1,21 @@
 package com.rtrh.projects.modules.problem.service.impl;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
 import ch.qos.logback.classic.db.names.ColumnName;
 import cn.hutool.core.lang.generator.Generator;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.rtrh.projects.modules.problem.dao.SubQuestionFileDao;
+import com.rtrh.projects.modules.problem.mapper.SubquestionInfoMapper;
 import com.rtrh.projects.modules.projects.enums.ProjectStatusEnum;
 import com.rtrh.projects.modules.projects.mapper.StaticsMapper;
 import com.rtrh.projects.modules.projects.vo.HistoryVO;
 import com.rtrh.projects.modules.projects.vo.SubInfoQueryTzVO;
 import com.rtrh.projects.modules.system.enums.SubLogEnum;
 import com.rtrh.projects.modules.system.service.SubDataLogService;
+import com.rtrh.projects.util.TargetDataSource;
 import com.rtrh.projects.vo.problemreport.QuestionIdVO;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateFormatUtils;
@@ -53,6 +55,9 @@ public class SubquestioninfoserviceImpl implements Subquestioninfoservice {
 	@Autowired
 	private SubquestionInfoDao subquestionInfoDao;
 
+	@Autowired
+	private SubquestionInfoMapper subquestionInfoMapper;
+
 	@Autowired
 	private StaticsMapper staicsMapper;
 
@@ -687,6 +692,30 @@ public class SubquestioninfoserviceImpl implements Subquestioninfoservice {
 		return subquestionInfoDao.queryForListBySql(sql.toString(), page);
 	}
 
+	@Override
+	@TargetDataSource("secondary")
+	public Page pageQueryQuestionNewList(Page page, LoginUserVO vo, QuestionQueryVO queryVO) {
+		Map<String,Object> params = new HashMap<>();
+		params.put("userId",vo.getId());
+		params.put("subjectName",queryVO.getSubName());
+		params.put("subjectId",queryVO.getSubjectId());
+		params.put("startDate",queryVO.getBeginDate());
+		params.put("endDate",queryVO.getEndDate());
+		params.put("indusKind",queryVO.getIndusKind());
+		params.put("status",queryVO.getStatus());
+		if(StringUtils.isNotEmpty(queryVO.getCloseReason())){
+			params.put("status","1");
+		}
+		params.put("closeReason",queryVO.getCloseReason());
+		params.put("propKind",StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+		PageHelper.startPage(page.getPageNo(), page.getPageSize());
+		List<Map<String, Object>> mapList = subquestionInfoMapper.pageQueryQuestionNewList(params);
+		PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(mapList);
+		page.setList(mapList);
+		page.setTotalCount(pageInfo.getTotal());
+		return page;
+	}
+
 	@Override
 	public List<Map<String,Object>> countSubInfoNumByQuertion(LoginUserVO vo, QuestionQueryVO queryVO) {
 

+ 21 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubCameraMapper.java

@@ -0,0 +1,21 @@
+package com.rtrh.projects.modules.projects.mapper;
+
+import com.rtrh.core.repository.mybatis.MyBatisRepository;
+import com.rtrh.projects.modules.projects.po.SubCamera;
+import com.rtrh.projects.modules.projects.vo.CameraTreeVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author dupengcheng
+ * @date 2025/1/7
+ * @apiNote
+ */
+@MyBatisRepository
+public interface SubCameraMapper {
+
+    List<CameraTreeVO> cameraTreeNew(@Param("subId") String subId);
+
+    List<SubCamera> getListCameraBySubId(@Param("subId") String subId);
+}

+ 50 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubCameraMapper.xml

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.rtrh.projects.modules.projects.mapper.SubCameraMapper" >
+
+
+    <select id="cameraTreeNew" resultType="com.rtrh.projects.modules.projects.vo.CameraTreeVO" parameterType="string">
+        SELECT
+        a.id,
+        a.sub_id subId,
+        a.title,
+        b.sub_name subName
+        FROM
+        sub_camera a
+        LEFT JOIN sub_info b ON a.sub_id = b.id
+        WHERE
+        a.logic_delete_flag = 0
+        AND b.logic_delete_flag = 0
+        AND a.title != 'HSIPC'
+        and b.indus_kind in('210','99','2')
+        <if test="subId != null and subId != ''">
+            AND a.sub_id = #{subId}
+        </if>
+    </select>
+
+    <select id="getListCameraBySubId" resultType="com.rtrh.projects.modules.projects.po.SubCamera" parameterType="string">
+        SELECT
+            id,
+            sub_id as subId ,
+            code ,
+            encode_device_code as encodeDeviceCode ,
+            title ,
+            longitude ,
+            latitude ,
+            remark ,
+            create_time as createTime ,
+            is_show  as isShow ,
+            create_user_id  as createUserId ,
+            last_update_userId as lastUpdateUserId ,
+            last_update_time as lastUpdateTime ,
+            logic_delete_flag as logicDeleteFlag
+        FROM
+            sub_camera
+        WHERE
+        logic_delete_flag = 0
+        <if test="subId != null and subId != ''">
+            AND sub_id = #{subId}
+        </if>
+    </select>
+
+</mapper>

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

@@ -1,8 +1,6 @@
 package com.rtrh.projects.modules.projects.mapper;
 
-import java.math.BigDecimal;
 import java.util.List;
-import java.util.Map;
 
 import com.rtrh.projects.modules.projects.dto.SubFixCbSearch;
 import com.rtrh.projects.modules.projects.po.RptCont;
@@ -12,7 +10,6 @@ import com.rtrh.projects.modules.projects.vo.*;
 import com.rtrh.projects.modules.projects.po.SubInfoGxj;
 import com.rtrh.projects.modules.projects.vo.export.*;
 import com.rtrh.projects.vo.projects.SubFixGetBeginRateVo;
-import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 
 import com.rtrh.core.repository.mybatis.MyBatisRepository;
@@ -45,6 +42,8 @@ public interface SubInfoMapper {
 
     SubInfoGxj findById(@Param("id") String id);
 
+    SubInfo findByFgwId(@Param("id") String id);
+
     List<SubFixCbVo> subFixCbAll(@Param("subFixCbSearch") SubFixCbSearch subFixCbSearch);
 
     @Select("SELECT sub_id FROM sub_fix where year = #{subInfoToSubFixVo.year} and cat = #{subInfoToSubFixVo.cat}")

+ 122 - 69
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.xml

@@ -12,71 +12,72 @@
 
     <select id="smartSiteQuery" resultType="com.rtrh.projects.modules.projects.vo.SubSmartVO"  >
         SELECT
-            si.sub_name subName,
-            si.begin_date beginDate,
-            si.end_date endDate,
-            si.amt_total amtTotal,
-            si.amt_year amtYear,
-            src2.yearAmtSj,
-            si.name_zrr nameZrr,
-            si.name_lead nameLead,
-            si.abc,
-            si.status,
-            si.longitude,
-            si.latitude,
-            si.id,
-            (
-                SELECT
-                    num_bl
-                FROM
-                    sub_rpt_cont src
-                WHERE
-                    src.sub_id = si.id
-                  AND src.logic_delete_flag = 0
-                ORDER BY
-                    last_update_time DESC,
-                    create_time DESC
-                LIMIT 1
-            ) numBl
+        si.sub_name subName,
+        si.begin_date beginDate,
+        si.end_date endDate,
+        si.amt_total amtTotal,
+        si.amt_year amtYear,
+        src2.yearAmtSj,
+        si.name_zrr nameZrr,
+        si.name_lead nameLead,
+        si.abc,
+        si.status,
+        si.longitude,
+        si.latitude,
+        si.id,
+        (
+        SELECT
+        num_bl
         FROM
---             sub_camera sc
---             LEFT JOIN sub_info si ON sc.sub_id = si.id
-            sub_info si
-            LEFT JOIN (
-            SELECT
-            sum(amt) yearAmt,
-            sa.sub_id
-            FROM
-            sub_amtplan sa
-            WHERE
-            sa.logic_delete_flag = 0
-            AND sa.y_month LIKE  CONCAT('',#{year},'%')
-            GROUP BY
-            sa.sub_id
-            ) sa ON sa.sub_id = si.id
-            LEFT JOIN (
-            SELECT
-            sum(amt) yearAmtSj,
-            src.sub_id
-            FROM
-            sub_rpt_cont src
-            WHERE
-            src.logic_delete_flag = 0
-            AND src. LIKE  CONCAT('',#{year},'%')
-            GROUP BY
-            src.sub_id
-            ) src2 ON src2.sub_id = si.id
+        sub_rpt_cont src
         WHERE
---             sc.logic_delete_flag = 0
-           si.logic_delete_flag = 0
-            AND si.longitude is not null
-            AND si.latitude is not null
-          AND si.subject_id  in
+        src.sub_id = si.id
+        AND src.logic_delete_flag = 0
+        ORDER BY
+        last_update_time DESC,
+        create_time DESC
+        LIMIT 1
+        ) numBl
+        FROM
+        --             sub_camera sc
+        --             LEFT JOIN sub_info si ON sc.sub_id = si.id
+        sub_info si
+        LEFT JOIN (
+        SELECT
+        sum(amt) yearAmt,
+        sa.sub_id
+        FROM
+        sub_amtplan sa
+        WHERE
+        sa.logic_delete_flag = 0
+        AND sa.y_month LIKE  CONCAT('',#{year},'%')
+        GROUP BY
+        sa.sub_id
+        ) sa ON sa.sub_id = si.id
+        LEFT JOIN (
+        SELECT
+        sum(amt) yearAmtSj,
+        src.sub_id
+        FROM
+        sub_rpt_cont src
+        WHERE
+        src.logic_delete_flag = 0
+        AND src.kj_month LIKE  CONCAT('',#{year},'%')
+        GROUP BY
+        src.sub_id
+        ) src2 ON src2.sub_id = si.id
+        WHERE
+        --             sc.logic_delete_flag = 0
+        si.logic_delete_flag = 0
+        and si.indus_kind in('210','99','2')
+        AND si.longitude is not null
+        AND si.latitude is not null
+        AND si.subject_id  in
         <foreach  item="item" collection="subjectIds" index="index"  open="(" separator="," close=")">
             #{item}
         </foreach>
         GROUP BY
-            si.id
+        si.id
     </select>
 
 <!--    <resultMap id="BaseResultMap" type="com.rtrh.projects.modules.projects.po.SubInfoGxj">
@@ -352,6 +353,49 @@
         from sub_info
         where id = #{id}
     </select>
+    <select id="findByFgwId" resultType="com.rtrh.projects.modules.projects.po.SubInfo">
+        SELECT
+            id,
+            unit_id AS unitId,
+            unit_desc AS unitDesc,
+            sub_code AS subCode,
+            sub_name AS subName,
+            indus_kind AS indusKind,
+            amt_total AS amtTotal,
+            abc,
+            subject_id AS subjectId,
+            begin_date AS beginDate,
+            end_date AS endDate,
+            rt_date AS rtDate,
+            content AS content,
+            progress AS progress,
+            cb_status AS cbStatus,
+            qy_date AS qyDate,
+            xj_date AS xjDate,
+            zj_date AS zjDate,
+            tc_date AS tcDate,
+            cb_num AS cbNum,
+            xj_num AS xjNum,
+            zj_num AS zjNum,
+            remark,
+            name_zrr AS nameZrr,
+            tel AS tel,
+            name_lead AS nameLead,
+            tel_lead AS telLead,
+            status AS status,
+            rg_date AS rgDate,
+            create_user_id AS createUserId,
+            create_user_name AS createUserName,
+            create_time AS createTime,
+            last_update_user_id AS lastUpdateUserId,
+            last_update_user_name AS lastUpdateUserName,
+            last_update_time AS lastUpdateTime,
+            logic_delete_flag AS logicDeleteFlag,
+            status_lamp AS statusLamp,
+            kind_nature AS kindNature
+        from sub_info
+        where id = #{id}
+    </select>
 
     <select id="subFixCbAll" resultType="com.rtrh.projects.modules.projects.vo.SubFixCbVo">
         SELECT sub_info.id as id,
@@ -939,14 +983,17 @@
     </select>
     <!-- 储备转新建超期统计 -->
     <select id="queryExceedCbToXj" resultType="com.rtrh.projects.modules.projects.vo.WorkBenchVO">
-         SELECT subject_id subjectId,
-                indus_kind indusKind,
-                amt_total amtTotal
-         FROM sub_info
-         WHERE cb_status = 3
-           AND qy_date IS NOT NULL
-           AND DATE_ADD(qy_date, INTERVAL cb_num DAY) &lt;= NOW()
-           AND `status` = 1
+        SELECT
+            a.subject_id subjectId,
+            a.indus_kind indusKind,
+            a.amt_total amtTotal
+        FROM
+           sub_info a
+        WHERE
+            a.STATUS = '1'
+            AND ( a.cb_status = '3' OR a.cb_status = '4' OR a.cb_status = '5' )
+            AND DATE_ADD( a.qy_date, INTERVAL ifnull( cb_num, 0 ) DAY ) &lt;= now()
+            AND a.logic_delete_flag = 0
     </select>
     <select id="queryWarningStatistics" resultType="com.rtrh.projects.modules.projects.vo.WorkBenchVO">
         SELECT
@@ -970,6 +1017,7 @@
         WHERE
           begin_date &lt;= NOW()
           AND `status` = 2
+          AND logic_delete_flag = 0
     </select>
     <select id="queryExceedZjTotc" resultType="com.rtrh.projects.modules.projects.vo.WorkBenchVO">
         SELECT subject_id subjectId,
@@ -979,6 +1027,7 @@
         WHERE
             end_date &lt;= NOW()
           AND `status` = 3
+          AND logic_delete_flag = 0
     </select>
     <select id="queryExceedTcToRg" resultType="com.rtrh.projects.modules.projects.vo.WorkBenchVO">
         SELECT subject_id subjectId,
@@ -987,8 +1036,10 @@
         FROM sub_info
         WHERE
             rt_date &lt;= NOW()
-          AND is_rg = 0
+          AND (is_rg = 0 or is_rg is null)
           AND `status` = 9
+          and rt_date is not null
+          and logic_delete_flag=0
     </select>
     <select id="preProcedureExceed" resultType="com.rtrh.projects.modules.projects.vo.WorkBenchVO">
         SELECT
@@ -1006,6 +1057,7 @@
             ( status_conf = '1' AND DATE_ADD( a.date_plan, INTERVAL a.num2 DAY ) &lt; NOW() )
             OR ( status_conf = '2' AND DATE_ADD( a.date_plan, INTERVAL a.num2 DAY ) &lt; a.date_confirm )
             )
+           and c.indus_kind in('210','99','2')
         GROUP BY
             a.id
     </select>
@@ -1021,7 +1073,8 @@
                 AND src.kj_month LIKE #{lastMonth}
         WHERE
             a.logic_delete_flag = 0
-          AND a.`status` = '3'
+          AND a.`status` = '7'
+          and a.indus_kind in('210','99','2')
           AND src.id IS NULL
         GROUP BY
             a.id

+ 26 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreNewMapper.java

@@ -0,0 +1,26 @@
+package com.rtrh.projects.modules.projects.mapper;
+
+import com.rtrh.core.repository.mybatis.MyBatisRepository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author dupengcheng
+ * @date 2025/1/6
+ * @apiNote
+ */
+@MyBatisRepository
+public interface SubPreNewMapper {
+
+    List<Map<String,Object>>  pageQueryCbToXjData(Map<String, Object> params);
+
+    List<Map<String,Object>>  pageQueryXjToZjData(Map<String, Object> params);
+
+    List<Map<String,Object>>  pageQueryZjToTcData(Map<String, Object> params);
+
+    List<Map<String,Object>>  pageQueryTcToRgData(Map<String, Object> params);
+
+    List<Map<String,Object>>  pageQueryPreWarnData(Map<String, Object> params);
+
+}

+ 361 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreNewMapper.xml

@@ -0,0 +1,361 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.rtrh.projects.modules.projects.mapper.SubPreNewMapper">
+
+    <select id="pageQueryCbToXjData" resultType="map" parameterType="map">
+        SELECT
+        a.sub_name as subName,
+        a.begin_date as beginDate,
+        a.end_date as endDate,
+        d.title as unitTitle,
+        c.title as mainTitle,
+        a.qy_date as qyDate,
+        a.cb_num as cbNum,
+        concat(a.name_lead,':',a.tel_lead) as datePlan
+        FROM
+        sub_info a
+        LEFT JOIN j_unit d ON a.unit_id = d.id
+        LEFT JOIN j_unit c ON a.main_id = c.id
+        WHERE
+        a.STATUS = '1'
+        AND ( a.cb_status = '3' OR a.cb_status = '4' OR a.cb_status = '5' )
+        AND DATE_ADD( a.qy_date, INTERVAL ifnull( a.cb_num, 0 ) DAY ) &lt;= now()
+        AND a.logic_delete_flag = 0
+        <if test="null != subjectId and '' != subjectId">
+            AND a.subject_id = #{subjectId}
+        </if>
+        <if test="null != subName and '' != subName">
+            AND a.sub_name like concat('%',#{subName},'%')
+        </if>
+        <if test="propKind != null and propKind != ''">
+            AND a.prop_kind IN (${propKind})
+        </if>
+        <if test="hyfl != null and hyfl != ''">
+            <choose>
+                <when test="hyfl == '未知行业'.toString()">
+                    and (a.indus_kind is null or a.indus_kind = '')
+                </when>
+                <otherwise>
+                    and a.indus_kind like concat(#{hyfl},'%')
+                </otherwise>
+            </choose>
+        </if>
+        <if test="code != null and code != ''">
+            <choose>
+                <when test="code == '1'.toString()">
+                    AND a.amt_total &lt; 100000
+                </when>
+                <when test="code == '2'.toString()">
+                    AND a.amt_total between 100000 and 500000
+                </when>
+                <when test="code == '3'.toString()">
+                    AND a.amt_total between 500000 and 1000000
+                </when>
+                <when test="code == '4'.toString()">
+                    AND a.amt_total &gt; 1000000
+                </when>
+            </choose>
+
+        </if>
+        <if test="lightType != null and lightType != ''">
+            <choose>
+                <when test="lightType == '1'.toString()">
+                    and DATEDIFF(now(), DATE_ADD(a.qy_date, INTERVAL ifnull(a.cb_num,0) DAY)) &gt; 3
+                </when>
+                <otherwise>
+                    and DATEDIFF(now(), DATE_ADD(a.qy_date, INTERVAL ifnull(a.cb_num,0) DAY)) &lt;= 3
+                </otherwise>
+            </choose>
+        </if>
+    </select>
+
+    <select id="pageQueryXjToZjData" resultType="map" parameterType="map">
+        SELECT
+        a.sub_name as subName,
+        a.begin_date as beginDate,
+        a.end_date as endDate,
+        d.title as unitTitle,
+        c.title as mainTitle,
+        concat(a.name_lead,':',a.tel_lead) as datePlan
+        FROM
+        sub_info a
+        LEFT JOIN j_unit d ON a.unit_id = d.id
+        LEFT JOIN j_unit c ON a.main_id = c.id
+        WHERE
+        a.begin_date &lt;= NOW()
+        AND a.`status` = 2
+        AND a.logic_delete_flag = 0
+        <if test="null != subjectId and '' != subjectId">
+            AND a.subject_id = #{subjectId}
+        </if>
+        <if test="null != subName and '' != subName">
+            AND a.sub_name like concat('%',#{subName},'%')
+        </if>
+        <if test="propKind != null and propKind != ''">
+            AND a.prop_kind IN (${propKind})
+        </if>
+        <if test="hyfl != null and hyfl != ''">
+            <choose>
+                <when test="hyfl == '未知行业'.toString()">
+                    and (a.indus_kind is null or a.indus_kind = '')
+                </when>
+                <otherwise>
+                    and a.indus_kind like concat(#{hyfl},'%')
+                </otherwise>
+            </choose>
+        </if>
+        <if test="code != null and code != ''">
+            <choose>
+                <when test="code == '1'.toString()">
+                    AND a.amt_total &lt; 100000
+                </when>
+                <when test="code == '2'.toString()">
+                    AND a.amt_total between 100000 and 500000
+                </when>
+                <when test="code == '3'.toString()">
+                    AND a.amt_total between 500000 and 1000000
+                </when>
+                <when test="code == '4'.toString()">
+                    AND a.amt_total &gt; 1000000
+                </when>
+            </choose>
+
+        </if>
+        <if test="lightType != null and lightType != ''">
+            <choose>
+                <when test="lightType == '1'.toString()">
+                    and DATEDIFF(now(), a.begin_date) &gt; 3
+                </when>
+                <otherwise>
+                    and DATEDIFF(now(), a.begin_date) &lt;= 3
+                </otherwise>
+            </choose>
+        </if>
+    </select>
+
+    <select id="pageQueryZjToTcData" resultType="map" parameterType="map">
+        SELECT
+            a.sub_name as subName,
+            a.begin_date as beginDate,
+            a.end_date as endDate,
+            d.title as unitTitle,
+            c.title as mainTitle,
+            concat(a.name_lead,':',a.tel_lead) as datePlan
+        FROM
+        sub_info a
+        LEFT JOIN j_unit d ON a.unit_id = d.id
+        LEFT JOIN j_unit c ON a.main_id = c.id
+        WHERE
+        a.end_date &lt;= NOW()
+        AND a.`status` = 3
+        AND a.logic_delete_flag = 0
+        <if test="null != subjectId and '' != subjectId">
+            AND a.subject_id = #{subjectId}
+        </if>
+        <if test="null != subName and '' != subName">
+            AND a.sub_name like concat('%',#{subName},'%')
+        </if>
+        <if test="propKind != null and propKind != ''">
+            AND a.prop_kind IN (${propKind})
+        </if>
+        <if test="hyfl != null and hyfl != ''">
+            <choose>
+                <when test="hyfl == '未知行业'.toString()">
+                    and (a.indus_kind is null or a.indus_kind = '')
+                </when>
+                <otherwise>
+                    and a.indus_kind like concat(#{hyfl},'%')
+                </otherwise>
+            </choose>
+        </if>
+        <if test="code != null and code != ''">
+            <choose>
+                <when test="code == '1'.toString()">
+                    AND a.amt_total &lt; 100000
+                </when>
+                <when test="code == '2'.toString()">
+                    AND a.amt_total between 100000 and 500000
+                </when>
+                <when test="code == '3'.toString()">
+                    AND a.amt_total between 500000 and 1000000
+                </when>
+                <when test="code == '4'.toString()">
+                    AND a.amt_total &gt; 1000000
+                </when>
+            </choose>
+
+        </if>
+        <if test="lightType != null and lightType != ''">
+            <choose>
+                <when test="lightType == '1'.toString()">
+                    and DATEDIFF(now(), a.end_date) &gt; 3
+                </when>
+                <otherwise>
+                    and DATEDIFF(now(), a.end_date) &lt;= 3
+                </otherwise>
+            </choose>
+        </if>
+    </select>
+
+    <select id="pageQueryTcToRgData" resultType="map" parameterType="map">
+        SELECT
+            a.sub_name as subName,
+            a.begin_date as beginDate,
+            a.end_date as endDate,
+            d.title as unitTitle,
+            c.title as mainTitle,
+            a.rt_date as rtDate,
+            concat(a.name_lead,':',a.tel_lead) as datePlan
+        FROM
+        sub_info a
+        LEFT JOIN j_unit d ON a.unit_id = d.id
+        LEFT JOIN j_unit c ON a.main_id = c.id
+        WHERE
+        a.rt_date &lt;= NOW()
+        AND (a.is_rg = 0 or a.is_rg is null)
+        AND a.`status` = 9
+        and a.rt_date is not null
+        and a.logic_delete_flag=0
+        <if test="null != subjectId and '' != subjectId">
+            AND a.subject_id = #{subjectId}
+        </if>
+        <if test="null != subName and '' != subName">
+            AND a.sub_name like concat('%',#{subName},'%')
+        </if>
+        <if test="propKind != null and propKind != ''">
+            AND a.prop_kind IN (${propKind})
+        </if>
+        <if test="hyfl != null and hyfl != ''">
+            <choose>
+                <when test="hyfl == '未知行业'.toString()">
+                    and (a.indus_kind is null or a.indus_kind = '')
+                </when>
+                <otherwise>
+                    and a.indus_kind like concat(#{hyfl},'%')
+                </otherwise>
+            </choose>
+        </if>
+        <if test="code != null and code != ''">
+            <choose>
+                <when test="code == '1'.toString()">
+                    AND a.amt_total &lt; 100000
+                </when>
+                <when test="code == '2'.toString()">
+                    AND a.amt_total between 100000 and 500000
+                </when>
+                <when test="code == '3'.toString()">
+                    AND a.amt_total between 500000 and 1000000
+                </when>
+                <when test="code == '4'.toString()">
+                    AND a.amt_total &gt; 1000000
+                </when>
+            </choose>
+
+        </if>
+        <if test="code != null and code != ''">
+            <choose>
+                <when test="code == '1'.toString()">
+                    AND a.amt_total &lt; 100000
+                </when>
+                <when test="code == '2'.toString()">
+                    AND a.amt_total between 100000 and 500000
+                </when>
+                <when test="code == '3'.toString()">
+                    AND a.amt_total between 500000 and 1000000
+                </when>
+                <when test="code == '4'.toString()">
+                    AND a.amt_total &gt; 1000000
+                </when>
+            </choose>
+        </if>
+        <if test="lightType != null and lightType != ''">
+            <choose>
+                <when test="lightType == '1'.toString()">
+                    and DATEDIFF(now(), a.rt_date) &gt; 3
+                </when>
+                <otherwise>
+                    and DATEDIFF(now(), a.rt_date) &lt;= 3
+                </otherwise>
+            </choose>
+        </if>
+    </select>
+
+    <select id="pageQueryPreWarnData" resultType="map" parameterType="map">
+        SELECT
+            c.id subId,
+            c.sub_name subName,
+            d.title unitName,
+            a.unit_desc unitDesc,
+            a.id,
+            IFNULL( jd.name_lead, ju.name_zrr ) nameLead,
+            IFNULL( jd.tel, ju.tel ) tel,
+            DATE_FORMAT( a.date_plan, '%Y-%m-%d' ) AS datePlan,
+            a.num1,
+            a.num2,
+            a.num3,
+            a.`status`,
+            a.status_conf statusConf,
+            b.title preName
+        FROM
+        sub_pre_new a
+        LEFT JOIN sub_pre_flow b ON a.pre_flow_id = b.id
+        LEFT JOIN sub_info c ON a.sub_id = c.id
+        LEFT JOIN j_unit d ON c.unit_id = d.id
+        LEFT JOIN j_depart jd ON jd.id = a.sub_depart_id
+        LEFT JOIN j_unit ju ON ju.id = a.sub_unit_id
+        LEFT JOIN sub_manage e ON c.id = e.sub_id
+        AND e.logic_delete_flag = 0
+        LEFT JOIN sub_verify f ON f.sub_id = c.id
+        AND f.logic_delete_flag = 0
+        LEFT JOIN sub_source g ON g.sub_id = c.id
+        AND g.logic_delete_flag = 0
+        LEFT JOIN sub_manage sm ON sm.sub_id = c.id
+        AND sm.logic_delete_flag = 0
+        <where>
+            c.logic_delete_flag = 0
+            AND a.logic_delete_flag = 0
+            AND a.`status` = 1
+            and c.indus_kind in('210','99','2')
+            <if test="null != subjectId and '' != subjectId">
+                AND c.subject_id = #{subjectId}
+            </if>
+            <if test="code != null and code != ''">
+                <choose>
+                    <when test="code == '1'.toString()">
+                        AND c.amt_total &lt; 100000
+                    </when>
+                    <when test="code == '2'.toString()">
+                        AND c.amt_total between 100000 and 500000
+                    </when>
+                    <when test="code == '3'.toString()">
+                        AND c.amt_total between 500000 and 1000000
+                    </when>
+                    <when test="code == '4'.toString()">
+                        AND c.amt_total &gt; 1000000
+                    </when>
+                </choose>
+            </if>
+            <if test="lightType != null and lightType != ''">
+                <choose>
+                    <when test="lightType == '3'.toString()">
+                        AND ( status_conf = '2' AND DATE_ADD(a.date_plan,INTERVAL a.num2 DAY) &lt; a.date_confirm )
+                    </when>
+                    <when test="lightType == '2'.toString()">
+                        AND   ( status_conf = '1'  AND DATE_ADD(a.date_plan,INTERVAL a.num2 DAY) &lt; CURDATE()  AND  DATE_ADD(a.date_plan,INTERVAL a.num2 DAY) >= DATE_SUB(CURDATE(), INTERVAL 3 DAY) )
+                    </when>
+                    <when test="lightType == '1'.toString()">
+                        AND   ( status_conf = '1'  AND DATE_ADD(a.date_plan,INTERVAL a.num2 DAY) &lt; DATE_SUB(CURDATE(), INTERVAL 3 DAY) )
+                    </when>
+                </choose>
+            </if>
+            <if test="null == lightType or '' == lightType">
+                AND (
+                ( status_conf = '1' AND DATE_ADD( a.date_plan, INTERVAL a.num2 DAY ) &lt; NOW() )
+                OR ( status_conf = '2' AND DATE_ADD( a.date_plan, INTERVAL a.num2 DAY ) &lt; a.date_confirm )
+                )
+            </if>
+        </where>
+        GROUP BY
+        a.id
+    </select>
+</mapper>

+ 18 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubRptContMapper.java

@@ -0,0 +1,18 @@
+package com.rtrh.projects.modules.projects.mapper;
+
+import com.rtrh.core.repository.mybatis.MyBatisRepository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author dupengcheng
+ * @date 2025/1/6
+ * @apiNote
+ */
+@MyBatisRepository
+public interface SubRptContMapper {
+
+    List<Map<String,Object>>  pageQueryMonthWarnData(Map<String, Object> params);
+
+}

+ 74 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubRptContMapper.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.rtrh.projects.modules.projects.mapper.SubRptContMapper" >
+
+    <select id="pageQueryMonthWarnData" parameterType="map" resultType="map">
+        SELECT
+            a.id,
+            src.id monthId,
+            src.create_time,
+            a.sub_name subName,
+            ifnull( src.kj_month, #{yearMonth} ) AS kjMonth,
+            src.amt,
+            src.content,
+            src.num_bl numBl,
+            a.name_zrr nameZrr,
+            a.tel
+        FROM
+            sub_info a
+                LEFT JOIN sub_rpt_cont src ON src.sub_id = a.id
+                AND src.kind = '1'
+                AND src.kj_month LIKE #{yearMonth}
+                LEFT JOIN sub_source g ON g.sub_id = a.id
+                AND g.logic_delete_flag = 0
+                LEFT JOIN sub_manage e ON a.id = e.sub_id
+                AND e.logic_delete_flag = 0
+                LEFT JOIN sub_verify f ON f.sub_id = a.id
+                AND f.logic_delete_flag = 0
+                LEFT JOIN sub_manage sm ON sm.sub_id = a.id
+                AND sm.logic_delete_flag = 0
+        <where>
+            a.logic_delete_flag = 0
+            AND a.`status` = '7'
+            and a.indus_kind in('210','99','2')
+            <if test="null != subjectId and '' != subjectId">
+                AND a.subject_id = #{subjectId}
+            </if>
+            <if test="code != null and code != ''">
+                <choose>
+                    <when test="code == '1'.toString()">
+                        AND a.amt_total &lt; 100000
+                    </when>
+                    <when test="code == '2'.toString()">
+                        AND a.amt_total between 100000 and 500000
+                    </when>
+                    <when test="code == '3'.toString()">
+                        AND a.amt_total between 500000 and 1000000
+                    </when>
+                    <when test="code == '4'.toString()">
+                        AND a.amt_total &gt; 1000000
+                    </when>
+                </choose>
+            </if>
+            <if test="lightType != null and lightType != ''">
+                <choose>
+                    <when test="lightType == '3'.toString()">
+                        AND  src.create_time > #{date}
+                    </when>
+                    <when test="lightType == '2'.toString()">
+                        AND (src.id is NULL and TIMESTAMPDIFF(DAY,CONCAT(DATE_FORMAT(CURDATE(), '%Y-%m-'), '05'),now()) &lt;= 3)
+                    </when>
+                    <when test="lightType == '1'.toString()">
+                        AND (src.id is NULL and TIMESTAMPDIFF(DAY,CONCAT(DATE_FORMAT(CURDATE(), '%Y-%m-'), '05'),now()) > 3)
+                    </when>
+                </choose>
+            </if>
+            <if test="null == lightType or '' == lightType">
+                AND src.id IS NULL
+            </if>
+
+        </where>
+        GROUP BY
+            a.id
+    </select>
+</mapper>

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

@@ -36,8 +36,8 @@ public interface WorkbenchMapper {
 			@Param("type")String type, @Param("beginDate")Date beginDate, @Param("endDate")Date endDate,
 			@Param("subName")String subName,@Param("currStage")String currStage, @Param("loginName")String loginName);
 
-	List<Map<String,Object>> getYbList(@Param("queryVO")RptContQueryVO queryVO, @Param("yearStr")String yearStr, @Param("startMonthStr")String startMonthStr,
-									   @Param("endMonthStr")String endMonthStr, @Param("pageNo")Integer pageNo, @Param("pageSize") Integer pageSize, @Param("order") String order);
+	List<Map<String,Object>> getYbList(@Param("varkind")String varkind,@Param("varbegin")String varbegin,@Param("varend")String varend,@Param("vardesc")String vardesc,@Param("varstatus")String varstatus
+	,@Param("varjsdd")String varjsdd,@Param("varlogin")String varlogin,@Param("varpage")Integer varpage,@Param("varnum")Integer varnum,@Param("outtotal")Integer outtotal);
 
 
 	List<Map<String,Object>> getWeekAndMonthAlarm( @Param("loginName")String loginName);

+ 4 - 2
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/WorkbenchMapper.xml

@@ -12,8 +12,10 @@
 		call total_get_list1(#{kind},#{status},#{type},#{beginDate},#{endDate},#{subName},#{loginName},#{currStage})
 	</select>
 
-	<select id="getYbList" parameterType="com.rtrh.projects.modules.projects.vo.RptContQueryVO" resultType="java.util.Map" statementType="CALLABLE" useCache="false">
-		call total_get_yb_list(#{queryVO.status},#{yearStr}, #{startMonthStr},#{endMonthStr},#{queryVO.subName},#{queryVO.loginName},#{queryVO.isDo},#{queryVO.startAmt},#{queryVO.endAmt},#{queryVO.hyfl}, #{queryVO.amtSj}, #{queryVO.amtYc}, #{queryVO.jsdd}, #{pageNo}, #{pageSize}, #{order}, #{queryVO.totalCount,mode=OUT,jdbcType=INTEGER })
+	<select id="getYbList"  resultType="java.util.Map" statementType="CALLABLE" useCache="false">
+	call total_get_yb_g_list(
+			#{varkind},#{varbegin},#{varend},#{vardesc},#{varstatus},#{varjsdd},#{varlogin},#{varpage},#{varnum},#{outtotal}
+			)
 	</select>
 
 	<select id="getWeekAndMonthAlarm" resultType="java.util.Map" statementType="CALLABLE" useCache="false">

+ 4 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubCameraService.java

@@ -73,6 +73,8 @@ public interface SubCameraService {
      */
     SubInfoCameraVO getListBySubId(String subId);
 
+    SubInfoCameraVO getListBySubIdNew(String subId);
+
 
     /**
      * 通过项目id及编码设备id查询所有的摄像头信息(用于同步数据)
@@ -99,4 +101,6 @@ public interface SubCameraService {
      * @return
      */
     List<Map<String, Object>> cameraTree(String subId);
+
+    List<Map<String, Object>> cameraTreeNew(String subId);
 }

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

@@ -432,5 +432,9 @@ public interface SubInfoService {
 
 	Map<String, Object> preProcedureExceed(LoginUserVO loginUser, PreWarnDataQueryVO queryVO);
 
+	List<WorkBenchVO> preProcedureExceedSize();
+
+	List<WorkBenchVO> queryExceedMonthlySize(String lastMonth);
+
 	Map<String, Object> queryExceedMonthly(LoginUserVO loginUser, PreWarnDataQueryVO queryVO);
 }

+ 29 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubPreNewService.java

@@ -109,6 +109,35 @@ public interface SubPreNewService {
 	 */
 	Page pageDueTime(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO);
 
+	/**
+	 * 储备转新建超期
+	 * @param page
+	 * @param vo
+	 * @param queryVO
+	 * @return
+	 */
+	Page pageQueryCbToXjData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
+	List<Map<String,Object>> pageQueryCbToXjDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
+	Page pageQueryXjToZjData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
+	List<Map<String,Object>> pageQueryXjToZjDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
+
+	Page pageQueryZjToTcData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
+	List<Map<String,Object>> pageQueryZjToTcDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
+	Page pageQueryTcToRgData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
+	List<Map<String,Object>> pageQueryTcToRgDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
+	Page pageQueryPreWarnData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
+	List<Map<String,Object>> pageQueryPreWarnDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
+
 
 	/***
 	 * 逾期项目数

+ 5 - 1
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubRptContService.java

@@ -16,7 +16,7 @@ public interface SubRptContService {
 
 	List<RptCont> getListBySubId(String subId, RptContKindEnum kind,Date startDate,Date endDate);
 
-	Page ListQuery(Page page, RptContQueryVO queryVO);
+	List<Map<String, Object>> ListQuery(String varkind, String varbegin, String varend, String vardesc, String varstatus, String varjsdd, String varlogin,Integer varpage, Integer varnum, Integer outtotal);
 	List<Map<String,Object>> ListQueryWeekAndMonthAlarm(String loginName);
 
 	void saveReport(WeekContentVO vo, LoginUserVO loginUserVO, RptContKindEnum contKindEnum);
@@ -118,6 +118,10 @@ public interface SubRptContService {
 
 	Page pageMonthWarnData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO);
 
+	Page pageQueryMonthWarnData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
+	List<Map<String,Object>> pageQueryMonthWarnDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO);
+
 
 
 	/***

+ 45 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubCameraServiceImpl.java

@@ -9,6 +9,10 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.stream.Collectors;
 
+import com.rtrh.projects.modules.projects.mapper.SubCameraMapper;
+import com.rtrh.projects.modules.projects.mapper.SubInfoMapper;
+import com.rtrh.projects.modules.projects.po.SubInfoGxj;
+import com.rtrh.projects.util.TargetDataSource;
 import org.hibernate.criterion.Criterion;
 import org.hibernate.criterion.DetachedCriteria;
 import org.hibernate.criterion.Restrictions;
@@ -41,6 +45,10 @@ public class SubCameraServiceImpl implements SubCameraService {
     @Autowired
     private SubCameraDao subCameraDao;
     @Autowired
+    private SubCameraMapper subCameraMapper;
+    @Autowired
+    private SubInfoMapper subInfoMapper;
+    @Autowired
     private SubInfoDao subInfoDao;
 
     @Override
@@ -273,6 +281,17 @@ public class SubCameraServiceImpl implements SubCameraService {
         return subInfoCameraVO;
     }
 
+    @Override
+    @TargetDataSource(value = "secondary")
+    public SubInfoCameraVO getListBySubIdNew(String subId) {
+        SubInfoCameraVO subInfoCameraVO=new SubInfoCameraVO();
+        SubInfo subInfo=  subInfoMapper.findByFgwId(subId);
+        BeanUtils.copyProperties(subInfo,subInfoCameraVO);
+        List<SubCamera> list=subCameraMapper.getListCameraBySubId(subId);
+        subInfoCameraVO.setList(list);
+        return subInfoCameraVO;
+    }
+
     @Override
     public SubVideoVO getVideo(String subId) {
 
@@ -364,6 +383,32 @@ public class SubCameraServiceImpl implements SubCameraService {
 		return result;
 	}
 
+    @Override
+    @TargetDataSource(value = "secondary")
+    public List<Map<String, Object>> cameraTreeNew(String subId) {
+        List<Map<String, Object>> result = new ArrayList<>();
+        List<CameraTreeVO> cameraTreeData = subCameraMapper.cameraTreeNew(subId);
+        if(CollectionUtil.isNotEmpty(cameraTreeData)) {
+            Map<String, List<CameraTreeVO>> collect = cameraTreeData.stream().collect(Collectors.groupingBy(CameraTreeVO::getSubId));
+            collect.keySet().forEach(item->{
+                List<CameraTreeVO> list = collect.get(item);
+                for(CameraTreeVO vo : list) {
+                    vo.setUrl(ApiStaticUrl.getVideo(vo.getUrl()));
+                }
+                String subId2 = list.get(0).getSubId();
+                String subName = list.get(0).getSubName();
+                Map<String, Object> subInfo = new HashMap<>();
+                subInfo.put("id", subId2);
+                subInfo.put("disabled", true);
+                subInfo.put("subId", subId2);
+                subInfo.put("title", subName);
+                subInfo.put("children", list);
+                result.add(subInfo);
+            });
+        }
+        return result;
+    }
+
 
 
 	@Override

+ 2 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoQueryServiceImpl.java

@@ -30,6 +30,7 @@ import com.rtrh.projects.modules.system.service.ISubInduService;
 import com.rtrh.projects.modules.system.service.TSysTableService;
 import com.rtrh.projects.modules.system.vo.PersonInfoVO;
 import com.rtrh.projects.modules.utils.DateUtils;
+import com.rtrh.projects.util.TargetDataSource;
 import com.rtrh.projects.vo.projects.SubFixGetBeginRateVo;
 import com.rtrh.projects.vo.statics.OtherQueryVO;
 import com.rtrh.projects.vo.statics.ProjectQueryVO;
@@ -3098,6 +3099,7 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
     }
 
     @Override
+    @TargetDataSource(value="secondary")
     public List<SubSmartVO> smartSiteQuery(String subjectId) {
 
         Calendar calendar = Calendar.getInstance();

+ 130 - 7
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoServiceImpl.java

@@ -5166,21 +5166,31 @@ public class SubInfoServiceImpl implements SubInfoService {
     public Map<String, Object> queryExceedNum() {
         Map<String, Object> map = new HashMap<>();
         map.put("cbToXjNum",subInfoMapper.queryExceedCbToXj().size());
-        map.put("preNum",subInfoMapper.preProcedureExceed().size());
         map.put("xjToZjNum",subInfoMapper.queryExceedXjToZj().size());
         map.put("zjToTcNum",subInfoMapper.queryExceedZjTotc().size());
         map.put("tcToRgNum",subInfoMapper.queryExceedTcToRg().size());
-        // 上个月
-        String lastMonth = DateUtil.format(DateUtil.offsetMonth(DateUtil.date(), -1), "yyyyMM");
-        int dayOfMonth = DateUtil.dayOfMonth(DateUtil.date());
-        map.put("monthlyNum", dayOfMonth <= 5 ? 0 : subInfoMapper.queryExceedMonthly(lastMonth).size());
         return map;
     }
 
+
+    @TargetDataSource("secondary")
+    @Override
+    public List<WorkBenchVO> preProcedureExceedSize(){
+        List<WorkBenchVO> list = subInfoMapper.preProcedureExceed();
+        return list;
+    }
+
+    @TargetDataSource("secondary")
+    @Override
+    public List<WorkBenchVO> queryExceedMonthlySize(String lastMonth) {
+        return subInfoMapper.queryExceedMonthly(lastMonth);
+    }
+
     @Override
+    @TargetDataSource("secondary")
     public Map<String, Object> preProcedureExceed(LoginUserVO vo, PreWarnDataQueryVO queryVO) {
         List<WorkBenchVO> list = subInfoMapper.preProcedureExceed();
-        return getStringObjectMap(list);
+        return getStringObjectMapSecond(list);
         //  /api/problemInfo/preData/getdata
     }
 
@@ -5188,6 +5198,7 @@ public class SubInfoServiceImpl implements SubInfoService {
      * 月报超期
      */
     @Override
+    @TargetDataSource("secondary")
     public Map<String, Object> queryExceedMonthly(LoginUserVO loginUser, PreWarnDataQueryVO queryVO) {
         String lastMonth = DateUtil.format(DateUtil.offsetMonth(DateUtil.date(), -1), "yyyyMM");
         int dayOfMonth = DateUtil.dayOfMonth(new Date());
@@ -5200,7 +5211,7 @@ public class SubInfoServiceImpl implements SubInfoService {
             }};
         }else {
             list = subInfoMapper.queryExceedMonthly(lastMonth);
-            return getStringObjectMap(list);
+            return getStringObjectMapSecond(list);
         }
     }
 
@@ -5316,6 +5327,118 @@ public class SubInfoServiceImpl implements SubInfoService {
         return resultMap;
     }
 
+    private Map<String, Object> getStringObjectMapSecond(List<WorkBenchVO> list) {
+        Map<String, Object> resultMap = new HashMap<>();
+        if (CollectionUtil.isNotEmpty(list)){
+            List<TSystable> jsddDict = tSysTableService.getByKind(SysTableKind.JSDD);
+            Map<String, String> jsddMap = jsddDict.stream().collect(Collectors.toMap(TSystable::getCode, TSystable::getTitle));
+           //Map<String, String> hyflMap = subInduService.queryParentAll().stream().collect(Collectors.toMap(SubIndu::getCode, SubIndu::getTitle));
+            // 1.按属地分-------------
+            List<String> subjectCodes = new ArrayList<>();
+            List<Map<String, Object>> subjectList = list.stream()
+                    .collect(Collectors.groupingBy(WorkBenchVO::getSubjectId))
+                    .entrySet().stream()
+                    .map(e -> {
+                        subjectCodes.add(e.getKey());
+                        return new HashMap<String, Object>() {{
+                            put("code",e.getKey());
+                            put("title", jsddMap.getOrDefault(e.getKey(), e.getKey()));
+                            put("number", e.getValue().size());
+                        }};
+                    }).collect(Collectors.toList());
+            jsddMap.forEach((k, v) -> {
+                if (!subjectCodes.contains(k)){
+                    subjectList.add(new HashMap<String, Object>() {{
+                        put("code", k);
+                        put("title", v);
+                        put("number", 0);
+                    }});
+                }
+            });
+            resultMap.put("listSubject", subjectList);
+            // 2.按金额分----------- 定义分组边界
+            Map<String, BigDecimal> groupBoundaries = new LinkedHashMap<>();
+            groupBoundaries.put("10亿元以下", new BigDecimal("100000"));
+            groupBoundaries.put("10-50亿元", new BigDecimal("500000"));
+            groupBoundaries.put("50-100亿元", new BigDecimal("1000000"));
+            groupBoundaries.put("100亿元以上", new BigDecimal("100000000000"));
+
+            List<Map<String, Object>> defaultScaleList = groupBoundaries.keySet().stream()
+                    .map(entry -> new HashMap<String, Object>() {{
+                        put("code", entry);
+                        put("title", entry);
+                        put("number", 0);
+                    }})
+                    .collect(Collectors.toList());
+
+            List<Map<String, Object>> scaleList = list.stream()
+                    .collect(Collectors.groupingBy(transaction -> {
+                        for (Map.Entry<String, BigDecimal> entry : groupBoundaries.entrySet()) {
+                            if (transaction.getAmtTotal()!=null && transaction.getAmtTotal().compareTo(entry.getValue()) < 0) {
+                                return entry.getKey();
+                            }
+                        }
+                        return "未知分组"; // 超过最高范围的默认分组
+                    }))
+                    .entrySet().stream()
+                    .map(entry -> {
+                        return new HashMap<String, Object>() {{
+                            put("code", entry.getKey());
+                            put("title", entry.getKey());
+                            put("number", entry.getValue().size());
+                        }};
+                    })
+                    .collect(Collectors.toList());
+
+            for (Map<String, Object> defaultScale : defaultScaleList) {
+                String code = (String) defaultScale.get("code");
+                Optional<Map<String, Object>> found = scaleList.stream()
+                        .filter(scale -> scale.get("code").equals(code))
+                        .findFirst();
+
+                if (found.isPresent()) {
+                    // 如果找到了对应的组,使用实际的数量
+                    Map<String, Object> actualScale = found.get();
+                    defaultScale.put("number", actualScale.get("number"));
+                }
+            }
+            resultMap.put("listScale", defaultScaleList);
+            // 3.按行业分---------------
+            /*List<String> indusCodes = new ArrayList<>();
+            List<HashMap<String, Object>> indusKindList = list.stream()
+                    .collect(Collectors.groupingBy(transaction -> {
+                        String code = transaction.getIndusKind();
+                        // 确保code不为空且长度至少为2
+                        if (code == null || code.length() < 2) {
+                            return "未知行业";  // 默认未知行业
+                        }
+                        return code.substring(0, 2);
+                    }))
+                    .entrySet().stream()
+                    .map(entry ->{
+                                indusCodes.add(entry.getKey());
+                                return new HashMap<String, Object>() {{
+                                    put("code", entry.getKey());
+                                    put("title", hyflMap.getOrDefault(entry.getKey(), entry.getKey()));
+                                    put("number", entry.getValue().size());
+                                }};
+                            }
+                    )
+                    .collect(Collectors.toList());
+            hyflMap.forEach((k, v) -> {
+                if (!indusCodes.contains(k)){
+                    indusKindList.add(new HashMap<String, Object>() {{
+                        put("code", k);
+                        put("title", v);
+                        put("number", 0);
+                    }});
+                }
+            });
+            resultMap.put("listIndusKind", indusKindList);*/
+        }
+        return resultMap;
+    }
+
     @Override
     public List<SubInfoTotalExcel> exportTotalExcelByStatus(SubInfoQueryTzVO vo) {
         return subInfoMapper.exportTotalExcelByStatus(vo.getStatus());

+ 232 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubPreNewServiceImpl.java

@@ -3,7 +3,10 @@ package com.rtrh.projects.modules.projects.service.impl;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.rtrh.projects.modules.projects.dao.*;
+import com.rtrh.projects.modules.projects.mapper.SubPreNewMapper;
 import com.rtrh.projects.modules.projects.po.*;
 import com.rtrh.projects.modules.projects.vo.*;
 import com.rtrh.projects.modules.system.enums.UserKindUnitEnum;
@@ -13,7 +16,9 @@ import com.rtrh.projects.modules.system.service.SubDataLogService;
 import com.rtrh.projects.modules.system.vo.LoginUserVO;
 import com.rtrh.projects.modules.utils.ApiStaticUrl;
 import com.rtrh.projects.modules.utils.DateUtils;
+import com.rtrh.projects.util.TargetDataSource;
 import com.rtrh.projects.vo.subject.SubinfoPreQueryVo;
+import org.apache.commons.lang.StringUtils;
 import org.hibernate.criterion.Criterion;
 import org.hibernate.criterion.DetachedCriteria;
 import org.hibernate.criterion.Order;
@@ -46,6 +51,8 @@ public class SubPreNewServiceImpl implements SubPreNewService {
     @Autowired
     private SubPreNewDao subPreNewDao;
     @Autowired
+    private SubPreNewMapper subPreNewMapper;
+    @Autowired
     private SubPreFlowDao subPreFlowDao;
     @Autowired
     private JDepartDao jDepartDao;
@@ -1561,5 +1568,230 @@ public class SubPreNewServiceImpl implements SubPreNewService {
         return subPreNewDao.queryForListBySql(sql.toString(), page);
     }
 
+    @Override
+    public Page pageQueryCbToXjData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("subName", queryVO.getSubName());
+        map.put("hyfl", queryVO.getHyfl());
+        map.put("subjectId", queryVO.getSubjectId());
+        map.put("lightType", queryVO.getLightType());
+        map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+        if ("10亿元以下".equals(queryVO.getCode())){
+            map.put("code", "1");
+        }else if ("10-50亿元".equals(queryVO.getCode())){
+            map.put("code", "2");
+        }else if ("50-100亿元".equals(queryVO.getCode())){
+            map.put("code", "3");
+        }else if ("100亿元以上".equals(queryVO.getCode())){
+            map.put("code", "4");
+        }
+        PageHelper.startPage(page.getPageNo(), page.getPageSize());
+        List<Map<String, Object>> mapList = subPreNewMapper.pageQueryCbToXjData(map);
+        PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(mapList);
+        page.setTotalCount(pageInfo.getTotal());
+        page.setList(mapList);
+        return page;
+    }
+
+    @Override
+    public List<Map<String,Object>> pageQueryCbToXjDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("subName", queryVO.getSubName());
+        map.put("hyfl", queryVO.getHyfl());
+        map.put("subjectId", queryVO.getSubjectId());
+        map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+        if ("10亿元以下".equals(queryVO.getCode())){
+            map.put("code", "1");
+        }else if ("10-50亿元".equals(queryVO.getCode())){
+            map.put("code", "2");
+        }else if ("50-100亿元".equals(queryVO.getCode())){
+            map.put("code", "3");
+        }else if ("100亿元以上".equals(queryVO.getCode())){
+            map.put("code", "4");
+        }
+        List<Map<String, Object>> mapList = subPreNewMapper.pageQueryCbToXjData(map);
+        return mapList;
+    }
+
+    @Override
+    public Page pageQueryXjToZjData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("subName", queryVO.getSubName());
+        map.put("hyfl", queryVO.getHyfl());
+        map.put("subjectId", queryVO.getSubjectId());
+        map.put("lightType", queryVO.getLightType());
+        map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+        if ("10亿元以下".equals(queryVO.getCode())){
+            map.put("code", "1");
+        }else if ("10-50亿元".equals(queryVO.getCode())){
+            map.put("code", "2");
+        }else if ("50-100亿元".equals(queryVO.getCode())){
+            map.put("code", "3");
+        }else if ("100亿元以上".equals(queryVO.getCode())){
+            map.put("code", "4");
+        }
+        PageHelper.startPage(page.getPageNo(), page.getPageSize());
+        List<Map<String, Object>> mapList = subPreNewMapper.pageQueryXjToZjData(map);
+        PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(mapList);
+        page.setTotalCount(pageInfo.getTotal());
+        page.setList(mapList);
+        return page;
+    }
+
+    @Override
+    public List<Map<String,Object>> pageQueryXjToZjDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("subName", queryVO.getSubName());
+        map.put("hyfl", queryVO.getHyfl());
+        map.put("subjectId", queryVO.getSubjectId());
+        map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+        if ("10亿元以下".equals(queryVO.getCode())){
+            map.put("code", "1");
+        }else if ("10-50亿元".equals(queryVO.getCode())){
+            map.put("code", "2");
+        }else if ("50-100亿元".equals(queryVO.getCode())){
+            map.put("code", "3");
+        }else if ("100亿元以上".equals(queryVO.getCode())){
+            map.put("code", "4");
+        }
+        List<Map<String, Object>> mapList = subPreNewMapper.pageQueryXjToZjData(map);
+        return mapList;
+    }
+
+    @Override
+    public Page pageQueryZjToTcData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("subName", queryVO.getSubName());
+        map.put("hyfl", queryVO.getHyfl());
+        map.put("subjectId", queryVO.getSubjectId());
+        map.put("lightType", queryVO.getLightType());
+        map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+        if ("10亿元以下".equals(queryVO.getCode())){
+            map.put("code", "1");
+        }else if ("10-50亿元".equals(queryVO.getCode())){
+            map.put("code", "2");
+        }else if ("50-100亿元".equals(queryVO.getCode())){
+            map.put("code", "3");
+        }else if ("100亿元以上".equals(queryVO.getCode())){
+            map.put("code", "4");
+        }
+        PageHelper.startPage(page.getPageNo(), page.getPageSize());
+        List<Map<String, Object>> mapList = subPreNewMapper.pageQueryZjToTcData(map);
+        PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(mapList);
+        page.setTotalCount(pageInfo.getTotal());
+        page.setList(mapList);
+        return page;
+    }
 
+    @Override
+    public List<Map<String,Object>> pageQueryZjToTcDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("subName", queryVO.getSubName());
+        map.put("hyfl", queryVO.getHyfl());
+        map.put("subjectId", queryVO.getSubjectId());
+        map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+        if ("10亿元以下".equals(queryVO.getCode())){
+            map.put("code", "1");
+        }else if ("10-50亿元".equals(queryVO.getCode())){
+            map.put("code", "2");
+        }else if ("50-100亿元".equals(queryVO.getCode())){
+            map.put("code", "3");
+        }else if ("100亿元以上".equals(queryVO.getCode())){
+            map.put("code", "4");
+        }
+        List<Map<String, Object>> mapList = subPreNewMapper.pageQueryZjToTcData(map);
+        return mapList;
+    }
+
+    @Override
+    public Page pageQueryTcToRgData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("subName", queryVO.getSubName());
+        map.put("hyfl", queryVO.getHyfl());
+        map.put("subjectId", queryVO.getSubjectId());
+        map.put("lightType", queryVO.getLightType());
+        map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+        if ("10亿元以下".equals(queryVO.getCode())){
+            map.put("code", "1");
+        }else if ("10-50亿元".equals(queryVO.getCode())){
+            map.put("code", "2");
+        }else if ("50-100亿元".equals(queryVO.getCode())){
+            map.put("code", "3");
+        }else if ("100亿元以上".equals(queryVO.getCode())){
+            map.put("code", "4");
+        }
+        PageHelper.startPage(page.getPageNo(), page.getPageSize());
+        List<Map<String, Object>> mapList = subPreNewMapper.pageQueryTcToRgData(map);
+        PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(mapList);
+        page.setTotalCount(pageInfo.getTotal());
+        page.setList(mapList);
+        return page;
+    }
+
+    @Override
+    public List<Map<String,Object>> pageQueryTcToRgDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("subName", queryVO.getSubName());
+        map.put("hyfl", queryVO.getHyfl());
+        map.put("subjectId", queryVO.getSubjectId());
+        map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+        if ("10亿元以下".equals(queryVO.getCode())){
+            map.put("code", "1");
+        }else if ("10-50亿元".equals(queryVO.getCode())){
+            map.put("code", "2");
+        }else if ("50-100亿元".equals(queryVO.getCode())){
+            map.put("code", "3");
+        }else if ("100亿元以上".equals(queryVO.getCode())){
+            map.put("code", "4");
+        }
+        List<Map<String, Object>> mapList = subPreNewMapper.pageQueryTcToRgData(map);
+        return mapList;
+    }
+
+    @Override
+    @TargetDataSource(value = "secondary")
+    public Page pageQueryPreWarnData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("subName", queryVO.getSubName());
+        map.put("hyfl", queryVO.getHyfl());
+        map.put("subjectId", queryVO.getSubjectId());
+        map.put("lightType", queryVO.getLightType());
+        map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+        if ("10亿元以下".equals(queryVO.getCode())){
+            map.put("code", "1");
+        }else if ("10-50亿元".equals(queryVO.getCode())){
+            map.put("code", "2");
+        }else if ("50-100亿元".equals(queryVO.getCode())){
+            map.put("code", "3");
+        }else if ("100亿元以上".equals(queryVO.getCode())){
+            map.put("code", "4");
+        }
+        PageHelper.startPage(page.getPageNo(), page.getPageSize());
+        List<Map<String, Object>> mapList = subPreNewMapper.pageQueryPreWarnData(map);
+        PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(mapList);
+        page.setTotalCount(pageInfo.getTotal());
+        page.setList(mapList);
+        return page;
+    }
+
+    @Override
+    @TargetDataSource(value = "secondary")
+    public List<Map<String,Object>> pageQueryPreWarnDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("subName", queryVO.getSubName());
+        map.put("hyfl", queryVO.getHyfl());
+        map.put("subjectId", queryVO.getSubjectId());
+        map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+        if ("10亿元以下".equals(queryVO.getCode())){
+            map.put("code", "1");
+        }else if ("10-50亿元".equals(queryVO.getCode())){
+            map.put("code", "2");
+        }else if ("50-100亿元".equals(queryVO.getCode())){
+            map.put("code", "3");
+        }else if ("100亿元以上".equals(queryVO.getCode())){
+            map.put("code", "4");
+        }
+        List<Map<String, Object>> mapList = subPreNewMapper.pageQueryPreWarnData(map);
+        return mapList;
+    }
 }

+ 99 - 31
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubRptContServiceImpl.java

@@ -8,14 +8,20 @@ import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.google.common.base.CaseFormat;
 import com.rtrh.projects.modules.projects.enums.ProjectStatusEnum;
 import com.rtrh.projects.modules.projects.enums.SubIsHideStatusEnum;
 import com.rtrh.projects.modules.projects.mapper.StaticsMapper;
+import com.rtrh.projects.modules.projects.mapper.SubRptContMapper;
 import com.rtrh.projects.modules.projects.vo.*;
 import com.rtrh.projects.modules.system.po.SecUser;
 import com.rtrh.projects.modules.system.service.SecUserService;
 import com.rtrh.projects.modules.utils.DateUtils;
+import com.rtrh.projects.util.TargetDataSource;
+import org.apache.ibatis.annotations.Param;
+import org.apache.commons.lang.StringUtils;
 import org.hibernate.criterion.Criterion;
 import org.hibernate.criterion.DetachedCriteria;
 import org.hibernate.criterion.Order;
@@ -50,6 +56,8 @@ public class SubRptContServiceImpl implements SubRptContService {
 	@Autowired
 	private RptContDao rptContDao;
 	@Autowired
+	private SubRptContMapper subRptContMapper;
+	@Autowired
 	private WorkbenchMapper workbenchMapper;
 	@Autowired
 	private SubInfoDao subInfoDao;
@@ -81,38 +89,11 @@ public class SubRptContServiceImpl implements SubRptContService {
 	}
 
 	@Override
-	public Page ListQuery(Page page, RptContQueryVO queryVO) {
-		String year = String.valueOf(DateUtil.year(queryVO.getStartMonth()));
-		String startStr = null;
-		String endStr = null;
-		switch (RptContKindEnum.findByCode(queryVO.getContKindEnum())) {
-		case WEEK:
-			startStr = DateUtil.formatDate(queryVO.getStartMonth());
-			endStr = DateUtil.formatDate(queryVO.getEndMonth());
-			break;
-		case MONTH:
-			startStr = DateUtil.format(queryVO.getStartMonth(), MONTH_FORMAT);
-			endStr = DateUtil.format(queryVO.getEndMonth(), MONTH_FORMAT);
-			break;
-		default:
-			break;
-		}
-		if(StringUtil.isEmpty(queryVO.getIsDo())) {
-			queryVO.setIsDo("0");
-		}
-		String order = "";
-		if(page.getOrderType() != null) {
-			if(OrderType.asc.name().equals(page.getOrderType().name())) {
-				order = "1";
-			} else {
-				order = "2";
-			}
-		}
+	@TargetDataSource("secondary")
+	public List<Map<String, Object>> ListQuery(String varkind, String varbegin, String varend, String vardesc, String varstatus, String varjsdd, String varlogin,Integer varpage, Integer varnum, Integer outtotal) {
 
-		List<Map<String, Object>> list = workbenchMapper.getYbList(queryVO, year, startStr, endStr, page.getPageNo(), page.getPageSize(), order);
-		page.setList(list);
-		page.setTotalCount(queryVO.getTotalCount());
-		return page;
+		List<Map<String, Object>> data = workbenchMapper.getYbList(varkind, varbegin, varend, vardesc, varstatus, varjsdd, varlogin, varpage,  varnum, outtotal);
+		return data;
 	}
 
 	@Override
@@ -823,6 +804,93 @@ public class SubRptContServiceImpl implements SubRptContService {
 		return pageData;
 	}
 
+	@Override
+	@TargetDataSource(value = "secondary")
+	public Page pageQueryMonthWarnData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+		Map<String, Object> map = new HashMap<>();
+		map.put("subName", queryVO.getSubName());
+		map.put("hyfl", queryVO.getHyfl());
+		map.put("subjectId", queryVO.getSubjectId());
+		map.put("lightType", queryVO.getLightType());
+		map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+		if ("10亿元以下".equals(queryVO.getCode())){
+			map.put("code", "1");
+		}else if ("10-50亿元".equals(queryVO.getCode())){
+			map.put("code", "2");
+		}else if ("50-100亿元".equals(queryVO.getCode())){
+			map.put("code", "3");
+		}else if ("100亿元以上".equals(queryVO.getCode())){
+			map.put("code", "4");
+		}
+		Calendar calendar=Calendar.getInstance();
+		if (StringUtil.isNotEmpty(queryVO.getYear())){
+			calendar.set(Calendar.YEAR,Integer.parseInt(queryVO.getYear()));
+		}else{
+			calendar.set(Calendar.YEAR,Calendar.getInstance().get(Calendar.YEAR));
+		}
+		if(StringUtil.isNotEmpty(queryVO.getMonth())){
+			calendar.set(Calendar.MONTH, Integer.parseInt(queryVO.getMonth()));
+		}else{
+			calendar.set(Calendar.MONTH,Calendar.getInstance().get(Calendar.MONTH));
+		}
+		calendar.set(Calendar.DAY_OF_MONTH,5);
+		SimpleDateFormat yearMonthDay=new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss");
+		String date=yearMonthDay.format(calendar.getTime());
+		//月份减一
+		calendar.add(Calendar.MONTH,-1);
+		SimpleDateFormat yearMonth=new SimpleDateFormat("yyyyMM");
+		String yearMonthString=yearMonth.format(calendar.getTime());
+		map.put("yearMonth", yearMonthString);
+		map.put("date", date);
+		PageHelper.startPage(page.getPageNo(), page.getPageSize());
+		List<Map<String, Object>> mapList = subRptContMapper.pageQueryMonthWarnData(map);
+		PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(mapList);
+		page.setTotalCount(pageInfo.getTotal());
+		page.setList(mapList);
+		return page;
+	}
+
+	@Override
+	@TargetDataSource(value = "secondary")
+	public List<Map<String,Object>> pageQueryMonthWarnDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO) {
+		Map<String, Object> map = new HashMap<>();
+		map.put("subName", queryVO.getSubName());
+		map.put("hyfl", queryVO.getHyfl());
+		map.put("subjectId", queryVO.getSubjectId());
+		map.put("propKind", StringUtils.isNotEmpty(queryVO.getPropKind())?Arrays.stream(queryVO.getPropKind().split(",")).map(s -> "'" + s + "'").collect(Collectors.joining(",")):null);
+		if ("10亿元以下".equals(queryVO.getCode())){
+			map.put("code", "1");
+		}else if ("10-50亿元".equals(queryVO.getCode())){
+			map.put("code", "2");
+		}else if ("50-100亿元".equals(queryVO.getCode())){
+			map.put("code", "3");
+		}else if ("100亿元以上".equals(queryVO.getCode())){
+			map.put("code", "4");
+		}
+		Calendar calendar=Calendar.getInstance();
+		if (StringUtil.isNotEmpty(queryVO.getYear())){
+			calendar.set(Calendar.YEAR,Integer.parseInt(queryVO.getYear()));
+		}else{
+			calendar.set(Calendar.YEAR,Calendar.getInstance().get(Calendar.YEAR));
+		}
+		if(StringUtil.isNotEmpty(queryVO.getMonth())){
+			calendar.set(Calendar.MONTH, Integer.parseInt(queryVO.getMonth()));
+		}else{
+			calendar.set(Calendar.MONTH,Calendar.getInstance().get(Calendar.MONTH));
+		}
+		calendar.set(Calendar.DAY_OF_MONTH,5);
+		SimpleDateFormat yearMonthDay=new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss");
+		String date=yearMonthDay.format(calendar.getTime());
+		//月份减一
+		calendar.add(Calendar.MONTH,-1);
+		SimpleDateFormat yearMonth=new SimpleDateFormat("yyyyMM");
+		String yearMonthString=yearMonth.format(calendar.getTime());
+		map.put("yearMonth", yearMonthString);
+		map.put("date", date);
+		List<Map<String, Object>> mapList = subRptContMapper.pageQueryMonthWarnData(map);
+		return mapList;
+	}
+
 	@Override
 	public List<Map<String, Object>> monthWarnDataBySubject(LoginUserVO vo, PreWarnDataQueryVO queryVO) {
 

+ 2 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/PreWarnDataQueryVO.java

@@ -88,4 +88,6 @@ public class PreWarnDataQueryVO {
      */
     private String checkDepart;
 
+    private String code;
+
 }

+ 10 - 15
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/RptContQueryVO.java

@@ -9,21 +9,16 @@ import lombok.Setter;
 @Setter
 @Getter
 public class RptContQueryVO {
+	private String varkind;
+	private String varbegin;
+	private String varend;
+	private String vardesc;
+	private String varstatus;
+	private String varjsdd;
+	private String varlogin;
+	private Integer varpage;
+	private Integer varnum;
+	private Integer outtotal;
 
-	private Date startMonth;
-	private Date endMonth;
-	private Date month;
-	private String status;
-	private String subName;
-	private String loginName;
-	private String contKindEnum;
-	private String isDo;
-	private BigDecimal startAmt;
-	private BigDecimal endAmt;
-	private String hyfl;
-	private String amtSj;
-	private String amtYc;
-	private String jsdd;
-	private Integer totalCount;
 
 }

+ 4 - 18
projects/src/main/java/com/rtrh/projects/outapi/controller/MonthReportApiController.java

@@ -8,10 +8,8 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
-import com.rtrh.core.vo.ListMessage;
 import com.rtrh.projects.modules.projects.vo.SubInfoQueryTzVO;
 import com.rtrh.projects.modules.utils.DateUtils;
-import com.rtrh.projects.web.log.Log;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -85,31 +83,19 @@ public class MonthReportApiController extends BaseOutApiController {
         LoginUserVO loginUserVO = jwtUtils.getUserInfo(getToken());
         try {
             RptContQueryVO queryVO = new RptContQueryVO();
-            queryVO.setIsDo(StringUtil.isEmpty(vo.getStatus()) ? "0" : vo.getStatus());
-            queryVO.setStatus("0");
-            queryVO.setHyfl(StringUtil.isEmpty(vo.getHyfl()) ? "" : vo.getHyfl());
-            queryVO.setSubName(StringUtil.isEmpty(vo.getSubName()) ? "" : vo.getSubName());
-            queryVO.setLoginName(loginUserVO.getLoginName());
-            queryVO.setStartMonth(vo.getStartMonth());
-            queryVO.setEndMonth(vo.getEndMonth());
-            queryVO.setContKindEnum(RptContKindEnum.MONTH.getCode());
-            queryVO.setAmtSj("");
-            queryVO.setAmtYc("");
-            queryVO.setJsdd("");
+
 
             String currUserUnitId = loginUserVO.getUnitId();
             Boolean checkEdit = loginUserVO.getEdit();
-            Page pageData = subRptContService.ListQuery(page, queryVO);
-            List<Map<String, Object>> list = pageData.getList();
-            for (Map<String, Object> map : list) {
+            List<Map<String, Object>> data = subRptContService.ListQuery(queryVO.getVarkind(),queryVO.getVarbegin(),queryVO.getVarend(),queryVO.getVardesc(),queryVO.getVarstatus(),queryVO.getVarjsdd(),queryVO.getVarlogin(),queryVO.getVarpage(),queryVO.getVarnum(),queryVO.getOuttotal());
+            for (Map<String, Object> map : data) {
                 if (currUserUnitId.equals(map.get("unit_id") == null ? "" : map.get("unit_id")) || checkEdit == true) {
                     map.put("checkedit", "1");
                 } else {
                     map.put("checkedit", "0");
                 }
             }
-            result.setData("list", list);
-            result.setData("totalCount", pageData.getTotalCount());
+            result.setData("list", data);
         } catch (Exception e) {
             logger.error("", e);
             result.setCode(ResultCode.SYSTEM_ERROR, e.getMessage());

+ 2 - 16
projects/src/main/java/com/rtrh/projects/outapi/controller/WeekReportApiController.java

@@ -5,7 +5,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import com.rtrh.projects.web.log.Log;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -88,22 +87,11 @@ public class WeekReportApiController extends BaseOutApiController {
 
     @TokenAuthenticate
     @PostMapping("getList")
-    public JsonResult queryReport(@RequestBody Page page, @RequestBody ListQueryVO vo) {
+    public JsonResult queryReport( @RequestBody ListQueryVO vo) {
         JsonResult result = new JsonResult();
         LoginUserVO loginUserVO = jwtUtils.getUserInfo(getToken());
         try {
         	RptContQueryVO queryVO = new RptContQueryVO();
-            queryVO.setIsDo(StringUtil.isEmpty(vo.getStatus())?"0":vo.getStatus());
-            queryVO.setStatus("0");
-            queryVO.setHyfl(StringUtil.isEmpty(vo.getHyfl())?"":vo.getHyfl());
-            queryVO.setSubName(StringUtil.isEmpty(vo.getSubName())?"":vo.getSubName());
-            queryVO.setLoginName(loginUserVO.getLoginName());
-            queryVO.setStartMonth(vo.getStartMonth());
-            queryVO.setEndMonth(vo.getEndMonth());
-            queryVO.setContKindEnum(RptContKindEnum.WEEK.getCode());
-            queryVO.setAmtSj("");
-            queryVO.setAmtYc("");
-            queryVO.setJsdd("");
             String currUserUnitId = loginUserVO.getUnitId();
             Boolean checkEdit = loginUserVO.getEdit();
             String status = vo.getStatus();
@@ -118,8 +106,7 @@ public class WeekReportApiController extends BaseOutApiController {
             if(StringUtil.isEmpty(subName)) {
             	subName="";
             }
-            Page pageData = subRptContService.ListQuery(page, queryVO);
-            List<Map<String,Object>> list= pageData.getList();
+            List<Map<String,Object>> list= subRptContService.ListQuery(queryVO.getVarkind(),queryVO.getVarbegin(),queryVO.getVarend(),queryVO.getVardesc(),queryVO.getVarstatus(),queryVO.getVarjsdd(),queryVO.getVarlogin(),queryVO.getVarpage(),queryVO.getVarnum(),queryVO.getOuttotal());
             for (Map<String,Object> map:list) {
                 if (currUserUnitId.equals(map.get("unit_id") == null ? "" : map.get("unit_id")) || checkEdit == true) {
                     map.put("checkedit", "1");
@@ -128,7 +115,6 @@ public class WeekReportApiController extends BaseOutApiController {
                 }
             }
             result.setData("list",list);
-            result.setData("totalCount", pageData.getTotalCount());
         } catch (Exception e) {
             logger.error("",e);
             result.setCode(ResultCode.SYSTEM_ERROR, e.getMessage());

+ 24 - 5
projects/src/main/java/com/rtrh/projects/web/controller/problemreport/ProblemInfoController.java

@@ -69,7 +69,7 @@ public class ProblemInfoController extends BaseController {
      * @return
      */
     @GetMapping("preWarn")
-    public ModelAndView preWarn(ModelMap model,String subjectId,String sourceId,String mainId,String hyfl,String lastUrl) {
+    public ModelAndView preWarn(ModelMap model,String subjectId,String sourceId,String mainId,String hyfl,String lastUrl,String code) {
         model.put("HYFL", tSysTableService.getByKind(SysTableKind.HYFL));
         model.put("XMLX", tSysTableService.getByKind(SysTableKind.XMLX));
         model.put("JSXZ", tSysTableService.getByKind(SysTableKind.JSXZ));
@@ -78,6 +78,7 @@ public class ProblemInfoController extends BaseController {
         model.put("mainId", mainId);
         model.put("hyfl",hyfl);
         model.put("lastUrl",lastUrl);
+        model.put("code",code);
 
         return new ModelAndView("/vmodules/problem/info/preWarn.jsp", model);
     }
@@ -100,6 +101,20 @@ public class ProblemInfoController extends BaseController {
         return new ModelAndView("/vmodules/problem/info/preWarn.jsp", model);
     }
 
+    @GetMapping("cbToXjWarn")
+    public ModelAndView cbToXjWarn(ModelMap model,String subjectId,String sourceId,String mainId,String hyfl,String lastUrl,String code) {
+        model.put("HYFL", tSysTableService.getByKind(SysTableKind.HYFL));
+        model.put("XMLX", tSysTableService.getByKind(SysTableKind.XMLX));
+        model.put("JSXZ", tSysTableService.getByKind(SysTableKind.JSXZ));
+        model.put("subjectId", subjectId);
+        model.put("sourceId", sourceId);
+        model.put("mainId", mainId);
+        model.put("hyfl",hyfl);
+        model.put("lastUrl",lastUrl);
+        model.put("code",code);
+        return new ModelAndView("/vmodules/problem/info/cbToXjWarn.jsp", model);
+    }
+
 
     /**
      * 月报预期
@@ -107,7 +122,7 @@ public class ProblemInfoController extends BaseController {
      * @return
      */
     @GetMapping("monthWarn")
-    public ModelAndView monthWarn(ModelMap model,String subjectId,String sourceId,String mainId,String hyfl,String lastUrl) {
+    public ModelAndView monthWarn(ModelMap model,String subjectId,String sourceId,String mainId,String hyfl,String lastUrl,String code) {
         model.put("HYFL", tSysTableService.getByKind(SysTableKind.HYFL));
         model.put("XMLX", tSysTableService.getByKind(SysTableKind.XMLX));
         model.put("JSXZ", tSysTableService.getByKind(SysTableKind.JSXZ));
@@ -116,6 +131,7 @@ public class ProblemInfoController extends BaseController {
         model.put("mainId", mainId);
         model.put("hyfl",hyfl);
         model.put("lastUrl",lastUrl);
+        model.put("code",code);
 
         return new ModelAndView("/vmodules/problem/info/monthWarn.jsp", model);
     }
@@ -127,7 +143,7 @@ public class ProblemInfoController extends BaseController {
      * @return
      */
     @GetMapping("openWarn")
-    public ModelAndView openWarn(ModelMap model,String subjectId,String sourceId,String mainId,String hyfl,String lastUrl) {
+    public ModelAndView openWarn(ModelMap model,String subjectId,String sourceId,String mainId,String hyfl,String lastUrl,String code) {
         model.put("HYFL", tSysTableService.getByKind(SysTableKind.HYFL));
         model.put("XMLX", tSysTableService.getByKind(SysTableKind.XMLX));
         model.put("JSXZ", tSysTableService.getByKind(SysTableKind.JSXZ));
@@ -137,6 +153,7 @@ public class ProblemInfoController extends BaseController {
         model.put("mainId", mainId);
         model.put("hyfl",hyfl);
         model.put("lastUrl",lastUrl);
+        model.put("code",code);
 
         return new ModelAndView("/vmodules/problem/info/openWarn.jsp", model);
     }
@@ -147,7 +164,7 @@ public class ProblemInfoController extends BaseController {
      * @return
      */
     @GetMapping("endWarn")
-    public ModelAndView endWarn(ModelMap model,String subjectId,String sourceId,String mainId,String hyfl,String lastUrl) {
+    public ModelAndView endWarn(ModelMap model,String subjectId,String sourceId,String mainId,String hyfl,String lastUrl,String code) {
         model.put("HYFL", tSysTableService.getByKind(SysTableKind.HYFL));
         model.put("XMLX", tSysTableService.getByKind(SysTableKind.XMLX));
         model.put("JSXZ", tSysTableService.getByKind(SysTableKind.JSXZ));
@@ -157,6 +174,7 @@ public class ProblemInfoController extends BaseController {
         model.put("mainId", mainId);
         model.put("hyfl",hyfl);
         model.put("lastUrl",lastUrl);
+        model.put("code",code);
 
         return new ModelAndView("/vmodules/problem/info/endWarn.jsp", model);
     }
@@ -168,7 +186,7 @@ public class ProblemInfoController extends BaseController {
      * @return
      */
     @GetMapping("pldWarn")
-    public ModelAndView pldWarn(ModelMap model,String subjectId,String sourceId,String mainId,String hyfl,String lastUrl) {
+    public ModelAndView pldWarn(ModelMap model,String subjectId,String sourceId,String mainId,String hyfl,String lastUrl,String code) {
         model.put("HYFL", tSysTableService.getByKind(SysTableKind.HYFL));
         model.put("XMLX", tSysTableService.getByKind(SysTableKind.XMLX));
         model.put("JSXZ", tSysTableService.getByKind(SysTableKind.JSXZ));
@@ -178,6 +196,7 @@ public class ProblemInfoController extends BaseController {
         model.put("mainId", mainId);
         model.put("hyfl",hyfl);
         model.put("lastUrl",lastUrl);
+        model.put("code",code);
 
         return new ModelAndView("/vmodules/problem/info/pldWarn.jsp", model);
     }

+ 264 - 37
projects/src/main/java/com/rtrh/projects/web/controller/problemreport/api/ProblemInfoApiController.java

@@ -1,6 +1,7 @@
 package com.rtrh.projects.web.controller.problemreport.api;
 
 
+import cn.hutool.core.date.DateUtil;
 import com.rtrh.common.util.StringUtil;
 import com.rtrh.core.repository.Page;
 import com.rtrh.core.vo.ListMessage;
@@ -23,6 +24,9 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 
 @RestController
@@ -59,6 +63,11 @@ public class ProblemInfoApiController extends BaseController {
         Message message = new Message();
         try {
             Map<String, Object> map = subInfoService.queryExceedNum();
+            map.put("preNum",subInfoService.preProcedureExceedSize().size());
+            // 上个月
+            String lastMonth = DateUtil.format(DateUtil.offsetMonth(DateUtil.date(), -1), "yyyyMM");
+            int dayOfMonth = DateUtil.dayOfMonth(DateUtil.date());
+            map.put("monthlyNum", dayOfMonth <= 5 ? 0 : subInfoService.queryExceedMonthlySize(lastMonth).size());
             // Page preData = subPreNewService.pageDueTime(new Page(), getCurUser().getLoginUser(), queryVO);
             // Page monthData = subRptContService.pageMonthWarnData(new Page(), getCurUser().getLoginUser(), queryVO);
             // queryVO.setOpenAndEndStatus("1");
@@ -90,6 +99,238 @@ public class ProblemInfoApiController extends BaseController {
         return message;
     }
 
+    /**
+     * 查询储备转新建超期信息
+     * @param page
+     * @return
+     */
+    @PostMapping(value = "/pageQueryCbToXjData")
+    public ListMessage pageQueryCbToXjData(@RequestBody Page page, @RequestBody PreWarnDataQueryVO queryVO) {
+        ListMessage message = new ListMessage();
+        try {
+            Page pageData = subPreNewService.pageQueryCbToXjData(page, getCurUser().getLoginUser(), queryVO);
+
+            message.add(pageData.getList(), pageData.getTotalCount());
+        } catch (Exception e) {
+            logger.error("",e);
+            message.add("获取失败");
+        }
+        return message;
+    }
+
+    /**
+     * 查询储备转新建超期信息 红黄灯数量
+     * @param queryVO
+     * @return
+     */
+    @PostMapping("pageQueryCbToXjDataRedYellow")
+    public Message pageQueryCbToXjDataRedYellow(@RequestBody PreWarnDataQueryVO queryVO) {
+        Message message = new Message();
+        try {
+            List<Map<String,Object>> list = subPreNewService.pageQueryCbToXjDataDetail(getCurUser().getLoginUser(), queryVO);
+            Integer redNum=0;  //未办理红灯
+            Integer yellowNum=0;  //未办理黄灯
+            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
+            for (Map<String, Object> map : list) {
+                LocalDate now = LocalDate.now();
+                LocalDate qyDate = LocalDate.parse(map.get("qyDate").toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                if (StringUtil.isNotEmpty(map.get("cbNum").toString())){
+                    qyDate.plusDays(Integer.parseInt(map.get("cbNum").toString()));
+                    long daysBetween = ChronoUnit.DAYS.between(qyDate, now);
+                    if(daysBetween>3) {
+                        redNum += 1;
+                    }else{
+                        yellowNum += 1;
+                    }
+
+                }else{
+                    long daysBetween = ChronoUnit.DAYS.between(qyDate, now);
+                    if(daysBetween>3) {
+                        redNum += 1;
+                    }else{
+                        yellowNum += 1;
+                    }
+                }
+            }
+
+            Map<String,Object> map=new HashMap<>();
+            map.put("redNum",redNum);
+            map.put("yellowNum",yellowNum);
+
+            if (list.size()>0){
+                map.put("redRate",new BigDecimal(redNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+                map.put("yellowRate",new BigDecimal(yellowNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+            }else{
+                map.put("redRate",0);
+                map.put("yellowRate",0);
+            }
+            map.put("total",list.size());
+            message.setData(map);
+        } catch (Exception e) {
+            logger.error("", e);
+            message.add("获取失败");
+        }
+        return message;
+    }
+
+
+    @PostMapping(value = "/pageQueryXjToZjData")
+    public ListMessage pageQueryXjToZjData(@RequestBody Page page, @RequestBody PreWarnDataQueryVO queryVO) {
+        ListMessage message = new ListMessage();
+        try {
+            Page pageData = subPreNewService.pageQueryXjToZjData(page, getCurUser().getLoginUser(), queryVO);
+            message.add(pageData.getList(), pageData.getTotalCount());
+        } catch (Exception e) {
+            logger.error("",e);
+            message.add("获取失败");
+        }
+        return message;
+    }
+
+    @PostMapping("pageQueryXjToZjDataRedYellow")
+    public Message pageQueryXjToZjDataRedYellow(@RequestBody PreWarnDataQueryVO queryVO) {
+        Message message = new Message();
+        try {
+            List<Map<String,Object>> list = subPreNewService.pageQueryXjToZjDataDetail(getCurUser().getLoginUser(), queryVO);
+            Integer redNum=0;
+            Integer yellowNum=0;
+            //取当前时间判断
+            Calendar calendar=Calendar.getInstance();
+            for (Map<String, Object> map : list) {
+                LocalDate now = LocalDate.now();
+                LocalDate qyDate = LocalDate.parse(map.get("beginDate").toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                long daysBetween = ChronoUnit.DAYS.between(qyDate, now);
+                if(daysBetween>3) {
+                    redNum += 1;
+                }else{
+                    yellowNum += 1;
+                }
+            }
+            Map<String,Object> map=new HashMap<>();
+            map.put("redNum",redNum);
+            map.put("yellowNum",yellowNum);
+            if (list.size()>0){
+                map.put("redRate",new BigDecimal(redNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+                map.put("yellowRate",new BigDecimal(yellowNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+            }else{
+                map.put("redRate","0%");
+                map.put("yellowRate","0%");
+            }
+
+            map.put("total",list.size());
+            message.setData(map);
+        } catch (Exception e) {
+            logger.error("", e);
+            message.add("获取失败");
+        }
+        return message;
+    }
+
+
+    @PostMapping(value = "/pageQueryZjToTcData")
+    public ListMessage pageQueryZjToTcData(@RequestBody Page page, @RequestBody PreWarnDataQueryVO queryVO) {
+        ListMessage message = new ListMessage();
+        try {
+            Page pageData = subPreNewService.pageQueryZjToTcData(page, getCurUser().getLoginUser(), queryVO);
+            message.add(pageData.getList(), pageData.getTotalCount());
+        } catch (Exception e) {
+            logger.error("",e);
+            message.add("获取失败");
+        }
+        return message;
+    }
+
+    @PostMapping("pageQueryZjToTcDataRedYellow")
+    public Message pageQueryZjToTcDataRedYellow(@RequestBody PreWarnDataQueryVO queryVO) {
+        Message message = new Message();
+        try {
+            List<Map<String,Object>> list = subPreNewService.pageQueryZjToTcDataDetail(getCurUser().getLoginUser(), queryVO);
+            Integer redNum=0;
+            Integer yellowNum=0;
+            //取当前时间判断
+            Calendar calendar=Calendar.getInstance();
+            for (Map<String, Object> map : list) {
+                LocalDate now = LocalDate.now();
+                LocalDate qyDate = LocalDate.parse(map.get("endDate").toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                long daysBetween = ChronoUnit.DAYS.between(qyDate, now);
+                if(daysBetween>3) {
+                    redNum += 1;
+                }else{
+                    yellowNum += 1;
+                }
+            }
+            Map<String,Object> map=new HashMap<>();
+            map.put("redNum",redNum);
+            map.put("yellowNum",yellowNum);
+            if (list.size()>0){
+                map.put("redRate",new BigDecimal(redNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+                map.put("yellowRate",new BigDecimal(yellowNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+            }else{
+                map.put("redRate","0%");
+                map.put("yellowRate","0%");
+            }
+
+            map.put("total",list.size());
+            message.setData(map);
+        } catch (Exception e) {
+            logger.error("", e);
+            message.add("获取失败");
+        }
+        return message;
+    }
+
+    @PostMapping(value = "/pageQueryTcToRgData")
+    public ListMessage pageQueryTcToRgDataData(@RequestBody Page page, @RequestBody PreWarnDataQueryVO queryVO) {
+        ListMessage message = new ListMessage();
+        try {
+            Page pageData = subPreNewService.pageQueryTcToRgData(page, getCurUser().getLoginUser(), queryVO);
+            message.add(pageData.getList(), pageData.getTotalCount());
+        } catch (Exception e) {
+            logger.error("",e);
+            message.add("获取失败");
+        }
+        return message;
+    }
+
+    @PostMapping("pageQueryTcToRgDataRedYellow")
+    public Message pageQueryTcToRgDataRedYellow(@RequestBody PreWarnDataQueryVO queryVO) {
+        Message message = new Message();
+        try {
+            List<Map<String,Object>> list = subPreNewService.pageQueryTcToRgDataDetail(getCurUser().getLoginUser(), queryVO);
+            Integer redNum=0;
+            Integer yellowNum=0;
+            //取当前时间判断
+            Calendar calendar=Calendar.getInstance();
+            for (Map<String, Object> map : list) {
+                LocalDate now = LocalDate.now();
+                LocalDate qyDate = LocalDate.parse(map.get("rtDate").toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+                long daysBetween = ChronoUnit.DAYS.between(qyDate, now);
+                if(daysBetween>3) {
+                    redNum += 1;
+                }else{
+                    yellowNum += 1;
+                }
+            }
+            Map<String,Object> map=new HashMap<>();
+            map.put("redNum",redNum);
+            map.put("yellowNum",yellowNum);
+            if (list.size()>0){
+                map.put("redRate",new BigDecimal(redNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+                map.put("yellowRate",new BigDecimal(yellowNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+            }else{
+                map.put("redRate","0%");
+                map.put("yellowRate","0%");
+            }
+
+            map.put("total",list.size());
+            message.setData(map);
+        } catch (Exception e) {
+            logger.error("", e);
+            message.add("获取失败");
+        }
+        return message;
+    }
+
 
 
     /**
@@ -101,7 +342,8 @@ public class ProblemInfoApiController extends BaseController {
     public ListMessage pageQueryPreWarnData(@RequestBody Page page, @RequestBody PreWarnDataQueryVO queryVO) {
         ListMessage message = new ListMessage();
         try {
-            Page pageData = subPreNewService.pageDueTime(page, getCurUser().getLoginUser(), queryVO);
+            //Page pageData = subPreNewService.pageDueTime(page, getCurUser().getLoginUser(), queryVO);
+            Page pageData = subPreNewService.pageQueryPreWarnData(page, getCurUser().getLoginUser(), queryVO);
 
             message.add(pageData.getList(), pageData.getTotalCount());
         } catch (Exception e) {
@@ -123,10 +365,9 @@ public class ProblemInfoApiController extends BaseController {
         try {
             Page page=new Page();
             page.setPageSize(0);
-
-            Page pageData = subPreNewService.pageDueTime(page, getCurUser().getLoginUser(), queryVO);
-            List<Map<String,Object>> list=pageData.getList();
-            // List<Map<String,Object>> list = subPreNewService.countSubInfoNumByDueTime(getCurUser().getLoginUser(), queryVO);
+            List<Map<String, Object>> list = subPreNewService.pageQueryPreWarnDataDetail(getCurUser().getLoginUser(), queryVO);
+            //Page pageData = subPreNewService.pageDueTime(page, getCurUser().getLoginUser(), queryVO);
+            //List<Map<String,Object>> list=pageData.getList();
             Integer redNum=0;  //未办理红灯
             Integer yellowNum=0;  //未办理黄灯
 
@@ -138,11 +379,6 @@ public class ProblemInfoApiController extends BaseController {
                     if (Objects.equals(map.get("statusConf"),"2")){
                         Integer num3=map.get("num3")==null?0: (Integer) map.get("num3");
                         Integer num2=map.get("num2")==null?0: (Integer) map.get("num2");
-//                        if (num3>num2+3){
-//                            redNum=redNum+1;
-//                        }else{
-//                            yellowNum=yellowNum+1;
-//                        }
                         cqNum=cqNum+1;
                     }else{
                         Date  planDate=map.get("datePlan")==null?new Date():simpleDateFormat.parse( map.get("datePlan")+"");
@@ -162,16 +398,16 @@ public class ProblemInfoApiController extends BaseController {
             map.put("yellowNum",yellowNum);
             map.put("cqNum",cqNum);
 
-            if (pageData.getList().size()>0){
-                map.put("redRate",new BigDecimal(redNum).multiply(new BigDecimal(100)).divide(new BigDecimal(pageData.getList().size()),2,BigDecimal.ROUND_HALF_UP)+"%");
-                map.put("yellowRate",new BigDecimal(yellowNum).multiply(new BigDecimal(100)).divide(new BigDecimal(pageData.getList().size()),2,BigDecimal.ROUND_HALF_UP)+"%");
-                map.put("cqNumRate",new BigDecimal(cqNum).multiply(new BigDecimal(100)).divide(new BigDecimal(pageData.getList().size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+            if (list.size()>0){
+                map.put("redRate",new BigDecimal(redNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+                map.put("yellowRate",new BigDecimal(yellowNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+                map.put("cqNumRate",new BigDecimal(cqNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
             }else{
                 map.put("redRate",0);
                 map.put("yellowRate",0);
                 map.put("cqNumRate",0);
             }
-            map.put("total",pageData.getList().size());
+            map.put("total",list.size());
             message.setData(map);
         } catch (Exception e) {
             logger.error("", e);
@@ -261,7 +497,8 @@ public class ProblemInfoApiController extends BaseController {
     public ListMessage pageQueryMonthWarnData(@RequestBody Page page, @RequestBody PreWarnDataQueryVO queryVO) {
         ListMessage message = new ListMessage();
         try {
-            Page pageData = subRptContService.pageMonthWarnData(page, getCurUser().getLoginUser(), queryVO);
+            //Page pageData = subRptContService.pageMonthWarnData(page, getCurUser().getLoginUser(), queryVO);
+            Page pageData = subRptContService.pageQueryMonthWarnData(page, getCurUser().getLoginUser(), queryVO);
 
             message.add(pageData.getList(), pageData.getTotalCount());
         } catch (Exception e) {
@@ -282,52 +519,42 @@ public class ProblemInfoApiController extends BaseController {
         try {
             Page page=new Page();
             page.setPageSize(0);
-
-            Page pageData = subRptContService.pageMonthWarnData(page, getCurUser().getLoginUser(), queryVO);
+            //Page pageData = subRptContService.pageMonthWarnData(page, getCurUser().getLoginUser(), queryVO);
+            List<Map<String,Object>> list = subRptContService.pageQueryMonthWarnDataDetail(getCurUser().getLoginUser(), queryVO);
 
             Integer redNum=0;
             Integer yellowNum=0;
 
-            for (Map<String, Object> map : (List<Map<String,Object>>)pageData.getList()) {
-
-
+            for (Map<String, Object> map : list) {
                 Calendar calendar=Calendar.getInstance();
-                calendar.set(Calendar.DAY_OF_MONTH,1);
-
+                calendar.set(Calendar.DAY_OF_MONTH,5);
                     if (map.get("monthId")!=null){
-
-
                          Date create_time=map.get("create_time")==null?new Date(): (Date) map.get("create_time");
-
                          if (((calendar.getTime().getTime()-create_time.getTime())/(1000*3600*24))>3){
                              redNum=redNum+1;
                          }else{
                              yellowNum=yellowNum+1;
                          }
-
-
                     }else{
-
                         Date newDate=new Date();
-
                         if ((newDate.getTime()-calendar.getTime().getTime())/(1000*3600*24)>3){
                             redNum=redNum+1;
                         }else{
                             yellowNum=yellowNum+1;
                         }
-
                     }
-
-
-
             }
 
             Map<String,Object> map=new HashMap<>();
             map.put("redNum",redNum);
             map.put("yellowNum",yellowNum);
-            map.put("redRate",new BigDecimal(redNum).multiply(new BigDecimal(100)).divide(new BigDecimal(pageData.getList().size()),2,BigDecimal.ROUND_HALF_UP)+"%");
-            map.put("yellowRate",new BigDecimal(yellowNum).multiply(new BigDecimal(100)).divide(new BigDecimal(pageData.getList().size()),2,BigDecimal.ROUND_HALF_UP)+"%");
-            map.put("total",pageData.getList().size());
+            if (list.size()>0){
+                map.put("redRate",new BigDecimal(redNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+                map.put("yellowRate",new BigDecimal(yellowNum).multiply(new BigDecimal(100)).divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+            }
+            //map.put("redRate",new BigDecimal(redNum).multiply(new BigDecimal(100)).divide(new BigDecimal(pageData.getList().size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+            //map.put("yellowRate",new BigDecimal(yellowNum).multiply(new BigDecimal(100)).divide(new BigDecimal(pageData.getList().size()),2,BigDecimal.ROUND_HALF_UP)+"%");
+            map.put("total",list.size());
             message.setData(map);
         } catch (Exception e) {
             logger.error("", e);

+ 1 - 1
projects/src/main/java/com/rtrh/projects/web/controller/problemreport/api/ProblemtrackApiController.java

@@ -54,7 +54,7 @@ public class ProblemtrackApiController extends BaseController {
         ListMessage message = new ListMessage();
         Page  pageData=null;
         try {
-            pageData=subquestioninfoservice.pageQueryQuestionList(page, getCurUser().getLoginUser(), queryVO);
+            pageData=subquestioninfoservice.pageQueryQuestionNewList(page, getCurUser().getLoginUser(), queryVO);
 
             for (Map<String, String> map : (List<Map<String, String>>) pageData.getList()) {
                 String sta1 = map.get("status");

+ 3 - 8
projects/src/main/java/com/rtrh/projects/web/controller/projects/ProWeekReportController.java

@@ -109,22 +109,17 @@ public class ProWeekReportController extends BaseController {
 
 
 	@GetMapping("exportExcel")
-	public void exportExcel(RptContQueryVO queryVO, Date startMonth, Date endMonth, String status, String subName, String isDo, BigDecimal startAmt, BigDecimal endAmt, String hyfl, String jsdd) {
+	public void exportExcel(RptContQueryVO queryVO) {
 		try {
 			Page page = new Page();
 			page.setPageNo(1);
 			page.setPageSize(0);//每页记录数为0为查所有
-			queryVO.setLoginName(getCurUser().getLoginName());
-			queryVO.setAmtSj("");
-			queryVO.setAmtYc("");
-			queryVO.setContKindEnum(RptContKindEnum.WEEK.getCode());
+
 			//获取数据
-			page = subRptContService.ListQuery(page, queryVO);
-			List<Map<String, Object>> list = page.getList();
+			List<Map<String, Object>> list= subRptContService.ListQuery(queryVO.getVarkind(),queryVO.getVarbegin(),queryVO.getVarend(),queryVO.getVardesc(),queryVO.getVarstatus(),queryVO.getVarjsdd(),queryVO.getVarlogin(),queryVO.getVarpage(),queryVO.getVarnum(),queryVO.getOuttotal());
 			XSSFWorkbook workbook = new XSSFWorkbook();
 			ExcelExportService service = new ExcelExportService();
 			List<ExcelExportEntity> headers = new ArrayList<>();
-			headers.add(new ExcelExportEntity("年度", "year"));
 			headers.add(new ExcelExportEntity("周报期间", "kj_month", 30));
 			headers.add(new ExcelExportEntity("项目名称", "sub_name", 30));
 			headers.add(new ExcelExportEntity("项目进展情况", "content", 20));

+ 2 - 6
projects/src/main/java/com/rtrh/projects/web/controller/projects/ProjMonthReportController.java

@@ -96,18 +96,14 @@ public class ProjMonthReportController extends BaseController {
 			page.setPageNo(1);
 			page.setPageSize(0);//每页记录数为0为查所有数据
 			//获取数据
-			queryVO.setContKindEnum(RptContKindEnum.MONTH.getCode());
-			queryVO.setLoginName(getCurUser().getLoginName());
-			page = subRptContService.ListQuery(page, queryVO);
-			List<Map<String,Object>> list = page.getList();
+
+			List<Map<String,Object>> list = subRptContService.ListQuery(queryVO.getVarkind(),queryVO.getVarbegin(),queryVO.getVarend(),queryVO.getVardesc(),queryVO.getVarstatus(),queryVO.getVarjsdd(),queryVO.getVarlogin(),queryVO.getVarpage(),queryVO.getVarnum(),queryVO.getOuttotal());
 			XSSFWorkbook workbook = new XSSFWorkbook();
 			ExcelExportService service = new ExcelExportService();
 			List<ExcelExportEntity> headers = new ArrayList<>();
-			headers.add(new ExcelExportEntity("年度","year"));
 			headers.add(new ExcelExportEntity("月报期间","kj_month",20));
 			headers.add(new ExcelExportEntity("项目名称","sub_name",30));
 			headers.add(new ExcelExportEntity("本月实际投资(万元)","amt",20));
-			headers.add(new ExcelExportEntity("下月预测投资(万元)","amt_last",20));
 			headers.add(new ExcelExportEntity("项目进展情况","content",20));
 			headers.add(new ExcelExportEntity("完成比例(%)","num_bl"));
 			headers.add(new ExcelExportEntity("项目延期原因","reason",20));

+ 4 - 11
projects/src/main/java/com/rtrh/projects/web/controller/projects/api/ProWeekReportApiController.java

@@ -2,10 +2,7 @@ package com.rtrh.projects.web.controller.projects.api;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 import com.rtrh.projects.web.log.Log;
 import org.slf4j.Logger;
@@ -57,15 +54,11 @@ public class ProWeekReportApiController extends BaseController {
 	private WeekAndMonthFileService weekAndMonthFileService;
 
 	@PostMapping(value="/queryReport")
-	public ListMessage queryReport(@RequestBody Page page, @RequestBody RptContQueryVO queryVO) {
+	public ListMessage queryReport( @RequestBody RptContQueryVO queryVO) {
 		ListMessage message = new ListMessage();
 		try {
-			queryVO.setLoginName(getCurUser().getLoginName());
-			queryVO.setAmtSj("");
-			queryVO.setAmtYc("");
-			queryVO.setContKindEnum(RptContKindEnum.WEEK.getCode());
-			Page pageData = subRptContService.ListQuery(page, queryVO);
-			message.add(pageData.getList(), pageData.getTotalCount());
+			List<Map<String, Object>> data = subRptContService.ListQuery(queryVO.getVarkind(),queryVO.getVarbegin(),queryVO.getVarend(),queryVO.getVardesc(),queryVO.getVarstatus(),queryVO.getVarjsdd(),queryVO.getVarlogin(),queryVO.getVarpage(),queryVO.getVarnum(),queryVO.getOuttotal());
+			message.setData(data);
 		} catch (Exception e) {
 			logger.error("",e);
 			message.add(e.getMessage());

+ 3 - 4
projects/src/main/java/com/rtrh/projects/web/controller/projects/api/ProjMonthReportApiController.java

@@ -2,6 +2,7 @@ package com.rtrh.projects.web.controller.projects.api;
 
 import java.text.SimpleDateFormat;
 import java.util.List;
+import java.util.Map;
 
 import com.rtrh.projects.modules.projects.po.SubInfo;
 import com.rtrh.projects.modules.projects.service.SubInfoService;
@@ -61,10 +62,8 @@ public class ProjMonthReportApiController extends BaseController {
 	public ListMessage queryReport(@RequestBody Page page, @RequestBody RptContQueryVO queryVO) {
 		ListMessage message = new ListMessage();
 		try {
-			queryVO.setContKindEnum(RptContKindEnum.MONTH.getCode());
-			queryVO.setLoginName(getCurUser().getLoginName());
-			Page pageData = subRptContService.ListQuery(page, queryVO);
-			message.add(pageData.getList(), pageData.getTotalCount());
+			List<Map<String, Object>> data  = subRptContService.ListQuery(queryVO.getVarkind(),queryVO.getVarbegin(),queryVO.getVarend(),queryVO.getVardesc(),queryVO.getVarstatus(),queryVO.getVarjsdd(),queryVO.getVarlogin(),queryVO.getVarpage(),queryVO.getVarnum(),queryVO.getOuttotal());
+			message.setData(data);
 		} catch (Exception e) {
 			logger.error("",e);
 			message.add(e.getMessage());

+ 4 - 2
projects/src/main/java/com/rtrh/projects/web/controller/smart/api/SubSmartSiteApiController.java

@@ -121,7 +121,8 @@ public class SubSmartSiteApiController extends BaseController {
     public Message getCameraListBySubId(@RequestBody SubIdVO subIdVO) {
     	Message message = new Message();
     	try {
-    		SubInfoCameraVO vo = subCameraService.getListBySubId(subIdVO.getSubId());
+    		//SubInfoCameraVO vo = subCameraService.getListBySubId(subIdVO.getSubId());
+    		SubInfoCameraVO vo = subCameraService.getListBySubIdNew(subIdVO.getSubId());
     		message.setData(vo);
 		} catch (Exception e) {
 			logger.error("", e);
@@ -139,7 +140,8 @@ public class SubSmartSiteApiController extends BaseController {
     public Message getCameraTree(@RequestBody SubIdVO subIdVO) {
     	Message message = new Message();
     	try {
-			List<Map<String,Object>> list = subCameraService.cameraTree(subIdVO.getSubId());
+			//List<Map<String,Object>> list = subCameraService.cameraTree(subIdVO.getSubId());
+			List<Map<String,Object>> list = subCameraService.cameraTreeNew(subIdVO.getSubId());
 			message.setData(list);
 		} catch (Exception e) {
 			logger.error("", e);

+ 4 - 4
projects/src/main/webapp/vmodules/leftMenu.jsp

@@ -207,14 +207,14 @@
                         {
                             code: '702',
                             txt: '项目地图',
-                            // url: 'smart/query'
-                            url: 'register/underConstruction'
+                            url: 'smart/query'
+                            //url: 'register/underConstruction'
                         },
                         {
                             code: '703',
                             txt: '实时视频',
-                            // url: 'smart/vedio'
-                            url: 'register/underConstruction'
+                            url: 'smart/vedio'
+                            //url: 'register/underConstruction'
                         },
                         {
                             txt: '周调度图片',

+ 279 - 279
projects/src/main/webapp/vmodules/map/map.jsp

@@ -7,13 +7,13 @@
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>地图</title>
-    <jsp:include page="../common/common-meta-include.jsp"></jsp:include>
-    <jsp:include page="../common/common-js-include.jsp"></jsp:include>
-    <jsp:include page="../common/common-css-include.jsp"></jsp:include>
-    <!--[if lt IE 9]>
-    <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
-    <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
-    <![endif]-->
+  <jsp:include page="../common/common-meta-include.jsp"></jsp:include>
+  <jsp:include page="../common/common-js-include.jsp"></jsp:include>
+  <jsp:include page="../common/common-css-include.jsp"></jsp:include>
+  <!--[if lt IE 9]>
+  <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+  <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+  <![endif]-->
 </head>
 <body>
 <script type="text/javascript" src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=fH2LyWBEJhhAgSPnKsI7RMFxsYNxkKt2"></script>
@@ -36,308 +36,308 @@
   </div>
 </div>
 <script type="text/javascript">
-new Vue({
-	el: '#app',
-	data: {
-		map: null,
-		subjectId: "${subjectId}",
-		subjectName : "${subjectName}"== "" ? "伊州区" : "${subjectName}",
-		clickTimeouts: [],
-		iconData: [],
-		regionName : [{
-            longitude: '92.26',
-            latitude: '44.45',
-            name: '巴里坤哈萨克自治县',
-            color: '#AEE4D1'
-        }, {
-            name: '伊吾县',
-            longitude: '94.86',
-            latitude: '43.58',
-            color: '#9C6A7B'
-        }, {
-            name: '伊州区',
-            longitude: '93.56',
-            latitude: '42.18',
-            color: '#599D62'
-        }]
-	},
-	mounted: function() {
-		this.initMap();
-		this.init();
-		this.getPointData();
-		if(this.subjectName) {
-			if(this.subjectName == '巴里坤县') {
-				this.subjectName = '巴里坤哈萨克自治县';
-			}
-			if(this.subjectName == '本市级') {
-				this.subjectName = '市本级';
-			}
-			//初始化范围
-			this.getBoundary(this.subjectName);
-		}
-	},
-	methods: {
-		init: function(){
-			var self = this;
-		    layui.form.on('select(subjectId)', function (data) {
-		      let value = data.value; // 获得被选中的值
-		      self.subjectId = value;
-		      let text = data.elem.selectedOptions[0].text;
-		      if(text == '本市级' || text == '高新区') {
-		    	  text = "伊州区";
-		      }
-		      if(text == '巴里坤县') {
-		    	  text = '巴里坤哈萨克自治县';
-		      }
-		      self.getPointData();
-		      self.getBoundary(text);
-		    });
-		},
-		initMap: function() {
-		  this.map = new BMapGL.Map("container");
-		  this.map.centerAndZoom(new BMapGL.Point(93.76, 43.45), 8);
-		  this.map.enableScrollWheelZoom();
-		},
-		getBoundary: function(val) {
-			var self = this;
-			let bdary = new BMapGL.Boundary();
-	        /* bdary.get(val, function (rs) { //获取行政区域
-	        	console.log(rs)
-	        	self.map.clearOverlays(); //清除地图覆盖物
-	        	let count = rs.boundaries.length; //行政区域的点有多少个
-	        	for (let i = 0; i < count; i++) {
-		          	let ply = new BMapGL.Polygon(rs.boundaries[i], {
-		            strokeWeight: 2,
-		            strokeColor: "#3B6DE2"
-		          }); //建立多边形覆盖物
-		          self.map.addOverlay(ply); //添加覆盖物
-		          self.map.setViewport(ply.getPath()); //调整视野
-		          self.getPointData();
-	        	}
-	        }); */
-	        self.map.clearOverlays()
-			let dist = new BMapGL.DistrictLayer({
-                name: '('+val+')',
-                kind: 2,
-                fillColor: '#fff',
-                strokeColor: '#4A83F7',
-            });
-            this.map.addDistrictLayer(dist);
+  new Vue({
+    el: '#app',
+    data: {
+      map: null,
+      subjectId: "${subjectId}",
+      subjectName : "${subjectName}"== "" ? "伊州区" : "${subjectName}",
+      clickTimeouts: [],
+      iconData: [],
+      regionName : [{
+        longitude: '92.26',
+        latitude: '44.45',
+        name: '巴里坤哈萨克自治县',
+        color: '#AEE4D1'
+      }, {
+        name: '伊吾县',
+        longitude: '94.86',
+        latitude: '43.58',
+        color: '#9C6A7B'
+      }, {
+        name: '伊州区',
+        longitude: '93.56',
+        latitude: '42.18',
+        color: '#599D62'
+      }]
+    },
+    mounted: function() {
+      this.initMap();
+      this.init();
+      this.getPointData();
+      if(this.subjectName) {
+        if(this.subjectName == '巴里坤县') {
+          this.subjectName = '巴里坤哈萨克自治县';
+        }
+        if(this.subjectName == '本市级') {
+          this.subjectName = '市本级';
+        }
+        //初始化范围
+        this.getBoundary(this.subjectName);
+      }
+    },
+    methods: {
+      init: function(){
+        var self = this;
+        layui.form.on('select(subjectId)', function (data) {
+          let value = data.value; // 获得被选中的值
+          self.subjectId = value;
+          let text = data.elem.selectedOptions[0].text;
+          if(text == '本市级' || text == '高新区') {
+            text = "伊州区";
+          }
+          if(text == '巴里坤县') {
+            text = '巴里坤哈萨克自治县';
+          }
+          self.getPointData();
+          self.getBoundary(text);
+        });
+      },
+      initMap: function() {
+        this.map = new BMapGL.Map("container");
+        this.map.centerAndZoom(new BMapGL.Point(93.76, 43.45), 8);
+        this.map.enableScrollWheelZoom();
+      },
+      getBoundary: function(val) {
+        var self = this;
+        let bdary = new BMapGL.Boundary();
+        /* bdary.get(val, function (rs) { //获取行政区域
+            console.log(rs)
+            self.map.clearOverlays(); //清除地图覆盖物
+            let count = rs.boundaries.length; //行政区域的点有多少个
+            for (let i = 0; i < count; i++) {
+                  let ply = new BMapGL.Polygon(rs.boundaries[i], {
+                strokeWeight: 2,
+                strokeColor: "#3B6DE2"
+              }); //建立多边形覆盖物
+              self.map.addOverlay(ply); //添加覆盖物
+              self.map.setViewport(ply.getPath()); //调整视野
+              self.getPointData();
+            }
+        }); */
+        self.map.clearOverlays()
+        let dist = new BMapGL.DistrictLayer({
+          name: '('+val+')',
+          kind: 2,
+          fillColor: '#fff',
+          strokeColor: '#4A83F7',
+        });
+        this.map.addDistrictLayer(dist);
 
-	        //添加文本
-	        self.regionName.forEach(item => {
-	        let point = new BMapGL.Point(item.longitude, item.latitude);
-                let content = item.name;
-                let label = new BMapGL.Label(content, { // 创建文本标注
-                    position: point,
-                    offset: new BMapGL.Size(10, 20)
-                })
-                self.map.addOverlay(label); // 将标注添加到地图中
-                label.setStyle({ // 设置label的样式
-                    color: '#000',
-                    fontSize: '12px',
-                    border: 'none',
-                    background: 'none',
-                })
-	        })
-		},
-		getOnLoadBoundary: function(val) {
-			return new Promise((resolve, reject) => {
-
-                let dist = new BMapGL.DistrictLayer({
-                    name: '(哈密市)',
-                    kind: 2,
-                    fillColor: ['#618bf8', '#0c0', '#ccc'],
-                    strokeColor: '#daeafa',
-                });
-                isfind = false
-                map.addDistrictLayer(dist);
-                regionName.forEach(item => {
-                    let point = new BMapGL.Point(item.longitude, item.latitude);
-                    let content = item.name;
-                    let label = new BMapGL.Label(content, { // 创建文本标注
-                        position: point,
-                        offset: new BMapGL.Size(10, 20)
-                    })
-                    map.addOverlay(label); // 将标注添加到地图中
-                    label.setStyle({ // 设置label的样式
-                        color: '#000',
-                        fontSize: '12px',
-                        border: 'none',
-                        background: 'none',
-                    })
-                })
-                map.centerAndZoom(new BMapGL.Point(93.76, 43.45), 8);
-                resolve('绘制成功')
+        //添加文本
+        self.regionName.forEach(item => {
+          let point = new BMapGL.Point(item.longitude, item.latitude);
+          let content = item.name;
+          let label = new BMapGL.Label(content, { // 创建文本标注
+            position: point,
+            offset: new BMapGL.Size(10, 20)
+          })
+          self.map.addOverlay(label); // 将标注添加到地图中
+          label.setStyle({ // 设置label的样式
+            color: '#000',
+            fontSize: '12px',
+            border: 'none',
+            background: 'none',
+          })
+        })
+      },
+      getOnLoadBoundary: function(val) {
+        return new Promise((resolve, reject) => {
 
+          let dist = new BMapGL.DistrictLayer({
+            name: '(哈密市)',
+            kind: 2,
+            fillColor: ['#618bf8', '#0c0', '#ccc'],
+            strokeColor: '#daeafa',
+          });
+          isfind = false
+          map.addDistrictLayer(dist);
+          regionName.forEach(item => {
+            let point = new BMapGL.Point(item.longitude, item.latitude);
+            let content = item.name;
+            let label = new BMapGL.Label(content, { // 创建文本标注
+              position: point,
+              offset: new BMapGL.Size(10, 20)
+            })
+            map.addOverlay(label); // 将标注添加到地图中
+            label.setStyle({ // 设置label的样式
+              color: '#000',
+              fontSize: '12px',
+              border: 'none',
+              background: 'none',
             })
-		},
-		drawMap: function() {
-			var self = this;    // 遍历数组,在地图上添加标记和文字
-		    this.iconData.forEach((item, index) => {
-		      let point = new BMapGL.Point(item.longitude, item.latitude);
-		      let iconPath = "";
-		      switch(item.status) {
-		      case "1": iconPath = App.getUrl("/asset/css/img/yellow.svg");break;
-		      case "6": iconPath = App.getUrl("/asset/css/img/blue.svg");break;
-		      case "7": iconPath = App.getUrl("/asset/css/img/blue-plus.svg");break;
-		      case "8": iconPath = App.getUrl("/asset/css/img/red.svg");break;
-		      case "A": iconPath = App.getUrl("/asset/css/img/green.svg");break;
-		      }
-		      let icon = new BMapGL.Icon(iconPath,new BMapGL.Size(35, 35), {
-		                imageSize: {
-		                  width: '35',
-		                  height: '35'
-		                },
-		      });
+          })
+          map.centerAndZoom(new BMapGL.Point(93.76, 43.45), 8);
+          resolve('绘制成功')
 
-              // 创建信息窗口
-              var opts = {
-                width: 250, // 信息窗口宽度
-                height: 60, // 信息窗口高度
-                title: "项目名称" // 信息窗口标题
-              };
-              var infoWindow = new BMapGL.InfoWindow(item.subName, opts);
+        })
+      },
+      drawMap: function() {
+        var self = this;    // 遍历数组,在地图上添加标记和文字
+        this.iconData.forEach((item, index) => {
+          let point = new BMapGL.Point(item.longitude, item.latitude);
+          let iconPath = "";
+          switch(item.status) {
+            case "1": iconPath = App.getUrl("/asset/css/img/yellow.svg");break;
+            case "6": iconPath = App.getUrl("/asset/css/img/blue.svg");break;
+            case "7": iconPath = App.getUrl("/asset/css/img/blue-plus.svg");break;
+            case "8": iconPath = App.getUrl("/asset/css/img/red.svg");break;
+            case "A": iconPath = App.getUrl("/asset/css/img/green.svg");break;
+          }
+          let icon = new BMapGL.Icon(iconPath,new BMapGL.Size(35, 35), {
+            imageSize: {
+              width: '35',
+              height: '35'
+            },
+          });
 
+          // 创建信息窗口
+          var opts = {
+            width: 250, // 信息窗口宽度
+            height: 60, // 信息窗口高度
+            title: "项目名称" // 信息窗口标题
+          };
+          var infoWindow = new BMapGL.InfoWindow(item.subName, opts);
 
-              // 创建自定义文字对象
-		      let overlayer = new BMapGL.Marker(point, {
-		        icon: icon,
-		        //label: Label
-		      }); // 创建标记,并设置图标
-		      self.map.addOverlay(overlayer); // 将标记添加到地图上
 
+          // 创建自定义文字对象
+          let overlayer = new BMapGL.Marker(point, {
+            icon: icon,
+            //label: Label
+          }); // 创建标记,并设置图标
+          self.map.addOverlay(overlayer); // 将标记添加到地图上
 
 
-              // 添加鼠标停留事件
-              overlayer.addEventListener('mouseover', function (e) {
-                console.log('mouseenter')
-                // 打开信息窗口
-                self.map.openInfoWindow(infoWindow, point); // 打开信息窗口,point是打开的位置
 
-              });
+          // 添加鼠标停留事件
+          overlayer.addEventListener('mouseover', function (e) {
+            console.log('mouseenter')
+            // 打开信息窗口
+            self.map.openInfoWindow(infoWindow, point); // 打开信息窗口,point是打开的位置
 
-              // // 为点添加鼠标离开事件监听
-              // overlayer.addEventListener("mouseout", function() {
-              //   // 关闭信息窗口
-              //   self.map.closeInfoWindow(); // 关闭信息窗口
-              // });
+          });
 
-		      // 添加单击事件监听
-		      overlayer.addEventListener('click', function (e) {
-		        // 清除之前可能存在的计时器
-		        if (self.clickTimeouts[index]) {
-		        	clearTimeout(self.clickTimeouts[index]);
-		        	self.clickTimeouts[index] = null;
-		          // 双击时已清除计时器,不再执行单击事件
-		          return;
-		        }
+          // // 为点添加鼠标离开事件监听
+          // overlayer.addEventListener("mouseout", function() {
+          //   // 关闭信息窗口
+          //   self.map.closeInfoWindow(); // 关闭信息窗口
+          // });
 
-		        // 设置延时执行单击事件
-		        self.clickTimeouts[index] = setTimeout(function () {
-				  App.openLayer({
-					  title:'项目详情',
-					  skin: 'vidio-pop',
-					  width: '1200',
-					  height: '900',
-					  shade: 0.6, // 遮罩透明度
-		              shadeClose: true, // 点击遮罩区域,关闭弹层
-		              maxmin: true, // 允许全屏最小化
-		              anim: 0, // 0-6 的动画形式,-1 不开启
-					  content: App.getUrl("/subject/subInfo/detailView?layer=true&subId="+ item.id +"&queryYear="+new Date().getFullYear())
-				  })
-		          // 在这里执行单击后的操作
-		        }, 200); // 延时200毫秒
-		      });
+          // 添加单击事件监听
+          overlayer.addEventListener('click', function (e) {
+            // 清除之前可能存在的计时器
+            if (self.clickTimeouts[index]) {
+              clearTimeout(self.clickTimeouts[index]);
+              self.clickTimeouts[index] = null;
+              // 双击时已清除计时器,不再执行单击事件
+              return;
+            }
 
-		      // 添加双击事件监听
-		      overlayer.addEventListener('dblclick', function (e) {
-		        // 清除单击事件的计时器
-		        if (self.clickTimeouts[index]) {
-		        	clearTimeout(self.clickTimeouts[index]);
-		        	self.clickTimeouts[index] = null;
-		        }
-		        window.location.href=App.getUrl("/smart/vedio?subId="+item.id);
-		        // 在这里执行双击后的操作
-		      });
-		    });
-		},
-		getPointData: function() {
-			var self = this;
-			App.postJson("/api/smart/smartSiteQuery", { subjectId: this.subjectId },function (res) {
-				if (res.success) {
-	            	 self.iconData = res.data;
-	              }
-	              self.drawMap();
-	         });
-		}
-	}
-})
+            // 设置延时执行单击事件
+            self.clickTimeouts[index] = setTimeout(function () {
+              App.openLayer({
+                title:'项目详情',
+                skin: 'vidio-pop',
+                width: '1200',
+                height: '900',
+                shade: 0.6, // 遮罩透明度
+                shadeClose: true, // 点击遮罩区域,关闭弹层
+                maxmin: true, // 允许全屏最小化
+                anim: 0, // 0-6 的动画形式,-1 不开启
+                content: App.getUrl("/subject/subInfo/detailView?layer=true&subId="+ item.id +"&queryYear="+new Date().getFullYear())
+              })
+              // 在这里执行单击后的操作
+            }, 200); // 延时200毫秒
+          });
+
+          // 添加双击事件监听
+          overlayer.addEventListener('dblclick', function (e) {
+            // 清除单击事件的计时器
+            if (self.clickTimeouts[index]) {
+              clearTimeout(self.clickTimeouts[index]);
+              self.clickTimeouts[index] = null;
+            }
+            window.location.href=App.getUrl("/smart/vedio?subId="+item.id);
+            // 在这里执行双击后的操作
+          });
+        });
+      },
+      getPointData: function() {
+        var self = this;
+        App.postJson("/api/smart/smartSiteQuery", { subjectId: this.subjectId },function (res) {
+          if (res.success) {
+            self.iconData = res.data;
+          }
+          self.drawMap();
+        });
+      }
+    }
+  })
 </script>
 </body>
 
 </html>
 <style>
   * {
-        padding: 0;
-        margin: 0;
-    }
+    padding: 0;
+    margin: 0;
+  }
 
-    .layui-input-group {
-      display: flex;
-      justify-content: center;
-      align-items: center;
-      width: 300px;
-      height: 24px;
-    }
+  .layui-input-group {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width: 300px;
+    height: 24px;
+  }
 
-    .layui-input {
-        border: 1px solid #2C6EC6 !important;
-    }
+  .layui-input {
+    border: 1px solid #2C6EC6 !important;
+  }
 
-    .layui-input-suffix {
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        border: 1px solid #0070CE !important;
-        background-color: #4A83F7 !important;
-        width: 30px;
-        height: 24px;
-    }
+  .layui-input-suffix {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    border: 1px solid #0070CE !important;
+    background-color: #4A83F7 !important;
+    width: 30px;
+    height: 24px;
+  }
 
-    .layui-icon-search:before {
-        color: #fff;
-    }
+  .layui-icon-search:before {
+    color: #fff;
+  }
 
 
 
-    .layui-input:hover,
-    .layui-textarea:hover {
-        border-color: #0070CE !important;
-    }
+  .layui-input:hover,
+  .layui-textarea:hover {
+    border-color: #0070CE !important;
+  }
 
-    .layui-input:focus,
-    .layui-textarea:focus {
-        border-color: #5BD1D9 !important;
-    }
+  .layui-input:focus,
+  .layui-textarea:focus {
+    border-color: #5BD1D9 !important;
+  }
 
-    #container {
-        width: 100%;
-        height: 100%;
-    }
+  #container {
+    width: 100%;
+    height: 100%;
+  }
 
-    .map-content {
-        position: relative;
-        width: 100%;
-        height: 100vh;
-        background-color: #fff;
-    }
+  .map-content {
+    position: relative;
+    width: 100%;
+    height: 100vh;
+    background-color: #fff;
+  }
 
-    .input-layer {
-        position: absolute;
-        top: 50px;
-        left: 30px;
-        z-index: 1000;
+  .input-layer {
+    position: absolute;
+    top: 50px;
+    left: 30px;
+    z-index: 1000;
 
-    }
+  }
 </style>

+ 899 - 0
projects/src/main/webapp/vmodules/problem/info/cbToXjWarn.jsp

@@ -0,0 +1,899 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+         pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html>
+<html>
+<head>
+    <jsp:include page="../../common/common-meta-include.jsp"></jsp:include>
+    <jsp:include page="../../common/common-js-include.jsp"></jsp:include>
+    <jsp:include page="../../common/common-css-include.jsp"></jsp:include>
+    <!--[if lt IE 9]>
+    <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+    <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+    <style type="text/css">
+        /*.table_box .table_process .layui-table-cell {*/
+        /*    height: 75px;*/
+        /*}*/
+        .layui-table-view .layui-table td > div>span,
+        .layui-table-view .layui-table td > div{
+            /*min-height: 85px !important;*/
+            /*white-space: normal;*/
+            line-height: 22px !important;
+            display: -webkit-box; /* 使用旧版的弹性盒子布局 */
+            -webkit-box-orient: vertical; /* 设置为垂直方向排列 */
+            overflow: hidden; /* 隐藏溢出内容 */
+            text-overflow: ellipsis; /* 使用省略号表示溢出内容 */
+            -webkit-line-clamp: 2; /* 显示的行数 */
+        }
+        .table_box .table_process .layui-table-cell {
+            height: 65px;
+        }
+        .layui-table-col-special .layui-table-cell{
+            display:flex;
+            justify-content:space-between;
+        }
+        .queryTimeType{
+            margin-top: -4px;
+            position: absolute;
+        }
+        .hiddenParam {
+            display: none;
+        }
+        .morePan{
+            margin-top: 9px;
+            position: absolute;
+        }
+        .morePan a{
+            color: #2C6EC6;
+        }
+
+        .table_box .table_process{
+            height: fit-content;
+            max-height: 60vh;
+            overflow-x: scroll;
+            overflow-y: scroll;
+        }
+
+        .layui-table-body .layui-table-cell{
+            padding: 5px !important;
+        }
+        .layui-table-header .layui-table-cell{
+            height: 42px !important;
+        }
+    </style>
+</head>
+<body>
+<div id="app"></div>
+<template id="template">
+    <div class="layui-layout layui-layout-admin">
+
+        <div class="right_title">
+			
+            <div class="layui-collapse">
+                <div class="layui-colla-item">
+                <span class="txt">储备转新建超期</span>
+                    <%--                    <h2 class="layui-colla-title">筛选</h2>--%>
+                    <div class="layui-colla-content layui-show">
+                        <form class="layui-form" lay-filter="searchForm">
+
+
+
+                            <div class="layui-row">
+
+                                <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
+                                    <div class="layui-form-item">
+                                        <label class="layui-form-label">项目名称</label>
+                                        <div class="layui-input-block">
+                                            <input type="text" name="subName" placeholder="请输入" autocomplete="off" class="layui-input">
+                                            <input type="hidden" name="subjectId"    value="${subjectId}">
+                                            <input type="hidden" name="mainId" value="${mainId }">
+                                            <input type="hidden" name="sourceId" value="${sourceId }">
+                                            <input type="hidden" name="hyfl" value="${hyfl }">
+                                            <input type="hidden" name="code" value="${code}">
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
+                                    <div class="layui-form-item" style="height:28px;">
+                                        <label class="layui-form-label">问题类型</label>
+                                        <div class="layui-input-block">
+                                            <select id="lightType" name="lightType">
+                                                <option value="">所有</option>
+                                                <option value="1">超期红灯</option>
+                                                <option value="2">超期黄灯</option>
+                                            </select>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
+                                    <div class="layui-form-item" style="height:28px;">
+                                        <label class="layui-form-label">建设性质</label>
+                                        <div class="layui-input-block">
+                                            <div id="propKind" name="propKind"></div>
+                                        </div>
+                                    </div>
+                                </div>
+<%--                                <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">--%>
+<%--                                    <div class="layui-form-item" style="height:28px;">--%>
+<%--                                        <label class="layui-form-label">所属行业</label>--%>
+<%--                                        <div class="layui-input-block">--%>
+<%--                                            <div id="indusKind" name="hyfl"></div>--%>
+<%--                                        </div>--%>
+<%--                                    </div>--%>
+<%--                                </div>--%>
+                            </div>
+                            <div class="layui-row">
+
+                                <div class="layui-col-xs12 layui-col-sm12 layui-col-md3">
+                                    <button type="button" class="layui-btn layui-btn-normal" @click="search">查询</button>
+<%--                                    <span class="layui-btn layui-btn-normal" style="position:relative;z-index:9" @click="backHis()">--%>
+<%--                                        返回--%>
+<%--                                    </span>--%>
+                                    <!-- <button type="button" class="layui-btn layui-btn-export" @click="exportExcel">导出</button> -->
+                                </div>
+                            </div>
+                        </form>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+
+        <div>
+            <div class="layui-row">
+                <div class="layui-form-item" style="display: flex">
+                    <label class="juli">
+                        问题总数<span class="lanse-first">{{numData.total}}个</span>
+                        <div class="progress-div">
+                            <div class="layui-progress">
+                                <div class="layui-progress-bar"></div>
+                            </div>
+                        </div>
+                    </label>
+                    <label class="juli">
+                        超期红灯数量<span class="lanse-first">{{numData.redNum}}个</span>
+                        <div class="progress-div">
+                            <div class="layui-progress">
+                                <div class="layui-progress-bar" :style="'width:'+numData.redRate"></div>
+                            </div>
+                        </div>
+                    </label>
+                    <label class="juli">
+                        超期黄灯数量<span class="lanse-first">{{numData.yellowNum}}</span>
+                        <div class="progress-div">
+                            <div class="layui-progress">
+                                <div class="layui-progress-bar" :style="'width:'+numData.yellowRate"></div>
+                            </div>
+                        </div>
+                    </label>
+                </div>
+            </div>
+        </div>
+        <div>
+
+        </div>
+        <div class="table_box" style="padding-top: 0;">
+            <div class="table_process">
+                <table id="table1" lay-filter="test"></table>
+            </div>
+            <div  class="pagination-box"  id="pagination"></div>
+        </div>
+        <div style="height: 20px;"></div>
+    </div>
+</template>
+
+
+<div id="problem" class="layuimini-main" style="display: none;">
+    <form class="layui-form" lay-filter="problemForm">
+        <div class="layui-row">
+            <div class="layui-col-xs12 layui-col-sm12">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">状态:</label>
+                    <div class="layui-input-block">
+                        <input type="radio" name="statusF" value="2" title="红灯" checked="checked"/>
+                        <input type="radio" name="statusF" value="1" title="黄灯"/>
+                        <input type="radio" name="statusF" value="0" title="绿灯"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-row">
+            <div class="layui-col-xs12 layui-col-sm12">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">问题描述:</label>
+                    <div class="layui-input-block">
+                        <textarea name="status_reason" maxlength="400" style="height: 300px;width: 80%;" id="problemReason" autocomplete="off" class="layui-textarea"></textarea>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-row">
+            <div class="layui-col-xs12 layui-col-sm12">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">要求解决日期:</label>
+                    <div class="layui-input-block "  style="width: 25%">
+                        <input type="text" id="dateConfirm" name="dateConfirm"  autocomplete="off" class="layui-input" >
+                    </div>
+                </div>
+            </div>
+        </div>
+    </form>
+</div>
+
+
+
+<script type="text/html" id="subName">
+    <span title="{{d.subName}}">{{d.subName}}</span>
+</script>
+<script type="text/html" id="amt">
+    {{# var computedPer = function(total, now){
+    return (total == 0) ? 0 : parseInt(now * 100 / total +0.5);
+    };
+    }}
+    <span title="">总投资:{{d.amtTotal}}万元 <br/>
+		年度计划投资:{{d.yearPlanAmt}}万元 <br/>
+					年度完成投资:{{d.yearEndAmt}}万元( {{computedPer(d.yearPlanAmt, d.yearEndAmt)}} %)</span>
+</script>
+<script type="text/html" id="date">
+    <div title="">
+        <div class="line">计划开工:{{d.beginDate}}
+
+        </div>
+        <div class="line">计划竣工:{{d.endDate}}
+
+        </div>
+    </div>
+</script>
+<script type="text/html" id="abcSpan">
+    <span style="font-size:28px;font-weigh:500 !important;">{{d.abc||''}}</span>
+</script>
+<script type="text/html" id="toolBar">
+    <div class="toolBar">
+        <span title="项目信息" lay-event="toDetail">项目信息</span>
+        <span title="短信" lay-event="toMsgLog">短信</span>
+        <span title="短信发送" lay-event="sendMsg">短信发送</span>
+        <%--    <c:if test="${isHydw}">--%>
+        <%--      <span title="问题督办" lay-event="problem">&nbsp;问题督办</span>--%>
+        <%--    </c:if>--%>
+        <%--    {{# if(d.unitId == "${currUnitId}") { }}--%>
+        <%--    <span title="原因录入" lay-event="setSubReason">&nbsp;原因录入</span>--%>
+        <%--    {{#}}}--%>
+
+        <%--    {{# if("${currUser.edit}" == 'true'||( d.propKind == '3' && "${currUser.id}" == d.create_user_id )) { }}--%>
+        <%--    <span title="信息修改" lay-event="toEditSubInfo">&nbsp;信息修改</span>--%>
+        <%--    {{#} }}--%>
+
+        <%--    {{# if("${currUser.edit}" == 'true') { }}--%>
+        <%--    {{# if(d.status != '0' && d.status != '6' && d.status != '7' && d.status != '8' && d.status != '9' && d.status != 'A') { }}--%>
+        <%--    <span title="退回暂存" lay-event="toTh">&nbsp;退回暂存</span>--%>
+        <%--    {{#}}}--%>
+        <%--    {{#} }}--%>
+        <%--    <span title="手续办理" lay-event="preNew">&nbsp;手续办理</span>--%>
+        <%--    <c:if test="${admin}">--%>
+        <%--      {{# if(d.isHide == "1") { }}--%>
+        <%--      <span title="取消在建库"  lay-event="isNoHide">&nbsp;取消在建库</span>--%>
+        <%--      {{#} else { }}--%>
+        <%--      <span title="移入在建库"  lay-event="isHide">&nbsp;移入在建库</span>--%>
+        <%--      {{#} }}--%>
+        <%--    </c:if>--%>
+
+    </div>
+</script>
+
+
+<script type="text/html" id="preInfo">
+
+
+
+    <span title="">
+		{{# if(d.xmbaIs == '' || d.xmbaIs == null ) { }}
+			项目备案:未办理 <br/>
+		{{#} else if(d.xmbaIs == '2' ) { }}
+			项目备案:无需办理 <br/>
+
+		{{#} else { }}
+
+			{{# if(d.xmbaStatus == '' || d.xmbaStatus == null ) { }}
+							项目备案:未办理 <br/>
+			{{#} else if(d.xmbaStatus == '0') { }}
+						项目备案:未办理 <br/>
+			{{#} else if(d.xmbaStatus == '1') { }}
+						项目备案:开始办理 <br/>
+			{{#} else if(d.xmbaStatus == '2') { }}
+						项目备案:已办理 <br/>
+			{{#} }}
+
+		{{#} }}
+
+
+
+
+		{{# if(d.yjbgIs == '' || d.yjbgIs == null ) { }}
+			可行性研究报告:未办理 <br/>
+		{{#} else if(d.yjbgIs == '2' ) { }}
+			可行性研究报告:无需办理 <br/>
+		{{#} else { }}
+			{{# if(d.yjbgStatus == '' || d.yjbgStatus == null ) { }}
+							可行性研究报告:未办理 <br/>
+			{{#} else if(d.yjbgStatus == '0') { }}
+						可行性研究报告:未办理 <br/>
+			{{#} else if(d.yjbgStatus == '1') { }}
+						可行性研究报告:开始办理 <br/>
+			{{#} else if(d.yjbgStatus == '2') { }}
+						可行性研究报告:已办理 <br/>
+			{{#} }}
+
+		{{#} }}
+
+		</span>
+
+</script>
+
+<script type="text/html" id="imageDiv">
+    <div style="width:50px;height:50px" onclick="showImage(this)">
+        {{# if(d.fileId != null && d.fileId != '') { }}
+        <img src="${domain}/static/file/{{d.fileId}}/showfile" realUrl="${domain}/static/file/{{d.fileId}}/showfile" width="50px" height="50px"/>
+        {{#} }}
+    </div>
+</script>
+
+
+
+<script type="text/html" id="offsetLight">
+    {{#if(d.offset >= -30 && d.offset <= -10 ) { }}
+    <span style="color: yellow"><image   class="light-rgb"     src="${WebSite.asset}/css/images/bigScreen/light-yellow.png"></image></span>
+    {{#} else if(d.offset < -30) { }}
+    <span style="color: red"><image   class="light-rgb"     src="${WebSite.asset}/css/images/bigScreen/light-red.png"></image></span>
+    {{#}}}
+</script>
+
+
+<script type="text/html" id="dayNum">
+    {{d.num2}}
+</script>
+
+
+
+<script type="text/html" id="openLight">
+
+
+    {{# var computedPer1 = function(beginDate){
+
+    var beginDate =new Date(beginDate);
+    var beginDate7 =new Date(beginDate);
+    var beginDate3 =new Date(beginDate);
+    beginDate7.setDate(beginDate7.getDate()-7);
+    beginDate3.setDate(beginDate3.getDate()-3);
+
+    var newDate =  new Date();
+    if(newDate.getTime() >=beginDate7.getTime()  && newDate.getTime() <=beginDate3.getTime()){
+    return "yellow";
+    }else if(newDate.getTime() >=beginDate3.getTime() && newDate.getTime()  <=  beginDate.getTime()  ){
+    return "red";
+    }else{
+    return "-";
+    }
+    };
+    }}
+
+    {{#if(computedPer1(d.beginDate)=="yellow" ) { }}
+    <span style="color: yellow">  <image   class="light-rgb"     src="${WebSite.asset}/css/images/bigScreen/light-yellow.png"></image></span>
+    {{#} else if(computedPer1(d.beginDate)=="red") { }}
+    <span style="color: red" >   <image   class="light-rgb"     src="${WebSite.asset}/css/images/bigScreen/light-red.png"></image></span>
+    {{#}}}
+</script>
+
+<%--<script type="text/html" id="num2">--%>
+<%--    &lt;%&ndash;	{{(d.num1 + d.num2)/2}}&ndash;%&gt;--%>
+<%--    {{d.num2}}--%>
+<%--</script>--%>
+<script type="text/html" id="num4">
+    <div style="display: flex;justify-content: center">
+        {{#if( (d.num3!=null && d.num3!= '') || d.num3 == 0 ) { }}
+        {{#if( d.num2 - d.num3 >=0 ) { }}
+        <span style="color: green">{{d.num2 - d.num3}}</span>
+        {{#} else if(d.num2 - d.num3 < 0 ) { }}
+        <span style="color: red">{{d.num2 - d.num3}}</span>
+        {{#} else { }}
+        <span>{{d.num2 - d.num3}}</span>
+        {{#}}}
+        {{#} else { }}
+        <span></span>
+        {{#}}}
+    </div>
+</script>
+<script type="text/html" id="num3">
+
+    {{#if( (d.num3!=null && d.num3!= '') || d.num3 == 0 ) { }}
+    {{#if( d.num3  >= d.num2+1 &&  d.num3 <= d.num2+3 ) { }}
+    <span style="color: #EAC100">{{d.num3}}</span>
+    {{#} else if(d.num3 > d.num2+3 ) { }}
+    <span style="color: red">{{d.num3}}</span>
+    {{#} else { }}
+    <span>{{d.num3}}</span>
+    {{#}}}
+    {{#} else { }}
+    <span></span>
+    {{#}}}
+</script>
+<script>
+    new Vue({
+        el: "#app",
+        template: "#template",
+        data: {
+            winH: 0,
+            dataList : [],
+            startDate:"",
+            endDate:"",
+            LightType:"",
+            tableName : 'test',
+            pageNo : 1,
+            indusKind : {},
+            propKind : {},
+            kind: {},
+            numData:{
+                redNum:0,
+                yellowNum:0,
+                cqNum:0,
+            },
+            beginRate: {},
+            showMoreFlag: false,
+            light: null,
+            sort: {field: "amtTotal", type:""},
+            pageSize : 10
+        },
+        mounted : function() {
+            this.init()
+        },
+        methods: {
+            init : function() {
+                this.winH = document.body.clientHeight
+                layui.laydate.render({
+                    elem: '#startTime',
+                    theme: layDateTheme,
+                    range: '~'
+                });
+                if("${type}"=== "1" ){
+                    this.lightType="1";
+                }else{
+                    this.lightType="2";
+                }
+
+                var seleDatas = [], jsxz = [], xmlx = [];
+<%--                <c:forEach items="${HYFL }" var="hy">--%>
+<%--                seleDatas.push({value:'${hy.id}',name:'${hy.title}'});--%>
+<%--                </c:forEach>--%>
+<%--                this.indusKind = layui.xmSelect.render({--%>
+<%--                    el:'#indusKind',--%>
+<%--                    language:'zn',--%>
+<%--                    data: seleDatas--%>
+<%--                });--%>
+                <c:forEach items="${JSXZ}" var="js">
+                jsxz.push({value: '${js.code}', name:'${js.title}'});
+                </c:forEach>
+                this.propKind = layui.xmSelect.render({
+                    el:'#propKind',
+                    language:'zn',
+                    data: jsxz
+                });
+<%--                <c:forEach items="${XMLX}" var="xm">--%>
+<%--                xmlx.push({value: '${xm.code}', name: '${xm.title}'});--%>
+<%--                </c:forEach>--%>
+<%--                this.kind = layui.xmSelect.render({--%>
+<%--                    el: "#kind",--%>
+<%--                    language:'zn',--%>
+<%--                    data:xmlx--%>
+<%--                });--%>
+
+
+                console.log("${subjectId}");
+                console.log("${mainId}");
+                console.log("${sourceId}");
+                console.log("${hyfl}");
+                this.getData();
+                window.toDetail = this.toDetail;
+                window.showImage = this.showImage;
+            },
+            sendMsg: function(obj) {
+            	var content = "【市发改委】哈密市发改委提醒:您监管/负责的("+obj.data.subName+")项目,"+
+            	obj.data.preName+"手续办理已逾期,请及时关注并处理!!";
+    			layer.open({
+    				title: "短信内容",
+    				type: 1,
+    				area: ["400px","200px"],
+    				content: content,
+    				btn: ["发送"],
+    				yes: function() {
+    					App.msg.success("发送成功");
+    					layer.closeAll();
+    				}
+    			})
+            },
+            showImage: function(that) {
+                var imageUrl = $(that).find("img").eq(0).attr("realUrl");
+                if(imageUrl) {
+                    layer.open({
+                        type: 2,
+                        content: imageUrl,
+                        area: ['500px', '1000px'],
+                        offset: 'auto',
+                        success: function(obj,index){
+                            layer.full(index);
+                        }
+                    })
+                }
+            },
+            setQueryForm2: function() {
+                $("#searchForm").find(".layui-form-item").parent()
+                    .removeClass("layui-col-xs3").removeClass("layui-col-sm3").removeClass("layui-col-md3")
+                    .addClass("layui-col-xs5").addClass("layui-col-sm5").addClass("layui-col-md5");
+            },
+            setQueryForm4: function() {
+                $("#searchForm").find(".layui-form-item").parent()
+                    .removeClass("layui-col-xs5").removeClass("layui-col-sm5").removeClass("layui-col-md5")
+                    .addClass("layui-col-xs3").addClass("layui-col-sm3").addClass("layui-col-md3");
+            },
+            showMore: function() {
+                var self = this;
+                layer.open({
+                    title: "查询条件",
+                    type: 1,
+                    area: ['90%','700px'],
+                    content: $("#searchForm"),
+                    btn: ["查询"],
+                    yes: function(index) {
+                        self.search();
+                        layer.close(index);
+                    },
+                    success: function() {
+                        self.setQueryForm2();
+                        $(".hiddenParam").show();
+                    },
+                    end: function() {
+                        self.setQueryForm4();
+                        $(".hiddenParam").hide();
+                    }
+                })
+            },
+            getSearchParams: function() {
+                var param = layui.form.getValue("searchForm");
+
+                console.log("param");
+                console.log(param);
+                if(param.rangeDate) {
+                    param.beginDate = param.rangeDate.split(" ~ ")[0];
+                    param.endDate = param.rangeDate.split(" ~ ")[1];
+                    param.rangeDate = null;
+                }
+                if(this.light) {
+                    param.light = this.light.getValue("valueStr");
+                }
+                delete(param.select);
+                param.propKind = this.propKind.getValue("value").sort().join(",");
+                return param;
+            },
+            getData : function(){
+                var self = this;
+                var param = this.getSearchParams();
+
+                console.log(param);
+
+                param.pageNo = this.pageNo;
+                param.pageSize = this.pageSize;
+                param.orderBy = this.sort.field;
+                param.orderType = this.sort.type || null;
+
+
+                if (self.lightType=="1"){
+                    param.openDate=true;
+                }else{
+                    param.offsetMax=-10;
+                }
+
+
+
+                App.postJson("/api/problemInfo/pageQueryCbToXjDataRedYellow",param, function(res){
+
+                    console.log(res.data)
+
+                    self.numData = res.data;
+
+                });
+
+
+                App.postJson("/api/problemInfo/pageQueryCbToXjData",param, function(res){
+                    self.dataList = res.rows;
+                    self.loadPage(res.total);
+                    self.loadTable();
+                });
+
+            },
+            loadTable : function(){
+                for(var i=0;i<this.dataList.length;i++){
+                    var tem = this.dataList[i];
+                    switch(tem.status){
+                        case '0':
+                            tem.statusName = '暂存';
+                            break;
+                        case '1':
+                            tem.statusName = '项目前期';
+                            break;
+                        case '6':
+                            tem.statusName = '待开工';
+                            break;
+                        case '7':
+                            tem.statusName = '施工中';
+                            break;
+                        /* case '9':
+                            tem.statusName = '年度竣工';
+                            break; */
+                        case '8':
+                            tem.statusName = '暂停施工';
+                            break;
+                        case 'A':
+                            tem.statusName = '已竣工';
+                            break;
+                    }
+                }
+                var self = this;
+                layui.table.render({
+                    elem: '#table1', // 指定原始表格元素选择器(推荐id选择器)
+                    even: true,
+                    autoSort: false,
+                    initSort: self.sort,
+                    cols: [[ // 设置表头
+                        {type: 'numbers', fixed: 'left', align: 'center',title:'序号'},
+                        {field: 'subName', fixed: 'left', title: '项目名称', minWidth: 300, templet: '#subName'},
+                        {field: 'beginDate', title: '计划新建时间', width: 100},
+                        {field: 'endDate', title: '计划完成时间', minWidth: 80},
+                        {field: 'unitTitle', title: '项目单位', width: 200},
+                        {field: 'mainTitle', title: '监管单位', width: 80},
+                        {field: 'datePlan', title: '联系人与电话', minWidth: 200,templet: '#info'},
+                        {title: '操作', width: 200, align:'center', toolbar: '#toolBar'},
+                    ]],
+                    fixed: true,
+                    height: window.screen.availHeight-430,
+                    data : self.dataList,
+                    done: function(res, curr, count){
+                        //获取当前时间
+                        var date=new Date();
+                        res.data.forEach(function(item, index) {
+                            // /1.当前行的背景颜色cur_color
+
+                            var planDate=new Date(item.datePlan);
+
+                            console.log(planDate);
+
+                            if (item.statusConf  ==  '2' ) {
+                                if (item.num3>item.num2+3){
+                                    $('.layui-table').find('tr[data-index="' + index + '"]').find("td").css('color', "red");
+                                }else{
+                                    $('.layui-table').find('tr[data-index="' + index + '"]').find("td").css('color', "#EAC100");
+                                }
+                            }else{
+                                if (self.daysBetween(planDate,date)>3+item.num2){
+                                    $('.layui-table').find('tr[data-index="' + index + '"]').find("td").css('color', "red");
+                                }else{
+                                    $('.layui-table').find('tr[data-index="' + index + '"]').find("td").css('color', "#EAC100");
+                                }
+                            }
+                            $(".layui-table-body  tr").resize(function () {
+                                $(".layui-table-body  tr").each(function (index, val) {
+                                    $($(".layui-table-fixed .layui-table-body table tr")[index]).height($(val).height());
+                                });
+                            });
+                            //初始化高度,使得冻结行表体高度一致
+                            $(".layui-table-body  tr").each(function (index, val) {
+                                $($(".layui-table-fixed .layui-table-body table tr")[index]).height($(val).height());
+                            });
+                        });
+
+
+
+                    }
+                });
+                layui.table.on('tool('+this.tableName+')', function(obj){
+                    var event = obj.event;
+                    self[event].call(this, obj);
+                });
+                layui.table.on('sort('+this.tableName+')', function(obj) {
+                    self.sort = obj;
+                    self.getData();
+                    return;
+                })
+            },
+            daysBetween: function (date1, date2) {
+
+                const timeDiff = Math.abs(date2.getTime() - date1.getTime());
+                return Math.ceil(timeDiff / (1000 * 3600 * 24));
+            },
+            isNoHide:function (obj){
+                var self=this;
+                console.log(obj);
+                App.msg.confirm("是否移除在建库?",function() {
+                    App.postJson("/api/subject/subInfo/setBackIsHide", {subId: obj.data.id}, function (res) {
+                        if (res.success) {
+                            App.msg.success("设置成功");
+                            self.getData();
+                            layer.close(index);
+                        }
+                    });
+                });
+            },
+            isHide:function (obj){
+                var self=this;
+                console.log(obj);
+                App.msg.confirm("是否移入重点项目库?",function() {
+                    App.postJson("/api/subject/subInfo/setIsHide", {subId: obj.data.id}, function (res) {
+                        if (res.success) {
+                            App.msg.success("设置成功");
+                            self.getData();
+                            layer.close(index);
+                        }
+                    });
+                });
+            },
+            loadPage : function(totalCount){
+                var self = this;
+                layui.laypage.render({
+                    elem: 'pagination',
+                    count: totalCount,
+                    curr : self.pageNo,
+                    limit : self.pageSize,
+                    layout: ['count', 'prev', 'page', 'next', 'skip'],
+                    jump: function(obj, first) {
+                        //首次不执行
+                        if(!first) {
+                            self.pageNo = obj.curr;
+                            self.getData();
+                        }
+                    }
+                });
+            },
+            yearPlan: function(obj) {
+                window.location.href=App.getUrl("amtPlan/detail?subId="+obj.data.id);
+            },
+            setSubReason: function(obj) {
+                var self = this;
+                layui.form.val("reasonForm", obj.data);
+                layer.open({
+                    type: 1,
+                    title: "项目原因录入",
+                    content: $("#setReason"),
+                    area: ['880px', '560px'],
+                    btn: ["保存", "取消"],
+                    yes: function(index) {
+                        var reason = layui.form.val("reasonForm");
+                        reason.subId = obj.data.id;
+                        App.postJson("/api/subject/subInfo/setSubReason",reason, function(res){
+                            if(res.success){
+                                App.msg.success("设置成功");
+                                self.getData();
+                                layer.close(index);
+                            }
+                        });
+                    },
+                    close: function(index) {
+                        layer.close(index);
+                    }
+                })
+            },
+            problem: function(obj) {
+                var self = this;
+                obj.data.status_reason="";
+                layui.form.val("problemForm", obj.data);
+                layer.open({
+                    type: 1,
+                    title: "问题督办",
+                    content: $("#problem"),
+                    area: ['800px', '600px'],
+                    btn: ["保存", "取消"],
+                    yes: function(index) {
+                        var reason = layui.form.val("problemForm");
+                        reason.subId = obj.data.id;
+
+                        if (reason.statusF=="2"||reason.statusF=="1"){
+                            if (reason.status_reason==""||reason.status_reason==undefined){
+                                layer.msg("红灯,黄灯必须输入原因");
+                                return ;
+                            }
+                        }
+                        App.postJson("/api/subject/subInfo/setStatus",{subId:obj.data.id,statusFgw:reason.statusF,reason:reason.status_reason,dateConfirm:reason.dateConfirm}, function(res){
+                            if(res.success){
+                                App.msg.success("设置成功");
+                                self.getData();
+                                layer.close(index);
+                            }
+                        });
+                    },
+                    close: function(index) {
+                        layer.close(index);
+                    }
+                })
+            },
+            exportExcel: function(){
+                var param = this.getSearchParams();
+                App.common.utils.downFile(App.getUrl("subInfoExport/exportSummaryExcel"),"POST", param,"项目情况表.xlsx", "导出失败");
+            },
+            exportExcelByIndusKind: function(){
+                var param = this.getSearchParams();
+                App.common.utils.downFile(App.getUrl("subInfoExport/exportExcelByIndusKind"),"POST", param,"项目情况表(按所属行业统计).xlsx", "导出失败");
+            },
+            exportSchedulingExcel: function(){
+                var param = this.getSearchParams();
+                App.common.utils.downFile(App.getUrl("subInfoExport/exportSchedulingExcel"),"POST", param,"项目调度表.xlsx", "导出失败");
+            },
+            /* exportExcel2: function(){
+                var param = this.getSearchParams();
+                 App.common.utils.downFile(App.getUrl("subInfoExport/exportExcelTz"),"POST", param,"项目详情信息表.xlsx", "导出失败");
+            }, */
+            exportMoreExcel: function() {
+                top.window.getSearchParams = this.getSearchParams;
+                App.openLayer({
+                    title : "自定义导出",
+                    content : App.getUrl("/subInfoExport/index"),
+                    height : "600",
+                    width : "800"
+                })
+            },
+            toMsgLog: function (obj) {
+
+                App.openLayer({
+                    title: "短信",
+                    content: App.getUrl("/msgLog/kindDetail?subId=" + obj.data.subId+"&kind=手续超期"),
+                    height: "600",
+                    width: "800"
+                })
+
+            },
+            toDetail : function(obj){
+                //详情
+                var index = layer.open({
+                    type: 2,
+                    area: ['1000px', '800px'],
+                    content: App.getUrl("/subject/subInfo/detailView?layer=true&subId="+ obj.data.subId + "&lastUrl=" + window.location.href),
+                });
+                layui.layer.full(index);
+            },
+            print: function(obj){
+                window.open(App.getUrl("/subject/apply/downPdf?subId="+obj.data.id));
+            },
+            toEditSubInfo: function(obj){
+                window.location.href=App.getUrl("/subject/subInfo/editSubInfo?subId="+obj.data.id);
+            },
+            preNew: function (obj){
+                window.location.href=App.getUrl("/subPreNew/todo?subId=" + obj.data.id);
+            },
+            backHis: function (){
+                // if() {
+                // window.history.back(-1);
+                <%--}else {--%>
+                <%--  window.location.href="";--%>
+                <%--}--%>
+                window.location.href = "${lastUrl}";
+            },
+            toTh: function(obj){
+                if(obj.data.statusJh == null || obj.data.statusJh == '0' || obj.data.statusJh == '1') {
+                    App.msg.confirm("是否需要退回到暂存状态?", function(){
+                        App.postJson("/api/subject/subInfo/toTemp",{subId : obj.data.id,status:"0"}, function(res){
+                            if(res.success){
+                                layer.msg("成功",{icon:6,time:1000});
+                                //
+                                window.location.href=App.getUrl("subject/subInfo/projTz");
+                            }
+                        });
+                    })
+                } else {
+                    App.msg.warn("已做过开工申报,需要走变更流程");
+                }
+            },
+            search : function(){
+                this.pageNo = 1;
+                this.getData();
+            }
+        }
+    });
+</script>
+</body>
+</html>

+ 33 - 26
projects/src/main/webapp/vmodules/problem/info/endWarn.jsp

@@ -71,7 +71,7 @@
 <template id="template">
   <div class="layui-layout layui-layout-admin">
     <!-- 内容区域 -->
-		<span class="txt">项目竣工超期</span>
+		<span class="txt">在建转投产超期</span>
       <div class="right_title">
           <div class="layui-collapse">
               <div class="layui-colla-item">
@@ -83,6 +83,7 @@
                           <input type="hidden" name="mainId" value="${mainId }">
                           <input type="hidden" name="sourceId" value="${sourceId }">
                           <input type="hidden" name="hyfl" value="${hyfl }">
+                          <input type="hidden" name="code" value="${code}">
 
                           <input type="hidden" name="queryType" value="3">
 
@@ -95,6 +96,18 @@
                                       </div>
                                   </div>
                               </div>
+                              <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
+                                  <div class="layui-form-item" style="height:28px;">
+                                      <label class="layui-form-label">问题类型</label>
+                                      <div class="layui-input-block">
+                                          <select id="lightType" name="lightType">
+                                              <option value="">所有</option>
+                                              <option value="1">超期红灯</option>
+                                              <option value="2">超期黄灯</option>
+                                          </select>
+                                      </div>
+                                  </div>
+                              </div>
 <%--                              <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">--%>
 <%--                                  <div class="layui-form-item" style="height:28px;">--%>
 <%--                                      <label class="layui-form-label">项目类型</label>--%>
@@ -146,22 +159,22 @@
                           </div>
                       </div>
                   </label>
-<%--                  <label class="juli">--%>
-<%--                      红灯数量<span class="lanse-first">{{numData.redNum}}个</span>--%>
-<%--                      <div class="progress-div">--%>
-<%--                          <div class="layui-progress">--%>
-<%--                              <div class="layui-progress-bar" :style="'width:'+numData.redRate"></div>--%>
-<%--                          </div>--%>
-<%--                      </div>--%>
-<%--                  </label>--%>
-<%--                  <label class="juli">--%>
-<%--                      黄灯数量<span class="lanse-first">{{numData.yellowNum}}</span>--%>
-<%--                      <div class="progress-div">--%>
-<%--                          <div class="layui-progress">--%>
-<%--                              <div class="layui-progress-bar" :style="'width:'+numData.yellowRate"></div>--%>
-<%--                          </div>--%>
-<%--                      </div>--%>
-<%--                  </label>--%>
+                  <label class="juli">
+                      红灯数量<span class="lanse-first">{{numData.redNum}}个</span>
+                      <div class="progress-div">
+                          <div class="layui-progress">
+                              <div class="layui-progress-bar" :style="'width:'+numData.redRate"></div>
+                          </div>
+                      </div>
+                  </label>
+                  <label class="juli">
+                      黄灯数量<span class="lanse-first">{{numData.yellowNum}}</span>
+                      <div class="progress-div">
+                          <div class="layui-progress">
+                              <div class="layui-progress-bar" :style="'width:'+numData.yellowRate"></div>
+                          </div>
+                      </div>
+                  </label>
               </div>
           </div>
       </div>
@@ -411,7 +424,7 @@
       dataList : [],
       startDate:"",
       endDate:"",
-      LightType:"1",
+      LightType:"",
       tableName : 'test',
       pageNo : 1,
       kind: {},
@@ -557,13 +570,7 @@
         param.orderType = this.sort.type || null;
 
 
-        if (self.lightType=="1"){
-          param.openDate=true;
-        }else{
-          param.offsetMax=-10;
-        }
-
-          App.postJson("/api/problemInfo/pageQueryEndWarnDataRedYellow",param, function(res){
+          App.postJson("/api/problemInfo/pageQueryZjToTcDataRedYellow",param, function(res){
 
               console.log(res.data)
 
@@ -572,7 +579,7 @@
           });
 
 
-        App.postJson("/api/problemInfo/pageQueryEndWarnData",param, function(res){
+        App.postJson("/api/problemInfo/pageQueryZjToTcData",param, function(res){
           self.dataList = res.rows;
           self.loadPage(res.total);
           self.loadTable();

+ 30 - 26
projects/src/main/webapp/vmodules/problem/info/monthWarn.jsp

@@ -81,6 +81,7 @@
               <input type="hidden" name="mainId" value="${mainId }">
               <input type="hidden" name="sourceId" value="${sourceId }">
               <input type="hidden" name="hyfl" value="${hyfl }">
+              <input type="hidden" name="code" value="${code}">
               <input type="hidden" name="queryType" value="3">
 
               <div class="layui-row">
@@ -92,6 +93,18 @@
                     </div>
                   </div>
                 </div>
+                <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
+                  <div class="layui-form-item" style="height:28px;">
+                    <label class="layui-form-label">问题类型</label>
+                    <div class="layui-input-block">
+                      <select id="lightType" name="lightType">
+                        <option value="">所有</option>
+                        <option value="1">超期红灯</option>
+                        <option value="2">超期黄灯</option>
+                      </select>
+                    </div>
+                  </div>
+                </div>
                 <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
                   <div class="layui-form-item">
                     <label class="layui-form-label  ">月报期间</label>
@@ -153,22 +166,22 @@
               </div>
             </div>
           </label>
-<%--          <label class="juli">--%>
-<%--            红灯数量<span class="lanse-first">{{numData.redNum}}个</span>--%>
-<%--            <div class="progress-div">--%>
-<%--              <div class="layui-progress">--%>
-<%--                <div class="layui-progress-bar" :style="'width:'+numData.redRate"></div>--%>
-<%--              </div>--%>
-<%--            </div>--%>
-<%--          </label>--%>
-<%--          <label class="juli">--%>
-<%--            黄灯数量<span class="lanse-first">{{numData.yellowNum}}</span>--%>
-<%--            <div class="progress-div">--%>
-<%--              <div class="layui-progress">--%>
-<%--                <div class="layui-progress-bar" :style="'width:'+numData.yellowRate"></div>--%>
-<%--              </div>--%>
-<%--            </div>--%>
-<%--          </label>--%>
+          <label class="juli">
+            红灯数量<span class="lanse-first">{{numData.redNum}}个</span>
+            <div class="progress-div">
+              <div class="layui-progress">
+                <div class="layui-progress-bar" :style="'width:'+numData.redRate"></div>
+              </div>
+            </div>
+          </label>
+          <label class="juli">
+            黄灯数量<span class="lanse-first">{{numData.yellowNum}}</span>
+            <div class="progress-div">
+              <div class="layui-progress">
+                <div class="layui-progress-bar" :style="'width:'+numData.yellowRate"></div>
+              </div>
+            </div>
+          </label>
         </div>
       </div>
     </div>
@@ -435,7 +448,7 @@
       dataList : [],
       startDate:"",
       endDate:"",
-      LightType:"1",
+      LightType:"",
       tableName : 'test',
       pageNo : 1,
       kind: {},
@@ -612,15 +625,6 @@
         param.orderBy = this.sort.field;
         param.orderType = this.sort.type || null;
 
-
-        if (self.lightType=="1"){
-          param.openDate=true;
-        }else{
-          param.offsetMax=-10;
-        }
-
-        // console.log(this.startMonth);
-
         if (this.startMonth!=""&&this.startMonth!=null){
           param.year=this.startMonth.split("-")[0];
           param.month=this.startMonth.split("-")[1];

+ 33 - 27
projects/src/main/webapp/vmodules/problem/info/openWarn.jsp

@@ -70,7 +70,7 @@
     <!-- 内容区域 -->
 
       <div class="right_title">
-      		<span class="txt">项目开工超期</span>
+      		<span class="txt">新建转在建超期</span>
           <div class="layui-collapse">
               <div class="layui-colla-item">
                   <%--                    <h2 class="layui-colla-title">筛选</h2>--%>
@@ -81,6 +81,7 @@
                           <input type="hidden" name="mainId" value="${mainId }">
                           <input type="hidden" name="sourceId" value="${sourceId }">
                           <input type="hidden" name="hyfl" value="${hyfl }">
+                          <input type="hidden" name="code" value="${code}">
 
                           <div class="layui-row">
                               <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
@@ -91,6 +92,18 @@
                                       </div>
                                   </div>
                               </div>
+                              <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
+                                  <div class="layui-form-item" style="height:28px;">
+                                      <label class="layui-form-label">问题类型</label>
+                                      <div class="layui-input-block">
+                                          <select id="lightType" name="lightType">
+                                              <option value="">所有</option>
+                                              <option value="1">超期红灯</option>
+                                              <option value="2">超期黄灯</option>
+                                          </select>
+                                      </div>
+                                  </div>
+                              </div>
 <%--                              <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">--%>
 <%--                                  <div class="layui-form-item" style="height:28px;">--%>
 <%--                                      <label class="layui-form-label">项目类型</label>--%>
@@ -142,22 +155,22 @@
                           </div>
                       </div>
                   </label>
-<%--                  <label class="juli">--%>
-<%--                      红灯数量<span class="lanse-first">{{numData.redNum}}个</span>--%>
-<%--                      <div class="progress-div">--%>
-<%--                          <div class="layui-progress">--%>
-<%--                              <div class="layui-progress-bar" :style="'width:'+numData.redRate"></div>--%>
-<%--                          </div>--%>
-<%--                      </div>--%>
-<%--                  </label>--%>
-<%--                  <label class="juli">--%>
-<%--                      黄灯数量<span class="lanse-first">{{numData.yellowNum}}</span>--%>
-<%--                      <div class="progress-div">--%>
-<%--                          <div class="layui-progress">--%>
-<%--                              <div class="layui-progress-bar" :style="'width:'+numData.yellowRate"></div>--%>
-<%--                          </div>--%>
-<%--                      </div>--%>
-<%--                  </label>--%>
+                  <label class="juli">
+                      红灯数量<span class="lanse-first">{{numData.redNum}}个</span>
+                      <div class="progress-div">
+                          <div class="layui-progress">
+                              <div class="layui-progress-bar" :style="'width:'+numData.redRate"></div>
+                          </div>
+                      </div>
+                  </label>
+                  <label class="juli">
+                      黄灯数量<span class="lanse-first">{{numData.yellowNum}}</span>
+                      <div class="progress-div">
+                          <div class="layui-progress">
+                              <div class="layui-progress-bar" :style="'width:'+numData.yellowRate"></div>
+                          </div>
+                      </div>
+                  </label>
               </div>
           </div>
       </div>
@@ -399,7 +412,7 @@
       dataList : [],
       startDate:"",
       endDate:"",
-      LightType:"1",
+      LightType:"",
       tableName : 'test',
       pageNo : 1,
       kind: {},
@@ -543,14 +556,7 @@
         param.orderType = this.sort.type || null;
 
 
-        if (self.lightType=="1"){
-          param.openDate=true;
-        }else{
-          param.offsetMax=-10;
-        }
-
-
-          App.postJson("/api/problemInfo/pageQueryOpenWarnDataRedYellow",param, function(res){
+          App.postJson("/api/problemInfo/pageQueryXjToZjDataRedYellow",param, function(res){
 
               console.log(res.data)
 
@@ -559,7 +565,7 @@
           });
 
 
-        App.postJson("/api/problemInfo/pageQueryOpenWarnData",param, function(res){
+        App.postJson("/api/problemInfo/pageQueryXjToZjData",param, function(res){
           self.dataList = res.rows;
           self.loadPage(res.total);
           self.loadTable();

+ 8 - 15
projects/src/main/webapp/vmodules/problem/info/pldWarn.jsp

@@ -70,7 +70,7 @@
         <!-- 内容区域 -->
 
         <div class="right_title">
-        	<span class="txt">投资偏离度超限</span>
+        	<span class="txt">投产转入规超期</span>
             <div class="layui-collapse">
                 <div class="layui-colla-item">
                     <%--                    <h2 class="layui-colla-title">筛选</h2>--%>
@@ -82,6 +82,7 @@
                             <input type="hidden" name="mainId" value="${mainId }">
                             <input type="hidden" name="zjly" value="${sourceId }">
                             <input type="hidden" name="indusKind" value="${hyfl }">
+                            <input type="hidden" name="code" value="${code}">
 
                             <div class="layui-row">
                                 <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
@@ -105,9 +106,9 @@
                                         <label class="layui-form-label">灯色</label>
                                         <div class="layui-input-block">
                                             <select id="lightType" name="lightType">
-                                                <option value="">请选择</option>
-                                                <option value="1">红灯</option>
-                                                <option value="2">黄灯</option>
+                                                <option value="">所有</option>
+                                                <option value="1">超期红灯</option>
+                                                <option value="2">超期黄灯</option>
                                             </select>
                                         </div>
                                     </div>
@@ -411,7 +412,7 @@
             dataList : [],
             startDate:"",
             endDate:"",
-            LightType:"1",
+            LightType:"",
             tableName : 'test',
             pageNo : 1,
             numData:{},
@@ -556,15 +557,7 @@
                 param.offsetMax=-10;
 
 
-                if (param.lightType=="1"){
-                    param.offsetMax=-30;
-                }else if (param.lightType=="2"){
-                    param.offsetMax=-10;
-                    param.offsetMin=-30;
-                }
-
-
-                App.postJson("/api/problemInfo/pageQueryPldWarnDataRedYellow",param, function(res){
+                App.postJson("/api/problemInfo/pageQueryTcToRgDataRedYellow",param, function(res){
 
                     console.log(res.data)
 
@@ -573,7 +566,7 @@
                 });
 
 
-                App.postJson("/api/problemInfo/pageQueryPldWarnData",param, function(res){
+                App.postJson("/api/problemInfo/pageQueryTcToRgData",param, function(res){
                     self.dataList = res.rows;
                     self.loadPage(res.total);
                     self.loadTable();

+ 34 - 32
projects/src/main/webapp/vmodules/problem/info/preInfo.jsp

@@ -31,17 +31,17 @@
         <div class="right_title">
             <div class="tab-group">
                 <button class="btn btn1" :class="{active: tabActive === 1}" @click="onChangeActive(1)">储备转新建超期
-                    <span class="button-card" @click="ct('','','','','1')">{{cbToXjNum}}</span></button>
+                    <span class="button-card" @click="ct('','','','','1','')">{{cbToXjNum}}</span></button>
                 <button class="btn btn1" :class="{active: tabActive === 2}" @click="onChangeActive(2)">前期手续办理超期
-                    <span class="button-card" @click="ct('','','','','2')">{{preNum}}</span></button>
+                    <span class="button-card" @click="ct('','','','','2','')">{{preNum}}</span></button>
                 <button class="btn btn1" :class="{active: tabActive === 3}" @click="onChangeActive(3)">新建转在建超期
-                    <span class="button-card" @click="ct('','','','','3')">{{xjToZjNum}}</span></button>
+                    <span class="button-card" @click="ct('','','','','3','')">{{xjToZjNum}}</span></button>
                 <button class="btn btn1" :class="{active: tabActive === 4}" @click="onChangeActive(4)">在建转投产超期
-                    <span class="button-card" @click="ct('','','','','4')">{{zjToTcNum}}</span></button>
+                    <span class="button-card" @click="ct('','','','','4','')">{{zjToTcNum}}</span></button>
                 <button class="btn btn1" :class="{active: tabActive === 5}" @click="onChangeActive(5)">投产转入规超期
-                    <span class="button-card" @click="ct('','','','','5')">{{tcToRgNum}}</span></button>
+                    <span class="button-card" @click="ct('','','','','5','')">{{tcToRgNum}}</span></button>
                 <button class="btn btn2" :class="{active: tabActive === 6}" @click="onChangeActive(6)">项目月报超期
-                    <span class="button-card" @click="ct('','','','','6')">{{monthlyNum}}</span></button>
+                    <span class="button-card" @click="ct('','','','','6','')">{{monthlyNum}}</span></button>
                 <%--                <button class="btn btn2" :class="{active: tabActive === 3}" @click="onChangeActive(3)">项目开工超期--%>
                 <%--                    <span class="button-card" @click="ct('','','','','3')">{{openWarnNum}}</span></button>--%>
                 <%--                <button class="btn btn2" :class="{active: tabActive === 5}" @click="onChangeActive(5)">投资偏离度超限--%>
@@ -104,7 +104,7 @@
                     <div class="tab-syatic center-syayic">
                         <div class="bar-number-row">
                             <div class="row-item" v-for="(itemFund,index) in quyuList" :key="index"
-                                 @dblclick="ct(itemFund.code,'','','','')">
+                                 @dblclick="ct(itemFund.code,'','','','','')">
                                 <div class="row-item-static">
                                     <span class="font-weight">{{itemFund.number}}</span>
                                     <span class="danwei">个</span>
@@ -150,7 +150,7 @@
             <%--                &lt;%&ndash;                    点击&ndash;%&gt;--%>
             <%--                &lt;%&ndash;                </div>&ndash;%&gt;--%>
             <%--            </div>--%>
-            <div class="pro-bar-item bar-item-4" :class="collsItem==4?'':'height-bar'">
+            <div v-if="tabActive != 2 && tabActive !=6" class="pro-bar-item bar-item-4" :class="collsItem==4?'':'height-bar'">
                 <div class="bar-tip">
                     按行业统计
                     <div class="sanjiao special-color"></div>
@@ -159,7 +159,7 @@
                     <div class="tab-syatic">
                         <div class="bar-number-row" v-for="(item,index) in hangyeList" :key="index">
                             <div class="row-item" v-for="(itemFund,indexFund) in item" :key="indexFund"
-                                 @dblclick="ct('','','',itemFund.code,'')">
+                                 @dblclick="ct('','','',itemFund.code,'','')">
                                 <div class="row-item-static">
                                     <span class="font-weight">{{itemFund.number}}</span>
                                     <span class="danwei">个</span>
@@ -189,7 +189,7 @@
                     <div class="tab-syatic">
                         <div class="bar-number-row" v-for="(item,index) in guimoList" :key="index">
                             <div class="row-item" v-for="(itemFund,indexFund) in item" :key="indexFund"
-                                 @dblclick="ct('','','','',itemFund.code)">
+                                 @dblclick="ct('','','','','',itemFund.code)">
                                 <div class="row-item-static">
                                     <span class="font-weight">{{itemFund.number}}</span>
                                     <span class="danwei">个</span>
@@ -639,55 +639,57 @@
             },
 
             // tab上的数字点击跳转
-            ct: function (subjectId, sourceId, mainId, hyfl, index) {
+            ct: function (subjectId, sourceId, mainId, hyfl, index,code) {
                 // window.event? window.event.cancelBubble = true : e.stopPropagation();
                 // console.log('ct被点击了');
                 var self = this;
                 var url = "/problem/info/preWarn";
                 console.log(index);
                 if (index !== undefined && index != "") {
-                    if (index == 1) {
-                        url = "/problem/info/preWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                     if (index == 1) {
+                        url = "/problem/info/cbToXjWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                     } else if (index == 2) {
-                        url = "/problem/info/monthWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                         url = "/problem/info/preWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                     } else if (index == 3) {
-                        url = "/problem/info/openWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                         url = "/problem/info/openWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                     } else if (index == 4) {
-                        url = "/problem/info/endWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                         url = "/problem/info/endWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                     } else if (index == 5) {
-                        url = "/problem/info/pldWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                         url = "/problem/info/pldWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                     } else if (index == 6) {
-                        url = "/problem/info/problemWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
-                    }
+                         url = "/problem/info/monthWarn?subjectId=&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
+
+                     }
                 } else {
                     if (mainId != null && mainId != undefined && mainId != '') {
                         if (self.tabActive == 1) {
-                            //url = "/problem/info/preWarn?subjectId=" + self.quyuListTab[self.chooseNum].number + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
-                            url = "/problem/info/preWarn?subjectId=" + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/cbToXjWarn?subjectId="+ self.quyuListTab[self.chooseNum].number +"&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         } else if (self.tabActive == 2) {
-                            url = "/problem/info/monthWarn?subjectId=" + self.quyuListTab[self.chooseNum].number + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/preWarn?subjectId="+ self.quyuListTab[self.chooseNum].number +"&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         } else if (self.tabActive == 3) {
-                            url = "/problem/info/openWarn?subjectId=" + self.quyuListTab[self.chooseNum].number + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/openWarn?subjectId=" + self.quyuListTab[self.chooseNum].number + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         } else if (self.tabActive == 4) {
-                            url = "/problem/info/endWarn?subjectId=" + self.quyuListTab[self.chooseNum].number + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/endWarn?subjectId=" + self.quyuListTab[self.chooseNum].number + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         } else if (self.tabActive == 5) {
-                            url = "/problem/info/pldWarn?subjectId=" + self.quyuListTab[self.chooseNum].number + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/pldWarn?subjectId=" + self.quyuListTab[self.chooseNum].number + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         } else if (self.tabActive == 6) {
-                            url = "/problem/info/problemWarn?subjectId=" + self.quyuListTab[self.chooseNum].number + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            //url = "/problem/info/problemWarn?subjectId=" + self.quyuListTab[self.chooseNum].number + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/monthWarn?subjectId=" + self.quyuListTab[self.chooseNum].number + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         }
                     } else {
                         if (self.tabActive == 1) {
-                            url = "/problem/info/preWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/cbToXjWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         } else if (self.tabActive == 2) {
-                            url = "/problem/info/monthWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/preWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         } else if (self.tabActive == 3) {
-                            url = "/problem/info/openWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/openWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         } else if (self.tabActive == 4) {
-                            url = "/problem/info/endWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/endWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         } else if (self.tabActive == 5) {
-                            url = "/problem/info/pldWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/pldWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         } else if (self.tabActive == 6) {
-                            url = "/problem/info/problemWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            //url = "/problem/info/problemWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&lastUrl=" + window.location.href;
+                            url = "/problem/info/monthWarn?subjectId=" + (subjectId || "") + "&sourceId=" + sourceId + "&mainId=" + mainId + "&hyfl=" + hyfl + "&code=" + code +"&lastUrl=" + window.location.href;
                         }
                     }
                 }

+ 1 - 0
projects/src/main/webapp/vmodules/problem/info/preWarn.jsp

@@ -90,6 +90,7 @@
                                             <input type="hidden" name="mainId" value="${mainId }">
                                             <input type="hidden" name="sourceId" value="${sourceId }">
                                             <input type="hidden" name="hyfl" value="${hyfl }">
+                                            <input type="hidden" name="code" value="${code}">
                                         </div>
                                     </div>
                                 </div>

+ 22 - 45
projects/src/main/webapp/vmodules/project/monthReport.jsp

@@ -192,25 +192,6 @@
                                             </div>
                                         </div>
                                     </div>
-                                    <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
-                                        <div class="layui-form-item">
-                                            <label class="layui-form-label   ">行业类别</label>
-                                            <div class="layui-input-block">
-                                                <select name="hyfl" lay-search="">
-                                                    <option value="">请选择</option>
-                                                    <c:forEach items="${HYFL }" var="hy">
-                                                        <c:if test="${indusKind == hy.title}">
-                                                            <option value="${hy.id }"
-                                                                    selected="selected">${hy.title }</option>
-                                                        </c:if>
-                                                        <c:if test="${indusKind != hy.title}">
-                                                            <option value="${hy.id }">${hy.title }</option>
-                                                        </c:if>
-                                                    </c:forEach>
-                                                </select>
-                                            </div>
-                                        </div>
-                                    </div>
 
                                     <div class="layui-col-xs6 layui-col-sm6 layui-col-md5">
                                         <div class="layui-form-item">
@@ -767,17 +748,16 @@
                     amtYc=this.amtYc
                 }
                 var param = {
-                    startMonth: this.startMonth + "-01",
-                    endMonth: this.endMonth + "-01",
-                    status: $("[name='projStatus']").val(),
-                    subName: $("[name='proName']").val(),
-                    isDo: $("[name='isDo']").val(),
-                    startAmt: startAmt,
-                    endAmt: endAmt,
-                    hyfl: $("[name='hyfl']").val(),
-                    amtSj: amtSj,
-                    amtYc: amtYc,
-                    jsdd: $("[name='jsdd']").val()
+                    varkind:$("[name='projStatus']").val(),
+                    varbegin:"202410",
+                    varend:"202411",
+                    vardesc:$("[name='proName']").val(),
+                    varstatus:$("[name='isDo']").val(),
+                    varjsdd: $("[name='jsdd']").val(),
+                    varlogin:"admin",
+                    varpage: 1,
+                    varnum: 10000,
+                    outtotal: 1,
                 };
                 App.common.utils.downFile(App.getUrl("/monthReport/exportExcel"), "GET", param, "项目月报.xlsx", "项目月报导出失败");
                 //window.location.href=App.getUrl("/monthReport/exportExcel?startMonth="+param.startMonth+"&endMonth="+param.endMonth+"&status="+param.status+"&subName="+param.subName+"&isDo="+param.isDo+"&startAmt="+param.startAmt+"&endAmt="+param.endAmt+"&hyfl="+param.hyfl);
@@ -1071,25 +1051,22 @@
                     return;
                 }
                 var param = {
-                    pageNo: this.pageNo,
-                    pageSize: this.pageSize,
-                    startMonth: this.startMonth + "-01",
-                    endMonth: this.endMonth + "-01",
-                    status: $("[name='projStatus']").val(),
-                    subName: $("[name='proName']").val(),
-                    isDo: $("[name='isDo']").val(),
-                    startAmt: $("[name='startAmt']").val(),
-                    endAmt: $("[name='endAmt']").val(),
-                    hyfl: $("[name='hyfl']").val(),
-                    amtSj: $("[name='amtSj']").val(),
-                    amtYc: $("[name='amtYc']").val(),
-                    jsdd: $("[name='jsdd']").val(),
-                    orderType: this.orderType || null
+
+                    varkind:$("[name='projStatus']").val(),
+                    varbegin:"202410",
+                    varend:"202411",
+                    vardesc:$("[name='proName']").val(),
+                    varstatus:$("[name='isDo']").val(),
+                    varjsdd: $("[name='jsdd']").val(),
+                    varlogin:"admin",
+                    pageNo: 1,
+                    pageSize: 10000,
+                    outtotal: 1,
                 };
 
                 App.postJson("/api/monthReport/queryReport", param, function (res) {
                     if (res.success) {
-                        self.loadTable(res.rows);
+                        self.loadTable(res.data);
                         self.loadPage(res.total);
                     }
                 });

+ 33 - 48
projects/src/main/webapp/vmodules/project/weekReport.jsp

@@ -103,21 +103,14 @@
                                             </div>
                                         </div>
                                     </div>
-                                    <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
+                                    <div class="layui-col-xs6 layui-col-sm6 layui-col-md4">
                                         <div class="layui-form-item">
-                                            <label class="layui-form-label ">行业类别</label>
+                                            <label class="layui-form-label">项目状态</label>
                                             <div class="layui-input-block">
-                                                <select name="hyfl" lay-search="">
-                                                    <option value="">请选择</option>
-                                                    <c:forEach items="${HYFL }" var="hy">
-                                                        <c:if test="${indusKind == hy.title}">
-                                                            <option value="${hy.id }"
-                                                                    selected="selected">${hy.title }</option>
-                                                        </c:if>
-                                                        <c:if test="${indusKind != hy.title}">
-                                                            <option value="${hy.id }">${hy.title }</option>
-                                                        </c:if>
-                                                    </c:forEach>
+                                                <select name="projStatus" lay-verify="required">
+                                                    <option value="0">所有</option>
+                                                    <option value="1">已开工</option>
+                                                    <option value="2">已停工</option>
                                                 </select>
                                             </div>
                                         </div>
@@ -135,18 +128,7 @@
                                         </div>
                                     </div>
 
-                                    <div class="layui-col-xs6 layui-col-sm6 layui-col-md4">
-                                        <div class="layui-form-item">
-                                            <label class="layui-form-label">项目状态</label>
-                                            <div class="layui-input-block">
-                                                <select name="projStatus" lay-verify="required">
-                                                    <option value="0">所有</option>
-                                                    <option value="1">已开工</option>
-                                                    <option value="2">已停工</option>
-                                                </select>
-                                            </div>
-                                        </div>
-                                    </div>
+
 
                                     <div class="layui-col-xs6 layui-col-sm6 layui-col-md3">
                                         <div class="layui-form-item">
@@ -284,6 +266,8 @@
             tabActive: 1,
             startMonth: "",
             endMonth: "",
+            startAmt: "",
+            endAmt: "",
             currPlan: [],
             yuebaoInfo: {},
             active: 7, // 左侧菜单选中项
@@ -678,23 +662,23 @@
                 /* var sm = this.startMonth.replace(/\-/g, "");
                 var em = this.endMonth.replace(/\-/g, ""); */
                 var param = {
-                    pageNo: this.pageNo,
-                    pageSize: this.pageSize,
-                    startMonth: this.startMonth,
-                    endMonth: this.endMonth,
-                    status: $("[name='projStatus']").val(),
-                    subName: $("[name='proName']").val(),
-                    isDo: $("[name='isDo']").val(),
-                    startAmt: $("[name='startAmt']").val(),
-                    endAmt: $("[name='endAmt']").val(),
-                    hyfl: $("[name='hyfl']").val(),
-                    jsdd: $("[name='jsdd']").val(),
-                    orderType: this.orderType || null
+
+                    varkind:$("[name='projStatus']").val(),
+                    varbegin:"2024-10-21",
+                    varend:"2024-10-21",
+                    vardesc:$("[name='proName']").val(),
+                    varstatus:$("[name='isDo']").val(),
+                    varjsdd: $("[name='jsdd']").val(),
+                    varlogin:"admin",
+                    varpage: 1,
+                    varnum: 10000,
+                    outtotal: 1,
+
                 };
                 App.postJson("/api/weekReport/queryReport", param, function (res) {
                     if (res.success) {
-                        console.log(res.rows);
-                        self.loadTable(res.rows);
+                        console.log(res.data);
+                        self.loadTable(res.data);
                         self.loadPage(res.total);
                     }
                 });
@@ -738,15 +722,16 @@
                 /* var sm = this.startMonth.replace(/\-/g, "");
                 var em = this.endMonth.replace(/\-/g, ""); */
                 var param = {
-                    startMonth: this.startMonth,
-                    endMonth: this.endMonth,
-                    status: $("[name='projStatus']").val(),
-                    subName: $("[name='proName']").val(),
-                    isDo: $("[name='isDo']").val(),
-                    startAmt: startAmt,
-                    endAmt: endAmt,
-                    hyfl: $("[name='hyfl']").val(),
-                    jsdd: $("[name='jsdd']").val()
+                    varkind:$("[name='projStatus']").val(),
+                    varbegin:"2024-10-21",
+                    varend:"2024-10-21",
+                    vardesc:$("[name='proName']").val(),
+                    varstatus:$("[name='isDo']").val(),
+                    varjsdd: $("[name='jsdd']").val(),
+                    varlogin:"admin",
+                    varpage: 1,
+                    varnum: 10000,
+                    outtotal: 1,
                 };
                 App.common.utils.downFile(App.getUrl("/weekReport/exportExcel"), "GET", param, "项目周报.xlsx", "项目周报导出失败");
                 //window.location.href=App.getUrl("?startMonth="+param.startMonth+"&endMonth="+param.endMonth+"&status="+param.status+"&subName="+param.subName+"&isDo="+param.isDo+"&startAmt="+param.startAmt+"&endAmt="+param.endAmt+"&hyfl="+param.hyfl);