1
0

5 Revīzijas 31c2ff814a ... 39667f4315

Autors SHA1 Ziņojums Datums
  Wayne 39667f4315 Merge branch 'master' of http://8.137.121.180:10880/longping/subject_gxj 11 mēneši atpakaļ
  Wayne fa457a7a20 重点项目库-项目明细导出新增搜索 11 mēneši atpakaļ
  Wayne 779c605dd0 项目汇总导出搜索框 11 mēneši atpakaļ
  Wayne c5bb28340a 重点库四库详情页面修改 11 mēneši atpakaļ
  Wayne a38d320ec0 项目转换统计详情界面 11 mēneši atpakaļ
19 mainītis faili ar 524 papildinājumiem un 77 dzēšanām
  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>