1
0

5 کامیت‌ها 31c2ff814a ... 39667f4315

نویسنده SHA1 پیام تاریخ
  Wayne 39667f4315 Merge branch 'master' of http://8.137.121.180:10880/longping/subject_gxj 3 ماه پیش
  Wayne fa457a7a20 重点项目库-项目明细导出新增搜索 3 ماه پیش
  Wayne 779c605dd0 项目汇总导出搜索框 3 ماه پیش
  Wayne c5bb28340a 重点库四库详情页面修改 3 ماه پیش
  Wayne a38d320ec0 项目转换统计详情界面 3 ماه پیش
19فایلهای تغییر یافته به همراه524 افزوده شده و 77 حذف شده
  1. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/StaticsMapper.java
  2. 31 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/StaticsMapper.xml
  3. 5 5
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.java
  4. 105 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.xml
  5. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/StaticsService.java
  6. 28 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/StaticsServiceImpl.java
  7. 119 25
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoServiceImpl.java
  8. 8 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/TLogOperateVo.java
  9. 14 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/XmzhtjDetailVo.java
  10. 15 1
      projects/src/main/java/com/rtrh/projects/web/controller/projects/TjFxController.java
  11. 17 4
      projects/src/main/java/com/rtrh/projects/web/controller/projects/api/TzfxApiController.java
  12. 10 8
      projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java
  13. 8 1
      projects/src/main/webapp/vmodules/project/xmzhtj.jsp
  14. 11 2
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_extend.jsp
  15. 11 2
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_new.jsp
  16. 12 2
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_reserve.jsp
  17. 0 25
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_reserve_sum.jsp
  18. 11 2
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_sum.jsp
  19. 115 0
      projects/src/main/webapp/vmodules/subject/subInfo/xmzhtjDetail.jsp

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

@@ -320,4 +320,6 @@ public interface StaticsMapper {
 	List<SubInfoTjfxDataVo> getTjfxYearMoneyBySubIds(@Param("idList") List<String> idList, @Param("year") String year);
 
 	List<TLogOperateVo> getXmzhtjData(@Param("vo") RegisterListVO vo);
+
+    List<TLogOperateVo> getXmzhtjDetailData(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("kind") String kind, @Param("title") String title);
 }

+ 31 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/StaticsMapper.xml

@@ -189,4 +189,35 @@
 		    projectDate, kind, title
 	</select>
 
+    <select id="getXmzhtjDetailData" resultType="com.rtrh.projects.modules.projects.vo.TLogOperateVo">
+		select
+		    b.sub_name as subName,
+		    a.kind as kind,
+		    a.title as title,
+		    a.create_time as createTime,
+		    a.create_user_name as createUserName
+		from
+		t_log_operate a
+		left join sub_info b on a.sub_id = b.id
+		where
+		a.logic_delete_flag = 0
+		<if test="startDate != null and  startDate != ''">
+			AND a.zh_date &gt;= #{startDate}
+		</if>
+		<if test="endDate != null and endDate != ''">
+			AND a.zh_date &lt;= #{endDate}
+		</if>
+		<if test="kind != null and kind != ''">
+			AND a.kind = #{kind}
+		</if>
+		<if test="title != null and title != ''">
+			AND a.title = #{title}
+		</if>
+		<if test="title == null or title == ''">
+			AND a.title IS NULL
+		</if>
+		order by
+		a.create_time desc
+	</select>
+
 </mapper>

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

@@ -57,23 +57,23 @@ public interface SubInfoMapper {
     @Update("update sub_fix set cat = #{fixCat} where sub_id = #{subInfoId} and cat = #{oldCat}")
     void updateFixeCat(@Param("subInfoId") String subInfoId, @Param("fixCat") String fixCat, @Param("oldCat") String oldCat);
 
-    List<SubInfoTotalExcel> getFixTotalExcel(@Param("stateFix") String stateFix,@Param("year") String year);
+    List<SubInfoTotalExcel> getFixTotalExcel(@Param("stateFix") String stateFix,@Param("year") String year,@Param("subName") String subName, @Param("indusKinds") List<String> indusKinds, @Param("sbdw") String sbdw, @Param("subjectId") String subjectId, @Param("startAmt") String startAmt, @Param("endAmt") String endAmt);
 
     List<SubInfoTotalExcel> exportTotalExcelByStatus(@Param("status") String status);
 
-    List<SubInfoFixDetail> exportFixDetailExcel(@Param("stateFix")String stateFix, @Param("year") String year);
+    List<SubInfoFixDetail> exportFixDetailExcel(@Param("stateFix")String stateFix, @Param("year") String year,@Param("subName") String subName, @Param("indusKinds") List<String> indusKinds, @Param("sbdw") String sbdw, @Param("subjectId") String subjectId, @Param("startAmt") String startAmt, @Param("endAmt") String endAmt);
 
     List<SubInfoFixDetailPreNew> selectSubPreNewBySubIds(@Param("subIdList")List<String> subIdList);
 
     List<RptCont> selectNewestMonthReport(@Param("ids") List<String> ids);
 
-    List<SubInfoFixCbDetail> exportFixCbDetailExcel(@Param("stateFix") String stateFix, @Param("year") String year);
+    List<SubInfoFixCbDetail> exportFixCbDetailExcel(@Param("stateFix") String stateFix, @Param("year") String year,@Param("subName") String subName, @Param("indusKinds") List<String> indusKinds, @Param("sbdw") String sbdw, @Param("subjectId") String subjectId, @Param("startAmt") String startAmt, @Param("endAmt") String endAmt);
 
-    List<SubInfoFixZjDetail> exportFixZjDetailExcel(@Param("stateFix") String stateFix, @Param("year") String year);
+    List<SubInfoFixZjDetail> exportFixZjDetailExcel(@Param("stateFix") String stateFix, @Param("year") String year,@Param("subName") String subName, @Param("indusKinds") List<String> indusKinds, @Param("sbdw") String sbdw, @Param("subjectId") String subjectId, @Param("startAmt") String startAmt, @Param("endAmt") String endAmt);
 
     List<MoneyMap> selectYearMoney(@Param("subIdList") List<String> subIdList, @Param("year") String year);
 
-    List<SubInfoFixTcDetail> exportFixTcDetailExcel(@Param("stateFix") String stateFix,@Param("year") String year);
+    List<SubInfoFixTcDetail> exportFixTcDetailExcel(@Param("stateFix") String stateFix,@Param("year") String year,@Param("subName") String subName, @Param("indusKinds") List<String> indusKinds, @Param("sbdw") String sbdw, @Param("subjectId") String subjectId, @Param("startAmt") String startAmt, @Param("endAmt") String endAmt);
 
     List<SubFixGetBeginRateVo> subFixGetBeginRate(@Param("queryVO")SubInfoQueryTzVO queryVO,@Param("indusKinds") List<String> indusKinds);
 

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

@@ -401,6 +401,27 @@
         FROM sub_fix
         LEFT JOIN sub_info ON sub_fix.sub_id = sub_info.id
         WHERE sub_fix.cat = #{stateFix} and sub_fix.year = #{year} and sub_info.logic_delete_flag = 0
+        <if test="subName != null and subName != ''">
+            AND sub_info.sub_name LIKE CONCAT('%', #{subName}, '%')
+        </if>
+        <if test="subjectId != null and subjectId != ''">
+            AND sub_info.subject_id = #{subjectId}
+        </if>
+        <if test="indusKinds != null and indusKinds.size() &gt; 0">
+            AND sub_info.indus_kind IN
+            <foreach collection="indusKinds" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="sbdw != null and sbdw != ''">
+            AND sub_info.unit_desc LIKE CONCAT('%', #{sbdw}, '%')
+        </if>
+        <if test="startAmt != null and startAmt !=''">
+            AND sub_info.amt_total &gt;= #{startAmt}
+        </if>
+        <if test="endAmt != null and endAmt != ''">
+            AND sub_info.amt_total &lt;= #{endAmt}
+        </if>
     </select>
     <select id="exportTotalExcelByStatus" resultType="com.rtrh.projects.modules.projects.vo.SubInfoTotalExcel">
         SELECT sub_info.subject_id as subjectId,
@@ -428,6 +449,27 @@
         FROM sub_fix
                  LEFT JOIN sub_info ON sub_fix.sub_id = sub_info.id
         WHERE sub_fix.cat = #{stateFix} and sub_fix.year = #{year} and sub_info.logic_delete_flag = 0
+        <if test="subName != null and subName != ''">
+            AND sub_info.sub_name LIKE CONCAT('%', #{subName}, '%')
+        </if>
+        <if test="subjectId != null and subjectId != ''">
+            AND sub_info.subject_id = #{subjectId}
+        </if>
+        <if test="indusKinds != null and indusKinds.size() &gt; 0">
+            AND sub_info.indus_kind IN
+            <foreach collection="indusKinds" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="sbdw != null and sbdw != ''">
+            AND sub_info.unit_desc LIKE CONCAT('%', #{sbdw}, '%')
+        </if>
+        <if test="startAmt != null and startAmt !=''">
+            AND sub_info.amt_total &gt;= #{startAmt}
+        </if>
+        <if test="endAmt != null and endAmt != ''">
+            AND sub_info.amt_total &lt;= #{endAmt}
+        </if>
     </select>
 
     <select id="selectSubPreNewBySubIds" resultType="com.rtrh.projects.modules.projects.vo.SubInfoFixDetailPreNew">
@@ -487,6 +529,27 @@
         FROM sub_fix
                  LEFT JOIN sub_info ON sub_fix.sub_id = sub_info.id
         WHERE sub_fix.cat = #{stateFix} and sub_fix.year = #{year} and sub_info.logic_delete_flag = 0
+        <if test="subName != null and subName != ''">
+            AND sub_info.sub_name LIKE CONCAT('%', #{subName}, '%')
+        </if>
+        <if test="subjectId != null and subjectId != ''">
+            AND sub_info.subject_id = #{subjectId}
+        </if>
+        <if test="indusKinds != null and indusKinds.size() &gt; 0">
+            AND sub_info.indus_kind IN
+            <foreach collection="indusKinds" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="sbdw != null and sbdw != ''">
+            AND sub_info.unit_desc LIKE CONCAT('%', #{sbdw}, '%')
+        </if>
+        <if test="startAmt != null and startAmt !=''">
+            AND sub_info.amt_total &gt;= #{startAmt}
+        </if>
+        <if test="endAmt != null and endAmt != ''">
+            AND sub_info.amt_total &lt;= #{endAmt}
+        </if>
     </select>
     <select id="exportFixZjDetailExcel" resultType="com.rtrh.projects.modules.projects.vo.export.SubInfoFixZjDetail">
         SELECT
@@ -507,6 +570,27 @@
             sub_info.logic_delete_flag = 0
           AND sub_fix.cat = #{stateFix}
           AND sub_fix.year = #{year}
+        <if test="subName != null and subName != ''">
+            AND sub_info.sub_name LIKE CONCAT('%', #{subName}, '%')
+        </if>
+        <if test="subjectId != null and subjectId != ''">
+            AND sub_info.subject_id = #{subjectId}
+        </if>
+        <if test="indusKinds != null and indusKinds.size() &gt; 0">
+            AND sub_info.indus_kind IN
+            <foreach collection="indusKinds" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="sbdw != null and sbdw != ''">
+            AND sub_info.unit_desc LIKE CONCAT('%', #{sbdw}, '%')
+        </if>
+        <if test="startAmt != null and startAmt !=''">
+            AND sub_info.amt_total &gt;= #{startAmt}
+        </if>
+        <if test="endAmt != null and endAmt != ''">
+            AND sub_info.amt_total &lt;= #{endAmt}
+        </if>
     </select>
     <select id="selectYearMoney" resultType="com.rtrh.projects.modules.projects.vo.export.MoneyMap">
         SELECT
@@ -542,6 +626,27 @@
             sub_info.logic_delete_flag = 0
           AND sub_fix.cat = #{stateFix}
           AND sub_fix.year = #{year}
+        <if test="subName != null and subName != ''">
+            AND sub_info.sub_name LIKE CONCAT('%', #{subName}, '%')
+        </if>
+        <if test="subjectId != null and subjectId != ''">
+            AND sub_info.subject_id = #{subjectId}
+        </if>
+        <if test="indusKinds != null and indusKinds.size() &gt; 0">
+            AND sub_info.indus_kind IN
+            <foreach collection="indusKinds" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="sbdw != null and sbdw != ''">
+            AND sub_info.unit_desc LIKE CONCAT('%', #{sbdw}, '%')
+        </if>
+        <if test="startAmt != null and startAmt !=''">
+            AND sub_info.amt_total &gt;= #{startAmt}
+        </if>
+        <if test="endAmt != null and endAmt != ''">
+            AND sub_info.amt_total &lt;= #{endAmt}
+        </if>
     </select>
     <select id="subFixGetBeginRate" resultType="com.rtrh.projects.vo.projects.SubFixGetBeginRateVo">
         SELECT

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

@@ -345,4 +345,6 @@ public interface StaticsService {
 	SubInfoTjfxVo getTjfxData(TzfxDataQueryVO queryVO);
 
 	Page getXmzhtjData(Page page, RegisterListVO vo);
+
+    Page getXmzhtjDetailData(Page page, XmzhtjDetailVo queryVO);
 }

+ 28 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/StaticsServiceImpl.java

@@ -1258,4 +1258,32 @@ public class StaticsServiceImpl implements StaticsService {
 
         return page;
     }
+
+    @Override
+    public Page getXmzhtjDetailData(Page page, XmzhtjDetailVo queryVO) {
+
+        String startDate = queryVO.getProjectDate() + "-01";
+
+        // 将字符串转换为 LocalDate 对象,获取该月的第一天
+        LocalDate firstDayOfMonth = LocalDate.parse(queryVO.getProjectDate() + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+
+        // 获取下个月的第一天
+        LocalDate firstDayOfNextMonth = firstDayOfMonth.plusMonths(1);
+
+        // 上个月的最后一天就是下个月第一天的前一天
+        LocalDate lastDayOfMonth = firstDayOfNextMonth.minusDays(1);
+
+        String endDate = lastDayOfMonth.toString();
+
+        if ("undefined".equals(queryVO.getTitle())){
+            queryVO.setTitle(null);
+        }
+
+        PageHelper.startPage(page.getPageNo(), page.getPageSize());
+        List<TLogOperateVo> list = staticsMapper.getXmzhtjDetailData(startDate,endDate,queryVO.getKind(),queryVO.getTitle());
+        PageInfo<TLogOperateVo> pageInfo = new PageInfo<>(list);
+        page.setList(list);
+        page.setTotalCount(pageInfo.getTotal());
+        return page;
+    }
 }

+ 119 - 25
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoServiceImpl.java

@@ -4763,8 +4763,29 @@ public class SubInfoServiceImpl implements SubInfoService {
     @Override
     public List<SubInfoTotalExcel> getFixTotalExcel(SubInfoQueryTzVO vo) {
 
+        //查询出行业分类
+        List<SubIndu> subInduList = subInduService.selectAllSubIndu();
+
+        //保存行业code
+        List<String> indusKinds = new ArrayList<>();
+        //判断搜索条件中是否有行业分类条件
+        if (StringUtils.isNotBlank(vo.getIndusKind())) {
+            //在subInduList中找到code=queryVO.getIndusKinds()的数据
+            SubIndu subIndu = subInduList.stream().filter(item -> item.getCode().equals(vo.getIndusKind())).findFirst().orElse(null);
+
+            if (subIndu != null){
+                //判断这个行业是不是上级行业
+                if (StringUtils.isBlank(subIndu.getLastId())){
+                    // 这个行业是上级行业,需要找到所有下级行业的code
+                    indusKinds = subInduList.stream().filter(item -> item.getLastId() != null && item.getLastId().equals(subIndu.getId())).map(SubIndu::getCode).collect(Collectors.toList());
+                }else {
+                    indusKinds.add(subIndu.getCode());
+                }
+            }
+        }
+
         // 查询具体的sql数据
-        List<SubInfoTotalExcel> dataList =  subInfoMapper.getFixTotalExcel(vo.getStateFix(),vo.getYear());
+        List<SubInfoTotalExcel> dataList =  subInfoMapper.getFixTotalExcel(vo.getStateFix(),vo.getYear(),vo.getSubName(),indusKinds,vo.getSbdw(),vo.getSubjectId(),vo.getStartAmt(),vo.getEndAmt());
 
         return dataList;
     }
@@ -4772,9 +4793,32 @@ public class SubInfoServiceImpl implements SubInfoService {
     @Override
     public List<SubInfoFixDetail> exportFixDetailExcel(SubInfoQueryTzVO vo) {
 
+        // 获取行业
+        List<SubIndu> subInduList = Optional.ofNullable(
+                subInduService.selectAllSubIndu()
+        ).orElse(Collections.emptyList());
+
+        //保存行业code
+        List<String> indusKinds = new ArrayList<>();
+        //判断搜索条件中是否有行业分类条件
+        if (StringUtils.isNotBlank(vo.getIndusKind())) {
+            //在subInduList中找到code=queryVO.getIndusKinds()的数据
+            SubIndu subIndu = subInduList.stream().filter(item -> item.getCode().equals(vo.getIndusKind())).findFirst().orElse(null);
+
+            if (subIndu != null){
+                //判断这个行业是不是上级行业
+                if (StringUtils.isBlank(subIndu.getLastId())){
+                    // 这个行业是上级行业,需要找到所有下级行业的code
+                    indusKinds = subInduList.stream().filter(item -> item.getLastId() != null && item.getLastId().equals(subIndu.getId())).map(SubIndu::getCode).collect(Collectors.toList());
+                }else {
+                    indusKinds.add(subIndu.getCode());
+                }
+            }
+        }
+
         // 查询所有的重点项目信息,若结果为空则初始化为一个空列表
         List<SubInfoFixDetail> dataList = Optional.ofNullable(
-                subInfoMapper.exportFixDetailExcel(vo.getStateFix(), vo.getYear())
+                subInfoMapper.exportFixDetailExcel(vo.getStateFix(), vo.getYear(),vo.getSubName(),indusKinds,vo.getSbdw(),vo.getSubjectId(),vo.getStartAmt(),vo.getEndAmt())
         ).orElse(Collections.emptyList());
 
         // 收集所有重点项目信息的ID
@@ -4788,11 +4832,6 @@ public class SubInfoServiceImpl implements SubInfoService {
                 subInfoMapper.selectSubPreNewBySubIds(subIdList)
         ).orElse(Collections.emptyList());
 
-        // 获取行业
-        List<SubIndu> subInduList = Optional.ofNullable(
-                subInduService.selectAllSubIndu()
-        ).orElse(Collections.emptyList());
-
 
         //对手续信息按照id进行分组
         Map<String, List<SubInfoFixDetailPreNew>> preNewMap = preNewList.stream().collect(Collectors.groupingBy(SubInfoFixDetailPreNew::getSubId));
@@ -4867,9 +4906,33 @@ public class SubInfoServiceImpl implements SubInfoService {
     @Override
     public List<SubInfoFixCbDetail> exportFixCbDetailExcel(SubInfoQueryTzVO vo) {
 
+        // 获取行业
+        List<SubIndu> subInduList = Optional.ofNullable(
+                subInduService.selectAllSubIndu()
+        ).orElse(Collections.emptyList());
+
+        //保存行业code
+        List<String> indusKinds = new ArrayList<>();
+        //判断搜索条件中是否有行业分类条件
+        if (StringUtils.isNotBlank(vo.getIndusKind())) {
+            //在subInduList中找到code=queryVO.getIndusKinds()的数据
+            SubIndu subIndu = subInduList.stream().filter(item -> item.getCode().equals(vo.getIndusKind())).findFirst().orElse(null);
+
+            if (subIndu != null){
+                //判断这个行业是不是上级行业
+                if (StringUtils.isBlank(subIndu.getLastId())){
+                    // 这个行业是上级行业,需要找到所有下级行业的code
+                    indusKinds = subInduList.stream().filter(item -> item.getLastId() != null && item.getLastId().equals(subIndu.getId())).map(SubIndu::getCode).collect(Collectors.toList());
+                }else {
+                    indusKinds.add(subIndu.getCode());
+                }
+            }
+        }
+
+
         // 查询所有的重点项目信息,若结果为空则初始化为一个空列表
         List<SubInfoFixCbDetail> dataList = Optional.ofNullable(
-                subInfoMapper.exportFixCbDetailExcel(vo.getStateFix(), vo.getYear())
+                subInfoMapper.exportFixCbDetailExcel(vo.getStateFix(), vo.getYear(),vo.getSubName(),indusKinds,vo.getSbdw(),vo.getSubjectId(),vo.getStartAmt(),vo.getEndAmt())
         ).orElse(Collections.emptyList());
 
         // 获取项目建设地点
@@ -4877,11 +4940,6 @@ public class SubInfoServiceImpl implements SubInfoService {
                 tSysTableService.getByKind(SysTableKind.JSDD)
         ).orElse(Collections.emptyList());
 
-        // 获取行业
-        List<SubIndu> subInduList = Optional.ofNullable(
-                subInduService.selectAllSubIndu()
-        ).orElse(Collections.emptyList());
-
         // 遍历重点项目信息,找到对应的前期手续信息,然后拼接手续完成情况为字符串,拼接到对应的重点项目信息中
         dataList.forEach(e->{
             //设置项目所在地
@@ -4918,9 +4976,32 @@ public class SubInfoServiceImpl implements SubInfoService {
     @Override
     public List<SubInfoFixZjDetail> exportFixZjDetailExcel(SubInfoQueryTzVO vo) {
 
+        // 获取行业
+        List<SubIndu> subInduList = Optional.ofNullable(
+                subInduService.selectAllSubIndu()
+        ).orElse(Collections.emptyList());
+
+        //保存行业code
+        List<String> indusKinds = new ArrayList<>();
+        //判断搜索条件中是否有行业分类条件
+        if (StringUtils.isNotBlank(vo.getIndusKind())) {
+            //在subInduList中找到code=queryVO.getIndusKinds()的数据
+            SubIndu subIndu = subInduList.stream().filter(item -> item.getCode().equals(vo.getIndusKind())).findFirst().orElse(null);
+
+            if (subIndu != null){
+                //判断这个行业是不是上级行业
+                if (StringUtils.isBlank(subIndu.getLastId())){
+                    // 这个行业是上级行业,需要找到所有下级行业的code
+                    indusKinds = subInduList.stream().filter(item -> item.getLastId() != null && item.getLastId().equals(subIndu.getId())).map(SubIndu::getCode).collect(Collectors.toList());
+                }else {
+                    indusKinds.add(subIndu.getCode());
+                }
+            }
+        }
+
         // 查询所有的重点项目信息,若结果为空则初始化为一个空列表
         List<SubInfoFixZjDetail> dataList = Optional.ofNullable(
-                subInfoMapper.exportFixZjDetailExcel(vo.getStateFix(), vo.getYear())
+                subInfoMapper.exportFixZjDetailExcel(vo.getStateFix(), vo.getYear(),vo.getSubName(),indusKinds,vo.getSbdw(),vo.getSubjectId(),vo.getStartAmt(),vo.getEndAmt())
         ).orElse(Collections.emptyList());
 
         //获取所有SubInfoFixZjDetail的id
@@ -4945,11 +5026,6 @@ public class SubInfoServiceImpl implements SubInfoService {
                 tSysTableService.getByKind(SysTableKind.JSDD)
         ).orElse(Collections.emptyList());
 
-        // 获取行业
-        List<SubIndu> subInduList = Optional.ofNullable(
-                subInduService.selectAllSubIndu()
-        ).orElse(Collections.emptyList());
-
         // 遍历重点项目信息,找到对应的前期手续信息,然后拼接手续完成情况为字符串,拼接到对应的重点项目信息中
         dataList.forEach(e->{
             //设置项目所在地
@@ -4993,9 +5069,32 @@ public class SubInfoServiceImpl implements SubInfoService {
     @Override
     public List<SubInfoFixTcDetail> exportFixTcDetailExcel(SubInfoQueryTzVO vo) {
 
+        // 获取行业
+        List<SubIndu> subInduList = Optional.ofNullable(
+                subInduService.selectAllSubIndu()
+        ).orElse(Collections.emptyList());
+
+        //保存行业code
+        List<String> indusKinds = new ArrayList<>();
+        //判断搜索条件中是否有行业分类条件
+        if (StringUtils.isNotBlank(vo.getIndusKind())) {
+            //在subInduList中找到code=queryVO.getIndusKinds()的数据
+            SubIndu subIndu = subInduList.stream().filter(item -> item.getCode().equals(vo.getIndusKind())).findFirst().orElse(null);
+
+            if (subIndu != null){
+                //判断这个行业是不是上级行业
+                if (StringUtils.isBlank(subIndu.getLastId())){
+                    // 这个行业是上级行业,需要找到所有下级行业的code
+                    indusKinds = subInduList.stream().filter(item -> item.getLastId() != null && item.getLastId().equals(subIndu.getId())).map(SubIndu::getCode).collect(Collectors.toList());
+                }else {
+                    indusKinds.add(subIndu.getCode());
+                }
+            }
+        }
+
         // 查询所有的重点项目信息,若结果为空则初始化为一个空列表
         List<SubInfoFixTcDetail> dataList = Optional.ofNullable(
-                subInfoMapper.exportFixTcDetailExcel(vo.getStateFix(), vo.getYear())
+                subInfoMapper.exportFixTcDetailExcel(vo.getStateFix(), vo.getYear(),vo.getSubName(),indusKinds,vo.getSbdw(),vo.getSubjectId(),vo.getStartAmt(),vo.getEndAmt())
         ).orElse(Collections.emptyList());
 
         // 获取项目建设地点
@@ -5003,11 +5102,6 @@ public class SubInfoServiceImpl implements SubInfoService {
                 tSysTableService.getByKind(SysTableKind.JSDD)
         ).orElse(Collections.emptyList());
 
-        // 获取行业
-        List<SubIndu> subInduList = Optional.ofNullable(
-                subInduService.selectAllSubIndu()
-        ).orElse(Collections.emptyList());
-
         // 遍历重点项目信息,找到对应的前期手续信息,然后拼接手续完成情况为字符串,拼接到对应的重点项目信息中
         dataList.forEach(e->{
             //设置项目所在地

+ 8 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/TLogOperateVo.java

@@ -1,7 +1,10 @@
 package com.rtrh.projects.modules.projects.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 
+import java.util.Date;
+
 @Data
 public class TLogOperateVo {
 
@@ -11,4 +14,9 @@ public class TLogOperateVo {
     private String title;  //说明
     private String number;  //数量
 
+    private String subName; //项目名称
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;    //操作时间
+
 }

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

@@ -0,0 +1,14 @@
+package com.rtrh.projects.modules.projects.vo;
+
+import lombok.Data;
+
+@Data
+public class XmzhtjDetailVo {
+
+    private String projectDate;
+
+    private String kind;
+
+    private String title;
+
+}

+ 15 - 1
projects/src/main/java/com/rtrh/projects/web/controller/projects/TjFxController.java

@@ -17,6 +17,7 @@ import com.rtrh.projects.modules.system.po.JUnit;
 import com.rtrh.projects.modules.system.service.ISubInduService;
 import com.rtrh.projects.modules.system.service.JUnitService;
 import org.apache.commons.io.IOUtils;
+import org.apache.ibatis.annotations.Param;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -69,7 +70,7 @@ public class TjFxController extends BaseController {
 	 * @return
 	 */
 	@RequestMapping(value="/xmzhtj",method= RequestMethod.GET)
-	public ModelAndView view(Model model) {
+	public ModelAndView xmzhtj(Model model) {
 		String currUserUnitId = getCurUser().getUnitId();
 		Boolean isSfgw = false;
 		if(StringUtil.isNotEmpty(currUserUnitId)) {
@@ -95,6 +96,19 @@ public class TjFxController extends BaseController {
 		return new ModelAndView("/vmodules/project/xmzhtj.jsp");
 	}
 
+	/**
+	 * 返回项目转换统计详情页面
+	 * @param model
+	 * @return
+	 */
+	@RequestMapping(value="/xmzhtjDetail",method= RequestMethod.GET)
+	public ModelAndView xmzhtjDetail(ModelMap model, String projectDate, String kind, String title) {
+		model.addAttribute("projectDate", projectDate);
+		model.addAttribute("kind", kind);
+		model.addAttribute("title", title);
+		return new ModelAndView("/vmodules/subject/subInfo/xmzhtjDetail.jsp", model);
+	}
+
 
 	@GetMapping("reportWord")
 	public void reportWord(String year,String kind,String month) throws Exception {

+ 17 - 4
projects/src/main/java/com/rtrh/projects/web/controller/projects/api/TzfxApiController.java

@@ -10,9 +10,7 @@ import com.rtrh.core.repository.Page;
 import com.rtrh.core.vo.ListMessage;
 import com.rtrh.projects.modules.projects.mapper.ReportMapper;
 import com.rtrh.projects.modules.projects.po.TLogOperate;
-import com.rtrh.projects.modules.projects.vo.SubInfoTjfxDataVo;
-import com.rtrh.projects.modules.projects.vo.SubInfoTjfxVo;
-import com.rtrh.projects.modules.projects.vo.TLogOperateVo;
+import com.rtrh.projects.modules.projects.vo.*;
 import com.rtrh.projects.modules.system.po.SecUser;
 import com.rtrh.projects.vo.passport.RegisterListVO;
 import com.team.security.TeamShiroUser;
@@ -25,7 +23,6 @@ import org.springframework.web.bind.annotation.RestController;
 import com.rtrh.common.util.StringUtil;
 import com.rtrh.core.vo.Message;
 import com.rtrh.projects.modules.projects.service.StaticsService;
-import com.rtrh.projects.modules.projects.vo.TzfxDataQueryVO;
 import com.rtrh.projects.web.controller.BaseController;
 
 @RestController
@@ -123,6 +120,22 @@ public class TzfxApiController extends BaseController {
 		return message;
 	}
 
+	/**
+	 * 项目转换统计详情数据
+	 */
+	@PostMapping("getXmzhtjDetailData")
+	public ListMessage getXmzhtjDetailData(@RequestBody Page page, @RequestBody XmzhtjDetailVo queryVO) {
+		ListMessage message = new ListMessage();
+		try {
+			Page pageData = staticsService.getXmzhtjDetailData(page, queryVO);
+			message.add(pageData.getList(), pageData.getTotalCount());
+		} catch (Exception e) {
+			logger.error("", e);
+			message.add("查询失败");
+		}
+		return message;
+	}
+
 
 
 

+ 10 - 8
projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java

@@ -787,15 +787,17 @@ public class SubInfoExportController extends BaseController {
 
                 for (Map.Entry<String, List<List<String>>> dataListEntry : finalDataMap.entrySet()) {
                     List<List<String>> dataList = dataListEntry.getValue();
-                    int dataSize = dataList.size();
-                    if (dataSize == 1) {
-                        indexStart += dataSize;
-                    } else {
-                        writer.merge(indexStart, indexStart + dataSize - 1, 0, 0, null, true);
-                        indexStart += dataSize;
+                    if (dataList != null && dataList.size() > 0){
+                        int dataSize = dataList.size();
+                        if (dataSize == 1) {
+                            indexStart += dataSize;
+                        } else {
+                            writer.merge(indexStart, indexStart + dataSize - 1, 0, 0, null, true);
+                            indexStart += dataSize;
+                        }
+                        //18.保存数据
+                        finalDataRows.addAll(dataList);
                     }
-                    //18.保存数据
-                    finalDataRows.addAll(dataList);
                 }
                 writer.write(finalDataRows, true);
 

+ 8 - 1
projects/src/main/webapp/vmodules/project/xmzhtj.jsp

@@ -86,7 +86,7 @@
 
 <script type="text/html" id="currentTableBar">
     <div class="toolBar">
-        <span lay-event="edit2">明细</span>
+        <span lay-event="toDetail">明细</span>
     </div>
 </script>
 
@@ -315,6 +315,13 @@
                     var event = obj.event;
                     self[event].call(this, obj);
                 });
+            },
+            toDetail: function (obj) {
+                console.log("当前数据:",obj.data)
+                App.openLayer({
+                    title: "项目转换统计详情",
+                    content: App.getUrl("/tjfx/xmzhtjDetail?kind=" + obj.data.kind + "&title=" + obj.data.title + "&projectDate=" + obj.data.projectDate),
+                });
             }
         }
     });

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

@@ -1112,12 +1112,21 @@
                     })
                 },
                 toDetail: function (obj) {
+                    //详情
+                    // var index = layer.open({
+                    //     type: 2,
+                    //     title: "",
+                    //     area: ['1000px', '800px'],
+                    //     content: App.getUrl("/subject/subInfo/detailView?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href + "&queryYear=" + obj.data.queryYear),
+                    // });
+                    // layui.layer.full(index);
+
                     //详情
                     var index = layer.open({
                         type: 2,
-                        title: "",
+                        title: '',
                         area: ['1000px', '800px'],
-                        content: App.getUrl("/subject/subInfo/detailView?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href + "&queryYear=" + obj.data.queryYear),
+                        content: App.getUrl("/subject/subInfo/detailView2?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href),
                     });
                     layui.layer.full(index);
                 },

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

@@ -1108,12 +1108,21 @@
                     })
                 },
                 toDetail: function (obj) {
+                    //详情
+                    // var index = layer.open({
+                    //     type: 2,
+                    //     title: "",
+                    //     area: ['1000px', '800px'],
+                    //     content: App.getUrl("/subject/subInfo/detailView?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href + "&queryYear=" + obj.data.queryYear),
+                    // });
+                    // layui.layer.full(index);
+
                     //详情
                     var index = layer.open({
                         type: 2,
-                        title: "",
+                        title: '',
                         area: ['1000px', '800px'],
-                        content: App.getUrl("/subject/subInfo/detailView?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href + "&queryYear=" + obj.data.queryYear),
+                        content: App.getUrl("/subject/subInfo/detailView2?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href),
                     });
                     layui.layer.full(index);
                 },

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

@@ -1078,14 +1078,24 @@
                     })
                 },
                 toDetail: function (obj) {
+                    // //详情
+                    // var index = layer.open({
+                    //     type: 2,
+                    //     title: "",
+                    //     area: ['1000px', '800px'],
+                    //     content: App.getUrl("/subject/subInfo/detailView?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href + "&queryYear=" + obj.data.queryYear),
+                    // });
+                    // layui.layer.full(index);
+
                     //详情
                     var index = layer.open({
                         type: 2,
-                        title: "",
+                        title: '',
                         area: ['1000px', '800px'],
-                        content: App.getUrl("/subject/subInfo/detailView?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href + "&queryYear=" + obj.data.queryYear),
+                        content: App.getUrl("/subject/subInfo/detailView2?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href),
                     });
                     layui.layer.full(index);
+
                 },
                 print: function (obj) {
                     window.open(App.getUrl("/subject/apply/downPdf?subId=" + obj.data.id));

+ 0 - 25
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_reserve_sum.jsp

@@ -152,31 +152,6 @@
         </div>
         <div class="table_box" style="padding-top: 0;">
             <div class="table_process" style="position: relative;">
-                <div class="export" style="background: transparent" @mouseover="openExport" @mouseout="choseExport">
-                    <div class="export" style="right: 25px;top: 0">
-                        <img src="${WebSite.asset}/css/images/left/export.svg"/>
-                        <span>导出</span>
-                    </div>
-                    <div class="sanjiao"></div>
-                    <div class="export-item" v-if="showExport" style="right: 5px;top:-30px">
-                        <%--                        <button type="button" class="" @click="exportExcel">--%>
-                        <%--                            项目汇总--%>
-                        <%--                        </button>--%>
-                        <%--                        <button type="button" class=""--%>
-                        <%--                                @click="exportExcelByIndusKind">按所属行业--%>
-                        <%--                        </button>--%>
-                        <%--                        <button type="button" class=""--%>
-                        <%--                                @click="exportSchedulingExcel">项目调度表--%>
-                        <%--                        </button>--%>
-                        <%--                        <!-- <button type="button" class="" @click="exportExcel2">项目明细导出</button> -->--%>
-                        <%--                        <button type="button" class=""--%>
-                        <%--                                @click="exportMoreExcel">自定义--%>
-                        <%--                        </button>--%>
-                        <button type="button" class=""
-                                @click="exportProject">储备项目
-                        </button>
-                    </div>
-                </div>
                 <table id="table1" lay-filter="test" style="position: relative;"></table>
                 <div class="pagination-box" id="pagination"></div>
             </div>

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

@@ -1123,12 +1123,21 @@
                     })
                 },
                 toDetail: function (obj) {
+                    //详情
+                    // var index = layer.open({
+                    //     type: 2,
+                    //     title: "",
+                    //     area: ['1000px', '800px'],
+                    //     content: App.getUrl("/subject/subInfo/detailView?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href + "&queryYear=" + obj.data.queryYear),
+                    // });
+                    // layui.layer.full(index);
+
                     //详情
                     var index = layer.open({
                         type: 2,
-                        title: "",
+                        title: '',
                         area: ['1000px', '800px'],
-                        content: App.getUrl("/subject/subInfo/detailView?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href + "&queryYear=" + obj.data.queryYear),
+                        content: App.getUrl("/subject/subInfo/detailView2?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href),
                     });
                     layui.layer.full(index);
                 },

+ 115 - 0
projects/src/main/webapp/vmodules/subject/subInfo/xmzhtjDetail.jsp

@@ -0,0 +1,115 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>项目转换统计详情</title>
+    <jsp:include page="../../common/common-meta-include.jsp"></jsp:include>
+    <link rel="stylesheet" type="text/css" href="${WebSite.asset}/lib/layui-v2.5.5/css/layui.css?version=${version}" media="all"/>
+    <link rel="stylesheet" type="text/css" href="${WebSite.asset}/lib/layui-v2.5.5/css/public.css?version=${version}" media="all"/>
+</head>
+<body>
+    <div class="layuimini-container">
+    <div class="layuimini-main">
+        <div class="table_box" style="padding-top: 0;">
+            <div class="table_process">
+                <table id="meeting" lay-filter="meeting"></table>
+                <div class="pagination-box" id="pagination"></div>
+            </div>
+        </div>
+    </div>
+
+    <jsp:include page="../../common/common-js-include.jsp"></jsp:include>
+
+    <script type="text/javascript">
+
+        // 将传递的参数存储到 JavaScript 变量中
+        var projectDate = "${projectDate}";
+        var kind = "${kind}";
+        var title = "${title}";
+
+
+        App.namespace("App.projects.meeting.xhzhtjDetail");
+        (function ($, mod) {
+            mod = mod || {}; //对象声明
+
+            // ---------------变量声明--------------
+            var _table = layui.table,
+                pageNo = 1,
+                pageSize = 10,
+                _tableName = "meeting";
+
+            // ---------------私有方法定义---------------
+            var methods = {
+                init: function () {
+                    methods.getData();
+                },
+                getData: function () {
+                    var searchForm = {};
+                    searchForm.pageNo = pageNo;
+                    searchForm.pageSize = pageSize;
+                    searchForm.projectDate = projectDate; // 将项目日期加入查询参数
+                    searchForm.kind = kind; // 将类型加入查询参数
+                    searchForm.title = title; // 将说明加入查询参数
+                    //查询当前没有被纳入的
+                    App.postJson("/api/tzfx/getXmzhtjDetailData", searchForm, function (res) {
+                        methods.initTable(res.rows);
+                        methods.loadPage(res.total);
+                    });
+                },
+                initTable: function (data) {
+                    layui.table.render({
+                        elem: "#" + _tableName, // 指定原始表格元素选择器(推荐id选择器)
+                        even: true,
+                        defaultToolbar: [],
+                        cols: [[ // 设置表头
+                            {type: 'numbers', title: '序号', align: 'center', width: 80},
+                            {field: 'subName', title: '项目名称', minwidth: 80,},
+                            {
+                                field: 'kind',
+                                title: '类型',
+                                minWidth: 80,
+                                templet: function (row) {
+                                    // 判断 kind 的值,进行转换
+                                    return row.kind === '1' ? '正转' : (row.kind === '2' ? '逆转' : '未知');
+                                }
+                            },
+                            {field: 'title', title: '说明', minwidth: 80,},
+                            {field: 'createTime', title: '操作时间', minwidth: 80,},
+                            {field: 'subName', title: '操作人', minwidth: 80,}
+                        ]],
+                        limit: pageSize,
+                        data: data
+                    });
+                    layui.table.on('tool(' + _tableName + ')', function (obj) {
+                        var event = obj.event;
+                        methods[event].call(this, obj);
+                    });
+                },
+                loadPage: function (totalCount) {
+                    var self = this;
+                    layui.laypage.render({
+                        elem: 'pagination',
+                        count: totalCount,
+                        curr: pageNo,
+                        limit: pageSize,
+                        layout: ['count', 'prev', 'page', 'next', 'skip'],
+                        jump: function (obj, first) {
+                            //首次不执行
+                            if (!first) {
+                                pageNo = obj.curr;
+                                methods.getData();
+                            }
+                        }
+                    });
+                },
+            };
+
+            // ---------------初始化---------------
+            $(function () {
+                methods.init();
+            });
+
+        })(jQuery, App.projects.meeting.xhzhtjDetail)
+    </script>
+</div>
+</body>
+</html>