Переглянути джерело

Merge branch 'master' of http://8.137.121.180:10880/longping/subject_gxj

xzxwsk 3 місяців тому
батько
коміт
eff853abf7
67 змінених файлів з 1340 додано та 1318 видалено
  1. 10 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/JUnitMapper.java
  2. 97 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/JUnitMapper.xml
  3. 7 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.java
  4. 67 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.xml
  5. 1 1
      projects-service/src/main/java/com/rtrh/projects/modules/projects/po/SubInfoGxj.java
  6. 4 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubInfoService.java
  7. 1 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoQueryServiceImpl.java
  8. 244 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoServiceImpl.java
  9. 5 5
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/WorkBenchServiceImpl.java
  10. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/SubInfoQueryTzVO.java
  11. 35 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/export/SmzkDetailVo.java
  12. 8 2
      projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/export/SubInfoZjVO.java
  13. 1 4
      projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/export/SubInfoZkVO.java
  14. 119 96
      projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/JUnitServiceImpl.java
  15. 24 0
      projects-service/src/main/java/com/rtrh/projects/vo/projects/JUnitVO.java
  16. 5 0
      projects-service/src/main/java/com/rtrh/projects/vo/projects/SubFixBeginVo.java
  17. 2 0
      projects-service/src/main/java/com/rtrh/projects/vo/projects/SubFixGetBeginRateVo.java
  18. 10 1
      projects/src/main/java/com/rtrh/projects/outapi/controller/AuthApiController.java
  19. 1 0
      projects/src/main/java/com/rtrh/projects/web/base/WebBootModeServlet.java
  20. 1 1
      projects/src/main/java/com/rtrh/projects/web/controller/fileSystem/FileGetController.java
  21. 1 1
      projects/src/main/java/com/rtrh/projects/web/controller/fileSystem/FilePostController.java
  22. 1 1
      projects/src/main/java/com/rtrh/projects/web/controller/passport/LogoutController.java
  23. 2 2
      projects/src/main/java/com/rtrh/projects/web/controller/passport/api/RegisterApiController.java
  24. 1 1
      projects/src/main/java/com/rtrh/projects/web/controller/projects/SubPreNewController.java
  25. 3 3
      projects/src/main/java/com/rtrh/projects/web/controller/projects/api/TzfxApiController.java
  26. 4 4
      projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoController.java
  27. 84 32
      projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java
  28. 0 52
      projects/src/main/java/com/rtrh/projects/web/controller/subject/WorkBenchTwoController.java
  29. 37 6
      projects/src/main/java/com/rtrh/projects/web/controller/subject/api/SubInfoApiController.java
  30. 29 7
      projects/src/main/java/com/rtrh/projects/web/controller/subject/api/SubInfoQueryApiController.java
  31. 1 1
      projects/src/main/java/com/rtrh/projects/web/util/DataSourceAspect.java
  32. BIN
      projects/src/main/webapp/asset/css/images/register/logo.png
  33. 21 18
      projects/src/main/webapp/asset/css/indexScreen.css
  34. 4 0
      projects/src/main/webapp/asset/css/style.css
  35. 3 2
      projects/src/main/webapp/asset/css/style_new.css
  36. 42 0
      projects/src/main/webapp/asset/js/util.js
  37. 5 0
      projects/src/main/webapp/asset/sass/style_new.scss
  38. 1 1
      projects/src/main/webapp/vmodules/annualPlan/list.jsp
  39. 2 0
      projects/src/main/webapp/vmodules/common/common-js-include.jsp
  40. 19 2
      projects/src/main/webapp/vmodules/graphic/detail.jsp
  41. 6 6
      projects/src/main/webapp/vmodules/leftMenu.jsp
  42. 7 4
      projects/src/main/webapp/vmodules/passport/registerList.jsp
  43. 14 14
      projects/src/main/webapp/vmodules/problem/info/preInfo.jsp
  44. 19 2
      projects/src/main/webapp/vmodules/project/rptFile.jsp
  45. 35 16
      projects/src/main/webapp/vmodules/statics/analysisScreen_four.jsp
  46. 11 1
      projects/src/main/webapp/vmodules/statics/layer/projInfo_new.jsp
  47. 2 0
      projects/src/main/webapp/vmodules/statics/layer/subInfo/projectInfo.jsp
  48. 1 1
      projects/src/main/webapp/vmodules/subject/subInfo/detailView.jsp
  49. 19 24
      projects/src/main/webapp/vmodules/subject/subInfo/editSubInfo.jsp
  50. 19 13
      projects/src/main/webapp/vmodules/subject/subInfo/tz/cb.jsp
  51. 17 44
      projects/src/main/webapp/vmodules/subject/subInfo/tz/cb_sum.jsp
  52. 2 2
      projects/src/main/webapp/vmodules/subject/subInfo/tz/end.jsp
  53. 2 2
      projects/src/main/webapp/vmodules/subject/subInfo/tz/end_sum.jsp
  54. 6 4
      projects/src/main/webapp/vmodules/subject/subInfo/tz/main.jsp
  55. 12 7
      projects/src/main/webapp/vmodules/subject/subInfo/tz/main_sum.jsp
  56. 6 5
      projects/src/main/webapp/vmodules/subject/subInfo/tz/new.jsp
  57. 8 8
      projects/src/main/webapp/vmodules/subject/subInfo/tz/new_sum.jsp
  58. 40 4
      projects/src/main/webapp/vmodules/subject/subInfo/tz/xmzk.jsp
  59. 13 149
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_extend_sum.jsp
  60. 6 2
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_new.jsp
  61. 19 174
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_new_sum.jsp
  62. 50 16
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_reserve.jsp
  63. 65 142
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_reserve_sum.jsp
  64. 3 1
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_sum.jsp
  65. 16 142
      projects/src/main/webapp/vmodules/subject/subInfo/tz/year_sum_sum.jsp
  66. 21 13
      projects/src/main/webapp/vmodules/tjfx/index2.jsp
  67. 17 279
      projects/src/main/webapp/vmodules/workBench/zr_gzt.jsp

+ 10 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/JUnitMapper.java

@@ -2,10 +2,20 @@ package com.rtrh.projects.modules.projects.mapper;
 
 import com.rtrh.core.repository.mybatis.MyBatisRepository;
 import com.rtrh.projects.modules.system.po.JUnit;
+import com.rtrh.projects.vo.projects.JUnitVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+import java.util.Map;
+
 @MyBatisRepository
 public interface JUnitMapper {
 
     JUnit findById(@Param("id") String subUnitId);
+
+    List<Map<String, Object>> getListById(@Param("id") String id, @Param("unitPropId") String unitPropId, @Param("unitKindId") String unitKindId, @Param("title") String title, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("status") String status);
+
+    List<Map<String, Object>> getListByIdStatusOne(@Param("unitPropId") String unitPropId, @Param("unitKindId") String unitKindId, @Param("title") String title, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("status") String status);
+
+    List<Map<String, Object>> getListByIdOtherStatus(@Param("id") String id, @Param("unitPropId") String unitPropId, @Param("unitKindId") String unitKindId, @Param("title") String title, @Param("startDate") String startDate, @Param("endDate") String endDate, @Param("status") String status);
 }

+ 97 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/JUnitMapper.xml

@@ -64,5 +64,102 @@
         FROM junit
         WHERE id = #{id}
     </select>
+    <select id="getListById" resultType="hashmap">
+        select a.id,a.reason,a.title,a.kind_unit  kindUnit,a.area,a.amt,a.date_found dateFound,a.group_code1,a.group_code2,a.trust_code trustCode,a.`status`,a.name_jur1 nameJur1,a.sim_code simCode ,b.title unitKindName,c.title unitPropName from j_unit a
+        left join j_unit_kind
+        LEFT JOIN t_systable b on a.unit_kind_id=b.id
+        LEFT JOIN t_systable c on a.unit_prop_id=c.id  where a.logic_delete_flag=0
+        <if test="id!=null and id!=''">
+            and id=#{id}
+        </if>
+        <if test="unitPropId!=null and unitPropId!=''">
+            and a.unit_prop_id=#{unitPropId}
+        </if>
+        <if test="unitKindId!=null and unitKindId!=''">
+            and a.unit_kind_id=#{unitKindId}
+        </if>
+        <if test="title!=null and title!=''">
+            and a.title like concat('%', #{title}, '%')
+        </if>
+        <if test="startDate!=null and startDate!=''">
+            and a.date_found >=#{startDate}
+        </if>
+        <if test="endDate!=null and endDate!=''">
+            and a.date_found &lt;=#{endDate}
+        </if>
+        <if test="status!=null and status!=''">
+            and a.status=#{status}
+        </if>
+    </select>
+
+    <sql id="baseSelect">
+        SELECT
+            a.id, a.title, a.kind_unit kindUnit, a.reason, a.area, a.amt, a.date_found dateFound,
+            a.group_code1, a.group_code2, a.trust_code trustCode, a.`status`, a.name_jur1 nameJur1,
+            a.sim_code simCode, b.title unitKindName, c.title unitPropName
+        FROM j_unit a
+                 LEFT JOIN t_systable b ON a.unit_kind_id = b.id
+                 LEFT JOIN t_systable c ON a.unit_prop_id = c.id
+        WHERE a.logic_delete_flag = 0 AND a.kind = 1
+    </sql>
+
+    <!-- Query for statusUnit=1 -->
+    <select id="getListByIdStatusOne" resultType="hashmap">
+        <include refid="baseSelect"/>
+        <where>
+            <if test="unitPropId != null and unitPropId != ''">
+                AND a.unit_prop_id = #{unitPropId}
+            </if>
+            <if test="unitKindId != null and unitKindId != ''">
+                AND a.unit_kind_id = #{unitKindId}
+            </if>
+            <if test="title != null and title != ''">
+                AND a.title LIKE '%' || #{title} || '%'
+            </if>
+            <if test="startDate != null and startDate != ''">
+                AND a.date_found &gt;= #{startDate}
+            </if>
+            <if test="endDate != null and endDate != ''">
+                AND a.date_found &lt;= #{endDate}
+            </if>
+            <if test="status != null and status != ''">
+                AND a.status = #{status}
+            </if>
+        </where>
+    </select>
+
+    <!-- Query for other statusUnit values -->
+    <select id="getListByIdOtherStatus" resultType="hashmap">
+        <include refid="baseSelect"/>
+        <where>
+            <if test="id != null and id != ''">
+                AND (a.id IN (
+                SELECT d.unit_id FROM sub_info d WHERE d.main_id = #{id}
+                ) OR a.id IN (
+                SELECT f.unit_id FROM sub_info f
+                LEFT JOIN sub_manage e ON e.sub_id = f.id
+                WHERE e.manage_id = #{id}
+                ))
+            </if>
+            <if test="unitPropId != null and unitPropId != ''">
+                AND a.unit_prop_id = #{unitPropId}
+            </if>
+            <if test="unitKindId != null and unitKindId != ''">
+                AND a.unit_kind_id = #{unitKindId}
+            </if>
+            <if test="title != null and title != ''">
+                AND a.title LIKE '%' || #{title} || '%'
+            </if>
+            <if test="startDate != null and startDate != ''">
+                AND a.date_found &gt;= #{startDate}
+            </if>
+            <if test="endDate != null and endDate != ''">
+                AND a.date_found &lt;= #{endDate}
+            </if>
+            <if test="status != null and status != ''">
+                AND a.status = #{status}
+            </if>
+        </where>
+    </select>
 
 </mapper>

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

@@ -106,4 +106,11 @@ public interface SubInfoMapper {
     @Update("update sub_info set amt_comp = #{sub.amtComp}, yb_content = #{sub.ybContent} where id = #{sub.id}")
     void update(@Param("sub") SubInfo subInfo);
 
+    List<SmzkDetailVo> exportSmzkDetailExcel(@Param("subName") String subName,@Param("subjectId") String subjectId,@Param("indusKinds") List<String> indusKinds,@Param("startAmt") String startAmt,@Param("endAmt") String endAmt, @Param("sbdw") String sbdw, @Param("subjectIds") List<String> subjectIds);
+
+    
+    void batchUpdate(@Param("list") List<SmzkDetailVo> list);
+
+    @Select("SELECT count(1) FROM sub_info where id=#{id} and logic_delete_flag = 0")
+    Integer selectById(@Param("id") String id);
 }

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

@@ -8,6 +8,65 @@
             (#{item.id}, #{item.subId}, #{item.year}, #{item.cat}, #{item.createTime}, #{item.createUserId})
         </foreach>
     </insert>
+    <update id="batchUpdate" parameterType="java.util.List">
+        <foreach collection="list" item="item" separator=";">
+            UPDATE sub_info
+            SET
+            sub_name = #{item.subName},
+            subject_id = #{item.subjectId},
+            content = #{item.content},
+            amt_total = #{item.amtTotal},
+            indus_kind = #{item.indusKind},
+            cb_status = #{item.cbStatus},
+            begin_date = #{item.beginDate},
+            end_date = #{item.endDate},
+            progress = #{item.progress},
+            remark = #{item.remark}
+            WHERE id = #{item.id}
+        </foreach>
+    </update>
+    <select id="exportSmzkDetailExcel" resultType="com.rtrh.projects.modules.projects.vo.export.SmzkDetailVo">
+        SELECT sub_info.id as id,
+        sub_info.sub_name as subName,
+        sub_info.subject_id as subjectId,
+        sub_info.content as content,
+        sub_info.amt_total as amtTotal,
+        sub_info.indus_kind as indusKind,
+        sub_info.cb_status as cbStatus,
+        sub_info.begin_date as beginDate,
+        sub_info.end_date as endDate,
+        sub_info.progress as progress,
+        sub_info.remark as remark
+        FROM sub_info
+        WHERE 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="subjectIds != null and subjectIds.size() &gt; 0">
+            AND sub_info.subject_id IN
+            <foreach collection="subjectIds" item="item" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </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="smartSiteQuery" resultType="com.rtrh.projects.modules.projects.vo.SubSmartVO"  >
@@ -137,6 +196,9 @@
             <if test="vo.subName!=null and vo.subName!=''">
                 and s.sub_name like CONCAT('%', #{vo.subName}, '%')
             </if>
+            <if test="vo.cbStatus!=null and vo.cbStatus!=''">
+                and s.cb_status = #{vo.cbStatus}
+            </if>
             <if test="vo.kindNature!=null and vo.kindNature!=''">
                 and s.kind_nature = #{vo.kindNature}
             </if>
@@ -223,6 +285,9 @@
             <if test="vo.subName!=null and vo.subName!=''">
                 and sub_name like CONCAT('%', #{vo.subName}, '%')
             </if>
+            <if test="vo.cbStatus!=null and vo.cbStatus!=''">
+                and cb_status = #{vo.cbStatus}
+            </if>
             <if test="vo.subjectId!=null and vo.subjectId!=''">
                 and subject_id = #{vo.subjectId}
             </if>
@@ -335,6 +400,7 @@
             cb_num AS cbNum,
             xj_num AS xjNum,
             zj_num AS zjNum,
+            indus_name AS indusName,
             remark,
             name_zrr AS nameZrr,
             tel AS tel,
@@ -712,6 +778,7 @@
         sub_info.subject_id AS subjectId,
         sub_info.indus_kind AS indusKind,
         sub_info.is_rg AS isRg,
+        sub_info.cb_status AS cbStatus,
         sub_info.abc AS abc
         FROM sub_fix
         LEFT JOIN sub_info ON sub_fix.sub_id = sub_info.id

+ 1 - 1
projects-service/src/main/java/com/rtrh/projects/modules/projects/po/SubInfoGxj.java

@@ -161,7 +161,7 @@ public class SubInfoGxj extends TableBaseColomn implements Serializable {
     private Long preProceNum;
     private Long preEndNum;
     private String yearAmtSj;
-    private String yearPlanAmt;
+    private BigDecimal yearPlanAmt;
 
     private String preContent;
 }

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

@@ -449,4 +449,8 @@ public interface SubInfoService {
 	Long queryExceedWithin();
 
 	Long queryExceedOutside();
+
+	List<SmzkDetailVo> exportSmzkDetailExcel(SubInfoQueryTzVO vo, List<String> subjectIds);
+
+    void importXmzkDetailExcel(List<List<Object>> readAll);
 }

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

@@ -211,6 +211,7 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
 
         if (CollectionUtil.isNotEmpty(data)) {
             for (SubInfoGxj e : data) {
+                e.setStatusName(SubInfoStatusEnum.getDesc(e.getStatus()));
                 e.setSubjectName(kindMap.get(e.getSubjectId()));
                 // [在建、投产] 项目进度为月报内容
                 if (Arrays.asList(SubInfoStatusEnum.ZJ.getCode(), SubInfoStatusEnum.TC.getCode()).contains(e.getStatus())) {

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

@@ -5382,6 +5382,250 @@ public class SubInfoServiceImpl implements SubInfoService {
         return subInfoMapper.queryExceedOutside();
     }
 
+    @Override
+    public List<SmzkDetailVo> exportSmzkDetailExcel(SubInfoQueryTzVO vo, List<String> subjectIds) {
+
+        // 获取行业
+        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<TSystable> sbddList = Optional.ofNullable(
+                tSysTableService.getByKind(SysTableKind.JSDD)
+        ).orElse(Collections.emptyList());
+
+
+        // 查询所有的重点项目信息,若结果为空则初始化为一个空列表
+        List<SmzkDetailVo> dataList = Optional.ofNullable(
+                subInfoMapper.exportSmzkDetailExcel(vo.getSubName(),vo.getSubjectId(),indusKinds,vo.getStartAmt(),vo.getEndAmt(),vo.getSbdw(),subjectIds)
+        ).orElse(Collections.emptyList());
+
+
+        // 遍历重点项目信息,找到对应的前期手续信息,然后拼接手续完成情况为字符串,拼接到对应的重点项目信息中
+        dataList.forEach(e->{
+
+            e.setCbStatus(SubInfoCbStatusEnum.getMessage(e.getCbStatus()));
+
+            //设置行业
+            if (StringUtil.isNotEmpty(e.getIndusKind())) {
+                String induskind = e.getIndusKind();
+                //这是新的行业列表subInduList,subInduList中有children里面装的子行业,我需要将induskind替换为subInduList中的一级行业title
+                Optional<SubIndu> first = subInduList.stream().filter(item -> item.getCode().equals(induskind)).findFirst();
+                if (first.isPresent()) {
+                        e.setIndusKind(first.get().getTitle());
+                }else {
+                    e.setIndusKind("");
+                }
+            }else {
+                e.setIndusKind("");
+            }
+
+            //设置项目所在地
+            if (StringUtil.isNotEmpty(e.getSubjectId())) {
+                String sbdw = e.getSubjectId();
+                Optional<TSystable> first = sbddList.stream().filter(item -> item.getCode().equals(sbdw)).findFirst();
+                if (first.isPresent()) {
+                    e.setSubjectId(first.get().getTitle());
+                }else {
+                    e.setSubjectId("");
+                }
+            }else {
+                e.setSubjectId("");
+            }
+
+            //将万元转换为亿元
+            e.setAmtTotal(e.getAmtTotal().divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP));
+        });
+
+        return dataList;
+
+    }
+
+    @Override
+    @TargetDataSource("primary")
+    public void importXmzkDetailExcel(List<List<Object>> readAll) {
+
+        // 前两行是标题,跳过
+        if (readAll != null && readAll.size() >2) {
+            List<SmzkDetailVo> list = new ArrayList<>();
+            // 对数据进行处理
+            for (int i = 2; i < readAll.size(); i++) {
+                SmzkDetailVo xmzhtjDetailVo = new SmzkDetailVo();
+                for (int j = 0; j < readAll.get(i).size(); j++) {
+                    if (j == 0){
+                        xmzhtjDetailVo.setNumber(Integer.parseInt(readAll.get(i).get(j).toString()));
+                    }
+                    if (j == 1){
+                        xmzhtjDetailVo.setId(readAll.get(i).get(j).toString());
+                    }
+                    if (j == 2){
+                        xmzhtjDetailVo.setSubName(readAll.get(i).get(j).toString());
+                    }
+                    if (j == 3){
+                        xmzhtjDetailVo.setSubjectId(readAll.get(i).get(j).toString());
+                    }
+                    if (j == 4){
+                        xmzhtjDetailVo.setContent(readAll.get(i).get(j).toString());
+                    }
+                    if (j == 5){
+                        xmzhtjDetailVo.setAmtTotal(BigDecimal.valueOf((Double) readAll.get(i).get(j)));
+                    }
+                    if (j == 6){
+                        xmzhtjDetailVo.setIndusKind(readAll.get(i).get(j).toString());
+                    }
+                    if (j == 7){
+                        xmzhtjDetailVo.setCbStatus(readAll.get(i).get(j).toString());
+                    }
+                    if (j == 8){
+                        // 如果不为null才进行解析
+                        if (readAll.get(i).get(j) != null) {
+                            try {
+                                xmzhtjDetailVo.setBeginDate(DateUtil.parseDate(readAll.get(i).get(j).toString()));
+                            }catch (Exception e){
+                                throw new RuntimeException("导入失败,第" + (i+1) + "行,时间格式有问题!" + readAll.get(i).get(j));
+                            }
+                        }else {
+                            xmzhtjDetailVo.setBeginDate(null);
+                        }
+                    }
+                    if (j == 9){
+                        if (readAll.get(i).get(j) != null) {
+                            try {
+                                xmzhtjDetailVo.setEndDate(DateUtil.parseDate(readAll.get(i).get(j).toString()));
+                            }catch (Exception e){
+                                throw new RuntimeException("导入失败,第" + (i+1) + "行,时间格式有问题!" + readAll.get(i).get(j));
+                            }
+                        }else {
+                            xmzhtjDetailVo.setEndDate(null);
+                        }
+                    }
+                    if (j == 10){
+                        xmzhtjDetailVo.setProgress(readAll.get(i).get(j).toString());
+                    }
+                    if (j == 11){
+                        xmzhtjDetailVo.setRemark(readAll.get(i).get(j).toString());
+                    }
+                }
+                list.add(xmzhtjDetailVo);
+            }
+
+            // 获取行业
+            List<SubIndu> subInduList = Optional.ofNullable(
+                    subInduService.selectAllSubIndu()
+            ).orElse(Collections.emptyList());
+
+            // 获取项目地点
+            List<TSystable> sbddList = Optional.ofNullable(
+                    tSysTableService.getByKind(SysTableKind.JSDD)
+            ).orElse(Collections.emptyList());
+
+            for (int i = 0; i < list.size(); i++) {
+
+                SmzkDetailVo smzkDetailVo = list.get(i);
+
+                // 判断id,id不能为空
+                if (StringUtil.isEmpty(smzkDetailVo.getId())){
+                    throw new RuntimeException("导入失败,第" + (i+3) + "行,项目编号不能为空");
+                }else {
+                    // 查找sub_info表,根据id查询,如果不存在报错
+                    Integer count = subInfoMapper.selectById(smzkDetailVo.getId());
+                    if (count == 0){
+                        throw new RuntimeException("导入失败,第" + (i+3) + "行,项目编号不存在");
+                    }
+                }
+
+
+                if (smzkDetailVo.getId() == null){
+                    throw new RuntimeException("导入失败,第" + (i+3) + "行,项目编号不能为空");
+                }
+
+                // 项目所在地,不能为空,必须在【伊州区,巴里坤县,伊吾县,高新区】里选择,其他的所有区县都是要提示出来,包括【市本级】,也不能有
+                if (StringUtil.isNotEmpty(smzkDetailVo.getSubjectId())){
+                    if("市本级".equals(smzkDetailVo.getSubjectId())){
+                        throw new RuntimeException("导入失败,第" + (i+3) + "行,项目所在地为市本级,请检查");
+                    }
+                    String sbdw = smzkDetailVo.getSubjectId();
+                    Optional<TSystable> first = sbddList.stream().filter(item -> item.getTitle().equals(sbdw)).findFirst();
+                    if (first.isPresent()) {
+                        smzkDetailVo.setSubjectId(first.get().getCode());
+                    }else {
+                        throw new RuntimeException("导入失败,第" + (i+3) + "行,项目所在地为" + sbdw + ",请检查");
+                    }
+                }else {
+                    throw new RuntimeException("导入失败,第" + (i+3) + "行,项目所在地不能为空");
+                }
+
+                // 项目金额不能为空,需要将单位亿元转为万元
+                if (smzkDetailVo.getAmtTotal() == null){
+                    throw new RuntimeException("导入失败,第" + (i+3) + "行,项目金额不能为空");
+                }else if (smzkDetailVo.getAmtTotal().compareTo(new BigDecimal("0")) == 0){
+                    throw new RuntimeException("导入失败,第" + (i+3) + "行,项目金额不能为0");
+                }else {
+                    smzkDetailVo.setAmtTotal(smzkDetailVo.getAmtTotal().multiply(new BigDecimal("1000")));
+                }
+
+                // 行业分类不能为空,判断行业必须存在,存在后取id保存
+                if (StringUtil.isNotEmpty(smzkDetailVo.getIndusKind())){
+                    Optional<SubIndu> first = subInduList.stream().filter(item -> item.getTitle().equals(smzkDetailVo.getIndusKind())).findFirst();
+                    if (first.isPresent()) {
+                        smzkDetailVo.setIndusKind(first.get().getCode());
+                    }else {
+                        throw new RuntimeException("导入失败,第" + (i+3) + "行,行业分类为" + smzkDetailVo.getIndusKind() + ",不存在请检查");
+                    }
+                }else {
+                    throw new RuntimeException("导入失败,第" + (i+3) + "行,行业分类不能为空");
+                }
+
+                // 状态,可以为空,如果非空时,必须为【正在谋划,正在洽谈,已签约,已备案/已核准】这4种里的一个,其他的所有都提示出来;
+                if (StringUtil.isNotEmpty(smzkDetailVo.getCbStatus())){
+                    // 校验状态字段是否符合预期
+                    List<String> validStatuses = Arrays.asList("正在谋划", "正在洽谈", "已签约", "已备案/已核准");
+                    if (!validStatuses.contains(smzkDetailVo.getCbStatus())) {
+                        throw new RuntimeException("导入失败,第" + (i + 3) + "行,状态为" + smzkDetailVo.getCbStatus() + ",不存在请检查");
+                    }
+                    if (smzkDetailVo.getCbStatus().equals("正在谋划")){
+                        smzkDetailVo.setCbStatus("1");
+                    }else if (smzkDetailVo.getCbStatus().equals("正在洽谈")){
+                        smzkDetailVo.setCbStatus("2");
+                    }else if (smzkDetailVo.getCbStatus().equals("已签约")){
+                        smzkDetailVo.setCbStatus("3");
+                    }else if (smzkDetailVo.getCbStatus().equals("已备案/已核准")){
+                        smzkDetailVo.setCbStatus("4");
+                    }
+                }
+
+                // 项目名称和建设内容都不能为空
+                if (StringUtil.isEmpty(smzkDetailVo.getSubName())){
+                    throw new RuntimeException("导入失败,第" + (i+3) + "行,项目名称不能为空");
+                }
+                if (StringUtil.isEmpty(smzkDetailVo.getContent())){
+                    throw new RuntimeException("导入失败,第" + (i+3) + "行,建设内容不能为空");
+                }
+            }
+
+            subInfoMapper.batchUpdate(list);
+        }
+    }
+
     private Map<String, Object> getStringObjectMap(List<WorkBenchVO> list) {
         Map<String, Object> resultMap = new HashMap<>();
         if (CollectionUtil.isNotEmpty(list)){

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

@@ -118,11 +118,11 @@ public class WorkBenchServiceImpl implements WorkBenchService {
 		Long withinNum = subInfoService.queryExceedWithin();
 		// 红灯超期超过3天
 		Long outsideNum = subInfoService.queryExceedOutside();
-		map.put("warningNum", warningNum);
-		map.put("exceedNum", exceedNum);
-		map.put("notExceedNum", notExceedNum);
-		map.put("withinNum", withinNum);
-		map.put("outsideNum", outsideNum);
+		map.put("warningNum", warningNum.intValue());
+		map.put("exceedNum", exceedNum.intValue());
+		map.put("notExceedNum", notExceedNum.intValue());
+		map.put("withinNum", withinNum.intValue());
+		map.put("outsideNum", outsideNum.intValue());
 		return map;
 	}
 

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

@@ -350,6 +350,8 @@ public class SubInfoQueryTzVO {
 
     //投资类型
     private String kindNatures;
+    // 储备项目状态
+    private String cbStatus;
 
 
     //所属行业

+ 35 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/export/SmzkDetailVo.java

@@ -0,0 +1,35 @@
+package com.rtrh.projects.modules.projects.vo.export;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class SmzkDetailVo {
+
+    private Integer number;     //序号
+
+    private String id;      //项目id
+
+    private String subName; //项目名称
+
+    private String subjectId;   //项目所在地
+
+    private String content; //项目内容
+
+    private BigDecimal amtTotal;    //总金额(亿元)
+
+    private String indusKind;   //行业名称
+
+    private String cbStatus;  //项目库
+
+    private Date beginDate; //计划开始日期
+
+    private Date endDate;   //计划投产日期
+
+    private String progress;    //进展情况
+
+    private String remark;  //备注
+
+}

+ 8 - 2
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/export/SubInfoZjVO.java

@@ -4,6 +4,8 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 
 @Data
@@ -13,12 +15,16 @@ public class SubInfoZjVO extends SubInfoBaseDetailVo {
     @Excel(name = "建成投产时间", format = "yyyy年MM月", width = 15.0, orderNum = "5")
     private Date endDate;
 
-    @Excel(name = "年度投资", orderNum = "6")
-    private String yearPlanAmt;
+    @Excel(name = "年度投资(亿元)", orderNum = "6")
+    private BigDecimal yearPlanAmt;
 
     @Excel(name = "进展情况", width = 30.0, orderNum = "7")
     private String progress;
 
     @Excel(name = "备注", width = 30.0, orderNum = "8")
     private String remark;
+
+    public BigDecimal getYearPlanAmt() {
+        return this.yearPlanAmt != null ? this.yearPlanAmt.divide(new BigDecimal(10000), 2, RoundingMode.HALF_UP) : null;
+    }
 }

+ 1 - 4
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/export/SubInfoZkVO.java

@@ -1,16 +1,13 @@
 package com.rtrh.projects.modules.projects.vo.export;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 
 import java.math.BigDecimal;
 import java.util.Date;
 
 @Data
-@EqualsAndHashCode(callSuper = true)
-public class SubInfoZkVO extends SubInfoBaseDetailVo {
+public class SubInfoZkVO {
     @Excel(name = "序号")
     private String index;
 

+ 119 - 96
projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/JUnitServiceImpl.java

@@ -1,12 +1,18 @@
 package com.rtrh.projects.modules.system.service.impl;
 
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.rtrh.projects.modules.projects.mapper.JUnitMapper;
+import com.rtrh.projects.modules.projects.po.SubInfoGxj;
 import com.rtrh.projects.util.TargetDataSource;
+import com.rtrh.projects.vo.projects.JUnitVO;
+import org.apache.ibatis.annotations.Param;
 import org.hibernate.criterion.Criterion;
 import org.hibernate.criterion.DetachedCriteria;
 import org.hibernate.criterion.MatchMode;
@@ -73,50 +79,54 @@ public class JUnitServiceImpl implements JUnitService {
 	}
 
 	@Override
+	@TargetDataSource("secondary")
 	public Page getListById(Page page, String id, String unitPropId, String unitKindId, String title, String startDate, String endDate,String status) {
-		StringBuffer sql=new StringBuffer();
-		sql.append("select a.id,a.reason,a.title,a.kind_unit  kindUnit,a.area,a.amt,a.date_found dateFound,a.group_code1,a.group_code2,a.trust_code trustCode,a.`status`,a.name_jur1 nameJur1,a.sim_code simCode ,b.title unitKindName,c.title unitPropName from j_unit a  ");
-		sql.append("LEFT JOIN t_systable b on a.unit_kind_id=b.id  ");
-		sql.append("LEFT JOIN t_systable c on a.unit_prop_id=c.id  where a.logic_delete_flag=0 ");
-		if (StringUtil.isNotEmpty(id)){
-			sql.append(" and a.id='"+ id+"' ");
-		}
-		if (StringUtil.isNotEmpty(unitPropId)){
-			sql.append(" and a.unit_prop_id='"+ unitPropId+"' ");
-		}
-		if (StringUtil.isNotEmpty(unitKindId)){
-			sql.append(" and a.unit_kind_id='"+ unitKindId+"' ");
-		}
-		if (StringUtil.isNotEmpty(title)){
-			sql.append(" and a.title  like '%"+title+"%' ");
-		}
-		if (StringUtil.isNotEmpty(startDate)){
-			sql.append(" and a.date_found >='"+ startDate+"' ");
-		}
-		if (StringUtil.isNotEmpty(endDate)){
-			sql.append(" and a.date_found <='"+ endDate+"' ");
-		}
-		if (StringUtil.isNotEmpty(status)){
-			sql.append(" and a.status ='"+ status+"' ");
-		}
-
-		Page page1=jUnitDao.getListById(sql.toString(),page);
-
-		for (int i=0;i<page1.getList().size();i++){
-			Map<String,Object> map= (Map<String, Object>) page1.getList().get(i);
-			if ("2".equals(map.get("status"))){
-				map.put("status","已审核");
-			}else if ("3".equals(map.get("status"))){
-				map.put("status","不同意");
-			}else if ("0".equals(map.get("status"))){
-				map.put("status","暂存");
-			}else{
-				map.put("status","待审核");
+		// StringBuffer sql=new StringBuffer();
+		// sql.append("select a.id,a.reason,a.title,a.kind_unit  kindUnit,a.area,a.amt,a.date_found dateFound,a.group_code1,a.group_code2,a.trust_code trustCode,a.`status`,a.name_jur1 nameJur1,a.sim_code simCode ,b.title unitKindName,c.title unitPropName from j_unit a  ");
+		// sql.append("LEFT JOIN t_systable b on a.unit_kind_id=b.id  ");
+		// sql.append("LEFT JOIN t_systable c on a.unit_prop_id=c.id  where a.logic_delete_flag=0 ");
+		// if (StringUtil.isNotEmpty(id)){
+		// 	sql.append(" and a.id='"+ id+"' ");
+		// }
+		// if (StringUtil.isNotEmpty(unitPropId)){
+		// 	sql.append(" and a.unit_prop_id='"+ unitPropId+"' ");
+		// }
+		// if (StringUtil.isNotEmpty(unitKindId)){
+		// 	sql.append(" and a.unit_kind_id='"+ unitKindId+"' ");
+		// }
+		// if (StringUtil.isNotEmpty(title)){
+		// 	sql.append(" and a.title  like '%"+title+"%' ");
+		// }
+		// if (StringUtil.isNotEmpty(startDate)){
+		// 	sql.append(" and a.date_found >='"+ startDate+"' ");
+		// }
+		// if (StringUtil.isNotEmpty(endDate)){
+		// 	sql.append(" and a.date_found <='"+ endDate+"' ");
+		// }
+		// if (StringUtil.isNotEmpty(status)){
+		// 	sql.append(" and a.status ='"+ status+"' ");
+		// }
+		//
+		// Page page1=jUnitDao.getListById(sql.toString(),page);
+
+		PageHelper.startPage(page.getPageNo(), page.getPageSize());
+		List<Map<String, Object>>  data = jUnitMapper.getListById(id, unitPropId, unitKindId, title, startDate, endDate, status);
+		PageInfo<Map<String, Object>> pageInfo = new PageInfo<Map<String, Object>>(data);
+		page.setList(data);
+		page.setTotalCount(pageInfo.getTotal());
+		for (int i = 0; i < page.getList().size(); i++) {
+			Map<String, Object> map = (Map<String, Object>) page.getList().get(i);
+			if ("2".equals(map.get("status"))) {
+				map.put("status", "已审核");
+			} else if ("3".equals(map.get("status"))) {
+				map.put("status", "不同意");
+			} else if ("0".equals(map.get("status"))) {
+				map.put("status", "暂存");
+			} else {
+				map.put("status", "待审核");
 			}
-
 		}
-//		getListById(page,teamShiroUser.getUnitId(),unitPropId,unitKindId,title,startDate,endDate);
-		return page1;
+		return page;
 	}
 
 	@Override
@@ -182,64 +192,77 @@ public class JUnitServiceImpl implements JUnitService {
 	}
 
 	@Override
+	@TargetDataSource("secondary")
 	public Page getListBySubInfoId(Page page, String id, String unitPropId, String unitKindId, String title, String startDate, String endDate,String status,String statusUnit) {
-		StringBuffer sql=new StringBuffer();
-		//stautsUnit=1  查看所有信息
-		if ("1".equals(statusUnit)){
-			sql.append("select a.id,a.title,a.kind_unit  kindUnit,a.reason,a.area,a.amt,a.date_found dateFound,a.group_code1,a.group_code2,a.trust_code trustCode,a.`status`,a.name_jur1 nameJur1,a.sim_code simCode ,b.title unitKindName,c.title unitPropName from j_unit a  ");
-			sql.append("LEFT JOIN t_systable b on a.unit_kind_id=b.id  ");
-			sql.append("LEFT JOIN t_systable c on a.unit_prop_id=c.id  where a.logic_delete_flag=0 and a.kind=1 ");
-
-			if (StringUtil.isNotEmpty(unitPropId)){
-				sql.append(" and a.unit_prop_id='"+ unitPropId+"' ");
-			}
-			if (StringUtil.isNotEmpty(unitKindId)){
-				sql.append(" and a.unit_kind_id='"+ unitKindId+"' ");
-			}
-			if (StringUtil.isNotEmpty(title)){
-				sql.append(" and a.title  like '%"+title+"%' ");
-			}
-			if (StringUtil.isNotEmpty(startDate)){
-				sql.append(" and a.date_found >='"+ startDate+"' ");
-			}
-			if (StringUtil.isNotEmpty(endDate)){
-				sql.append(" and a.date_found <='"+ endDate+"' ");
-			}
-			if (StringUtil.isNotEmpty(status)){
-				sql.append(" and a.status ='"+ status+"' ");
-			}
-		}else{
-			sql.append("select a.id,a.title ,a.reason,a.kind_unit  kindUnit,a.area,a.amt,a.date_found dateFound,a.group_code1,a.group_code2,a.trust_code trustCode,a.`status`,a.name_jur1 nameJur1,a.sim_code simCode ,b.title unitKindName,c.title unitPropName from j_unit a  ");
-			sql.append("LEFT JOIN t_systable b on a.unit_kind_id=b.id  ");
-			sql.append("LEFT JOIN t_systable c on a.unit_prop_id=c.id  where a.logic_delete_flag=0 and a.kind=1 ");
-			if (StringUtil.isNotEmpty(id)){
-				sql.append(" and (a.id in(select d.unit_id from sub_info d where d.main_id='"+ id+"' )  ");
-				sql.append(" OR a.id in( SELECT f.unit_id  FROM sub_info f LEFT JOIN sub_manage e ON e.sub_id = f.id WHERE e.manage_id ='"+id+"' ))");
-			}
-			if (StringUtil.isNotEmpty(unitPropId)){
-				sql.append(" and a.unit_prop_id='"+ unitPropId+"' ");
-			}
-			if (StringUtil.isNotEmpty(unitKindId)){
-				sql.append(" and a.unit_kind_id='"+ unitKindId+"' ");
-			}
-			if (StringUtil.isNotEmpty(title)){
-				sql.append(" and a.title  like '%"+title+"%' ");
-			}
-			if (StringUtil.isNotEmpty(startDate)){
-				sql.append(" and a.date_found >='"+ startDate+"' ");
-			}
-			if (StringUtil.isNotEmpty(endDate)){
-				sql.append(" and a.date_found <='"+ endDate+"' ");
-			}
-			if (StringUtil.isNotEmpty(status)){
-				sql.append(" and a.status ='"+ status+"' ");
-			}
+		// StringBuffer sql=new StringBuffer();
+		// //stautsUnit=1  查看所有信息
+		// if ("1".equals(statusUnit)){
+		// 	sql.append("select a.id,a.title,a.kind_unit  kindUnit,a.reason,a.area,a.amt,a.date_found dateFound,a.group_code1,a.group_code2,a.trust_code trustCode,a.`status`,a.name_jur1 nameJur1,a.sim_code simCode ,b.title unitKindName,c.title unitPropName from j_unit a  ");
+		// 	sql.append("LEFT JOIN t_systable b on a.unit_kind_id=b.id  ");
+		// 	sql.append("LEFT JOIN t_systable c on a.unit_prop_id=c.id  where a.logic_delete_flag=0 and a.kind=1 ");
+		//
+		// 	if (StringUtil.isNotEmpty(unitPropId)){
+		// 		sql.append(" and a.unit_prop_id='"+ unitPropId+"' ");
+		// 	}
+		// 	if (StringUtil.isNotEmpty(unitKindId)){
+		// 		sql.append(" and a.unit_kind_id='"+ unitKindId+"' ");
+		// 	}
+		// 	if (StringUtil.isNotEmpty(title)){
+		// 		sql.append(" and a.title  like '%"+title+"%' ");
+		// 	}
+		// 	if (StringUtil.isNotEmpty(startDate)){
+		// 		sql.append(" and a.date_found >='"+ startDate+"' ");
+		// 	}
+		// 	if (StringUtil.isNotEmpty(endDate)){
+		// 		sql.append(" and a.date_found <='"+ endDate+"' ");
+		// 	}
+		// 	if (StringUtil.isNotEmpty(status)){
+		// 		sql.append(" and a.status ='"+ status+"' ");
+		// 	}
+		// }else{
+		// 	sql.append("select a.id,a.title ,a.reason,a.kind_unit  kindUnit,a.area,a.amt,a.date_found dateFound,a.group_code1,a.group_code2,a.trust_code trustCode,a.`status`,a.name_jur1 nameJur1,a.sim_code simCode ,b.title unitKindName,c.title unitPropName from j_unit a  ");
+		// 	sql.append("LEFT JOIN t_systable b on a.unit_kind_id=b.id  ");
+		// 	sql.append("LEFT JOIN t_systable c on a.unit_prop_id=c.id  where a.logic_delete_flag=0 and a.kind=1 ");
+		// 	if (StringUtil.isNotEmpty(id)){
+		// 		sql.append(" and (a.id in(select d.unit_id from sub_info d where d.main_id='"+ id+"' )  ");
+		// 		sql.append(" OR a.id in( SELECT f.unit_id  FROM sub_info f LEFT JOIN sub_manage e ON e.sub_id = f.id WHERE e.manage_id ='"+id+"' ))");
+		// 	}
+		// 	if (StringUtil.isNotEmpty(unitPropId)){
+		// 		sql.append(" and a.unit_prop_id='"+ unitPropId+"' ");
+		// 	}
+		// 	if (StringUtil.isNotEmpty(unitKindId)){
+		// 		sql.append(" and a.unit_kind_id='"+ unitKindId+"' ");
+		// 	}
+		// 	if (StringUtil.isNotEmpty(title)){
+		// 		sql.append(" and a.title  like '%"+title+"%' ");
+		// 	}
+		// 	if (StringUtil.isNotEmpty(startDate)){
+		// 		sql.append(" and a.date_found >='"+ startDate+"' ");
+		// 	}
+		// 	if (StringUtil.isNotEmpty(endDate)){
+		// 		sql.append(" and a.date_found <='"+ endDate+"' ");
+		// 	}
+		// 	if (StringUtil.isNotEmpty(status)){
+		// 		sql.append(" and a.status ='"+ status+"' ");
+		// 	}
+		// }
+		// Page page1=jUnitDao.getListById(sql.toString(),page);
+
+
+		PageHelper.startPage(page.getPageNo(), page.getPageSize());
+		List<Map<String, Object>> data;
+		if ("1".equals(statusUnit)) {
+			data = jUnitMapper.getListByIdStatusOne( unitPropId, unitKindId, title, startDate,endDate,status);
+		} else {
+			data = jUnitMapper.getListByIdOtherStatus(id, unitPropId, unitKindId, title, startDate, endDate, status);
 		}
+		PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(data);
+		page.setList(data);
+		page.setTotalCount(pageInfo.getTotal());
 
-		Page page1=jUnitDao.getListById(sql.toString(),page);
 
-		for (int i=0;i<page1.getList().size();i++){
-			Map<String,Object> map= (Map<String, Object>) page1.getList().get(i);
+		for (int i=0;i<page.getList().size();i++){
+			Map<String,Object> map= (Map<String, Object>) page.getList().get(i);
 			if ("2".equals(map.get("status"))){
 				map.put("status","已审核");
 			}else if ("3".equals(map.get("status"))){
@@ -251,7 +274,7 @@ public class JUnitServiceImpl implements JUnitService {
 			}
 		}
 //		getListById(page,teamShiroUser.getUnitId(),unitPropId,unitKindId,title,startDate,endDate);
-		return page1;
+		return page;
 	}
 
 	@Override

+ 24 - 0
projects-service/src/main/java/com/rtrh/projects/vo/projects/JUnitVO.java

@@ -0,0 +1,24 @@
+package com.rtrh.projects.vo.projects;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Setter
+@Getter
+public class JUnitVO {
+    private String id;
+    private String reason;
+    private String title;
+    private String kindUnit;
+    private String area;
+    private String amt;
+    private String dateFound;
+    private String group_code1;
+    private String group_code2;
+    private String trustCode;
+    private String status;
+    private String nameJur1;
+    private String simCode;
+    private String unitKindName;
+    private String unitPropName;
+}

+ 5 - 0
projects-service/src/main/java/com/rtrh/projects/vo/projects/SubFixBeginVo.java

@@ -35,4 +35,9 @@ public class SubFixBeginVo {
 
     private List<SubFixTotalVo> indusKindList;        //行业数量
 
+    private Integer bePlanningNum;  // 正在谋划
+    private Integer negotiationNum;  // 正在洽谈
+    private Integer signedNum;   // 已签约
+    private Integer recordAndApproveNum; // 已备案、已核准
+
 }

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

@@ -16,6 +16,8 @@ public class SubFixGetBeginRateVo {
     private Integer isRg;
     //abcd类项目
     private String abc;
+    // 储备项目状态
+    private String cbStatus;
 
 
 }

+ 10 - 1
projects/src/main/java/com/rtrh/projects/outapi/controller/AuthApiController.java

@@ -6,6 +6,7 @@ import java.util.Objects;
 
 import javax.servlet.http.HttpServletRequest;
 
+import com.rtrh.projects.modules.account.service.CommLoginService;
 import com.rtrh.projects.modules.rolemeun.dao.SecRoleMeunDao;
 import com.rtrh.projects.modules.rolemeun.po.SecRole;
 import com.rtrh.projects.modules.rolemeun.po.SecRoleMeun;
@@ -49,7 +50,8 @@ public class AuthApiController extends BaseOutApiController {
 	private VCodeManager vCodeManager;
 	@Autowired
 	private SecRoleservice secRoleservice;
-
+	@Autowired
+	private CommLoginService commLoginService;
 	/**
 	 * 登录
 	 * @param loginName
@@ -128,6 +130,13 @@ public class AuthApiController extends BaseOutApiController {
 			String tokenApp = jwtUtils.createToken(user);
 			result.setData("token",tokenApp);
 
+			// 记录登录日志
+			// String ip = RemoteUtil.getIpAddress(request);
+			// String city = RemoteUtil.getCity(ip);
+			// String ua = request.getHeader("User-Agent");
+			// commLoginService.logRecord(ip, user.getLogin(), city, ua, null, true);
+
+
 			Boolean isLead=user.getIsLead()==null?false:user.getIsLead();
 
 			String roleCode="";

+ 1 - 0
projects/src/main/java/com/rtrh/projects/web/base/WebBootModeServlet.java

@@ -8,6 +8,7 @@ import java.io.UnsupportedEncodingException;
 import java.text.ParseException;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.ResourceBundle;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;

+ 1 - 1
projects/src/main/java/com/rtrh/projects/web/controller/fileSystem/FileGetController.java

@@ -162,7 +162,7 @@ public class FileGetController {
 					// 创建一个HttpGet请求
 					ResourceBundle resourceBundle = ResourceBundle.getBundle("config");
 					// 拼接 B 系统的 URL
-					String url = resourceBundle.getString("app.fgw.url");
+					String url = resourceBundle.getString("app.fgw.in.url");
 					url = url + "/static/file/"+fileId;
 					// 创建一个HttpGet请求
 					HttpGet request = new HttpGet(url);

+ 1 - 1
projects/src/main/java/com/rtrh/projects/web/controller/fileSystem/FilePostController.java

@@ -188,7 +188,7 @@ public class FilePostController {
 						// 创建一个HttpGet请求
 						ResourceBundle resourceBundle = ResourceBundle.getBundle("config");
 						// 拼接 B 系统的 URL
-						String url = resourceBundle.getString("app.fgw.url");
+						String url = resourceBundle.getString("app.fgw.in.url");
 						url = url + "/static/file/saveOfficialDocument";
 						HttpPost request = new HttpPost(url);
 						// 设置请求头,指明内容类型为JSON

+ 1 - 1
projects/src/main/java/com/rtrh/projects/web/controller/passport/LogoutController.java

@@ -28,7 +28,7 @@ public class LogoutController {
 		//重定向到首页
 		// return new ModelAndView("redirect:/");
 		ResourceBundle resourceBundle = ResourceBundle.getBundle("config");
-		String url = resourceBundle.getString("app.fgw.url");
+		String url = resourceBundle.getString("app.fgw.in.url");
 		return new ModelAndView("redirect:"+url);
 	}
 }

+ 2 - 2
projects/src/main/java/com/rtrh/projects/web/controller/passport/api/RegisterApiController.java

@@ -133,7 +133,7 @@ public class RegisterApiController extends BaseController{
 			else{
 				//查询管理项目下的数据
 				if(StringUtil.isNotEmpty(teamShiroUser.getUnitId())){
-					SecUser secUser= secUserService.getById(teamShiroUser.getId());
+					SecUser secUser= secUserService.getByFgwId(teamShiroUser.getId());
 					Page page1=jUnitService.getListBySubInfoId(page,teamShiroUser.getUnitId(),vo.getUnitPropId(),vo.getUnitKindId(),vo.getTitle(),vo.getStartDate(),vo.getEndDate(),vo.getStatus(),secUser.getStatusUnit());
 					message.add(page1.getList(),page1.getTotalCount());
 					message.setData("2");
@@ -147,7 +147,7 @@ public class RegisterApiController extends BaseController{
 //			message.add(pageData.getList(), pageData.getTotalCount());
 		} catch (Exception e) {
 			logger.error("",e);
-			message.add("获取失败");
+			// message.add(e.getMessage());
 		}
 		return message;
 	}

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

@@ -135,7 +135,7 @@ public class SubPreNewController extends BaseController {
 	 * @param subId
 	 * @return
 	 */
-	@Log("用户点击项目前期管理-项目信息申报-办理情况按钮")
+	@Log("页面:【项目前期管理-项目信息申报】,执行操作:查看办理情况")
 	@GetMapping("sbTodo")
 	public ModelAndView sbTodo(ModelMap model, String subId) {
 		model.put("subId", subId);

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

@@ -91,7 +91,7 @@ public class TzfxApiController extends BaseController {
 	 * 获取统计分析页面数据
 	 * @return
 	 */
-	@Log("用户查询统计分析数据")
+	@Log("页面:【统计分析】,执行操作:查询")
 	@PostMapping("getTjfxData")
 	public Message getTjfxData(@RequestBody TzfxDataQueryVO queryVO) {
 		Message message = new Message();
@@ -108,7 +108,7 @@ public class TzfxApiController extends BaseController {
 	/**
 	 * 项目转换统计列表数据
 	 */
-	@Log("用户查询项目转换统计数据")
+	@Log("页面:【系统管理-项目转换情况】,执行操作:查询")
 	@PostMapping("/getXmzhtjData")
 	public ListMessage getXmzhtjData(@RequestBody Page page, @RequestBody RegisterListVO vo) {
 		ListMessage message = new ListMessage();
@@ -126,7 +126,7 @@ public class TzfxApiController extends BaseController {
 	/**
 	 * 项目转换统计详情数据
 	 */
-	@Log("用户查询项目转换统计详情数据")
+	@Log("页面:【系统管理-项目转换情况】,执行操作:查询明细")
 	@PostMapping("getXmzhtjDetailData")
 	public ListMessage getXmzhtjDetailData(@RequestBody Page page, @RequestBody XmzhtjDetailVo queryVO) {
 		ListMessage message = new ListMessage();

+ 4 - 4
projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoController.java

@@ -142,7 +142,7 @@ public class SubInfoController extends BaseController {
      * @param model
      * @return
      */
-    @Log("用户查看项目前期管理-前期手续办理情况-按部门统计")
+    @Log("页面:【项目前期管理-前期手续办理情况】,执行操作:查看部门统计情况")
     @GetMapping("reportDepartment")
     public ModelAndView reportDepartment(ModelMap model) {
         List<Map<String, Object>> unit = jUnitService.getCheckUnit();
@@ -157,7 +157,7 @@ public class SubInfoController extends BaseController {
      * @param model
      * @return
      */
-    @Log("用户查看项目前期管理-前期手续办理情况-按办理手续统计")
+    @Log("页面:【项目前期管理-前期手续办理情况】,执行操作:查看办理手续统计情况")
     @GetMapping("reportFile")
     public ModelAndView reportFile(ModelMap model) {
         List<JUnit> unit = jUnitService.getUnitByKind(JUnitKind.ZFDW);
@@ -171,7 +171,7 @@ public class SubInfoController extends BaseController {
      * @param model
      * @return
      */
-    @Log("用户查看项目前期管理-前期手续办理情况-按项目统计")
+    @Log("页面:【项目前期管理-前期手续办理情况】,执行操作:查看项目统计情况")
     @GetMapping("reportProject")
     public ModelAndView reportProject(ModelMap model) {
         List<JUnit> unit = jUnitService.getUnitByKind(JUnitKind.ZFDW);
@@ -327,7 +327,7 @@ public class SubInfoController extends BaseController {
                 //重点项目对外展示页面
                 return new ModelAndView("/vmodules/subject/subInfo/tz/major_out.jsp");
             case "yearSum":
-                //年度固定资产项目库 - 新建项目
+                //重点项目调度  -  投产项目
                 return new ModelAndView("/vmodules/subject/subInfo/tz/year_sum.jsp");
             case "yearNew":
                 //年度固定资产项目库 - 新建项目

+ 84 - 32
projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java

@@ -19,6 +19,7 @@ import cn.afterturn.easypoi.handler.inter.IExcelExportServer;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.io.IoUtil;
+import cn.hutool.poi.excel.ExcelReader;
 import cn.hutool.poi.excel.ExcelUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.EasyExcelFactory;
@@ -31,12 +32,14 @@ import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy
 import com.google.common.collect.Lists;
 import com.rtrh.common.util.StringUtil;
 import com.rtrh.core.vo.ListMessage;
+import com.rtrh.core.vo.Message;
 import com.rtrh.projects.modules.projects.dao.SubSourceDao;
 import com.rtrh.projects.modules.projects.enums.ProjectStatusEnum;
 import com.rtrh.projects.modules.projects.enums.SubInfoStatusEnum;
 import com.rtrh.projects.modules.projects.po.SubIndu;
 import com.rtrh.projects.modules.projects.po.SubInfoGxj;
 import com.rtrh.projects.modules.projects.vo.SubInfoTotalExcel;
+import com.rtrh.projects.modules.projects.vo.XmzhtjDetailVo;
 import com.rtrh.projects.modules.projects.vo.export.*;
 import com.rtrh.projects.modules.system.service.ISubInduService;
 import com.rtrh.projects.modules.utils.CustomCellWriteWidthStrategy;
@@ -61,10 +64,8 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.servlet.ModelAndView;
 
 import com.rtrh.common.util.CollectionUtil;
@@ -643,7 +644,7 @@ public class SubInfoExportController extends BaseController {
      * @param response
      * @param vo
      */
-    @Log("用户点击项目汇总导出按钮,导出重点库项目汇总信息")
+    @Log("页面:【重点项目调度】,执行操作:导出汇总")
     @PostMapping("/exportFixTotalExcel")
     public void exportFixTotalExcel(@RequestBody SubInfoQueryTzVO vo) {
 
@@ -875,7 +876,6 @@ public class SubInfoExportController extends BaseController {
     /**
      * 4库/总库 导出明细
      *
-     * @param response
      */
     @PostMapping("/exportDetailExcel")
     public void exportDetailExcel(@RequestBody SubInfoQueryTzVO queryVO) {
@@ -943,6 +943,7 @@ public class SubInfoExportController extends BaseController {
             workbook = ExcelExportUtil.exportExcel(exportParams, SubInfoTcVO.class, exportList);
             extracted(response, list, workbook, allSize);
         } else {
+            // 项目总库
             List<SubInfoZkVO> exportList = new ArrayList<>();
             // 合计行
             SubInfoZkVO hjCount = new SubInfoZkVO();
@@ -977,32 +978,83 @@ public class SubInfoExportController extends BaseController {
             exportParams.setStyle(ExcelStyleUtil.class);
             // exportParams.setHeight((short) -1);
             workbook = ExcelExportUtil.exportExcel(exportParams, SubInfoZkVO.class, exportList);
-            // workbook = ExcelExportUtil.exportBigExcel(exportParams, SubInfoZkVO.class, new IExcelExportServer() {
-            //     /**
-            //      * obj 就是下面的限制条件
-            //      * page 是页数,他是在分页进行文件转换,page每次+1
-            //      */
-            //     @Override
-            //     public List<Object> selectListForExcelExport(Object obj, int page) {
-            //         int pageSize = 100;
-            //         int fromIndex = (page - 1) * pageSize;
-            //         int toIndex = Math.min(fromIndex + pageSize, exportList.size());
-            //
-            //         // 如果 fromIndex 超过了列表大小,返回空列表
-            //         if (fromIndex >= exportList.size()) {
-            //             return null;
-            //         }
-            //         // 使用 subList 方法获取分页后的子列表
-            //         List<Object> list1 = new ArrayList<>();
-            //         List<SubInfoZkVO> zkVOList = exportList.subList(fromIndex, toIndex);
-            //         list1.addAll(zkVOList);
-            //         return list1;
-            //     }
-            // }, (exportList.size() / 10000) + 1);
             extracted(response, list, workbook, allSize);
         }
     }
 
+    /**
+     * 导出重点项目储备明细表
+     *
+     * @param vo
+     */
+    @Log("页面:【项目四库管理-项目总库】,执行操作:导出明细")
+    @PostMapping("/exportXmzkDetailExcel")
+    public void exportXmzkDetailExcel(@RequestBody SubInfoQueryTzVO vo) throws IOException {
+
+        // 设置响应头
+        response.setContentType("application/vnd.ms-excel;charset=utf-8");
+        response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("项目总库-明细数据.xlsx", "UTF-8"));
+
+        try (cn.hutool.poi.excel.ExcelWriter writer = ExcelUtil.getBigWriter();
+             ServletOutputStream out = response.getOutputStream()) {
+
+            // 获取数据
+            List<String> subjectIds = getSubjectIds();
+            List<SmzkDetailVo> subInfoTotalExcel = subInfoService.exportSmzkDetailExcel(vo,subjectIds);
+
+            // 写入标题行
+            writer.writeHeadRow(CollUtil.newArrayList("“四个一批”工业项目表(项目总库)"));
+            writer.merge(0, 0, 0, 11, "“四个一批”工业项目表(项目总库)", true);
+
+            // 写入子标题行
+//            writer.writeHeadRow(CollUtil.newArrayList("序号", "项目id", "项目库", "项目代码", "项目名称", "总金额(亿元)", "计划开始日期", "计划投产日期", "行业名称", "状态"));
+
+            writer.addHeaderAlias("number", "序号");
+            writer.addHeaderAlias("id", "项目id");
+            writer.addHeaderAlias("subName", "项目名称");
+            writer.addHeaderAlias("subjectId", "项目所在地");
+            writer.addHeaderAlias("content", "项目建设内容");
+            writer.addHeaderAlias("amtTotal", "计划总投资(亿元)");
+            writer.addHeaderAlias("indusKind", "行业分类");
+            writer.addHeaderAlias("cbStatus", "状态[正在谋划,正在洽谈,已签约,已备案/已核准]");
+            writer.addHeaderAlias("beginDate", "计划开始日期");
+            writer.addHeaderAlias("endDate", "计划投产日期");
+            writer.addHeaderAlias("progress", "项目进展情况");
+            writer.addHeaderAlias("remark", "备注");
+
+
+            // 设置每列的默认宽度
+            SXSSFSheet sheet = ((SXSSFWorkbook) writer.getWorkbook()).getSheetAt(0);
+            int defaultColumnWidth = 40; // 默认宽度为20个字符
+            for (int i = 0; i < 11; i++) {
+                if (i == 0) {
+                    sheet.setColumnWidth(i, 4 * 256); // 序号列宽度为20个字符
+                    continue;
+                }
+                sheet.setColumnWidth(i, defaultColumnWidth * 256); // 其他列保持默认宽度
+            }
+
+
+
+            //根据合并行进行合并
+            for (int i = 0; i < subInfoTotalExcel.size(); i++) {
+                subInfoTotalExcel.get(i).setNumber(i);
+            }
+
+            //写入行业明细行
+            writer.write(subInfoTotalExcel, true);
+            // 输出到客户端
+            writer.flush(out, true);
+
+        } catch (IOException e) {
+            // 处理 IO 异常
+            handleErrorResponse(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "导出 Excel 文件时出现错误:" + e.getMessage());
+        } catch (Exception e) {
+            // 处理其他异常
+            handleErrorResponse(response, HttpServletResponse.SC_BAD_REQUEST, "请求参数错误或发生其他错误:" + e.getMessage());
+        }
+    }
+
     private <K extends SubInfoBaseDetailVo> void exportDetail(HttpServletResponse response,ExportParams exportParams,Class<K> clazz, List<SubInfoGxj> list, Map<String, String> hyDictMap, Map<String, List<SubInfoGxj>> groupMap) {
         List<K> exportList = new ArrayList<>();
         // 合计行
@@ -1333,7 +1385,7 @@ public class SubInfoExportController extends BaseController {
      * @param response
      * @param vo
      */
-    @Log("用户点击重点项目-新建项目明细表导出按钮,导出重点新建项目明细表信息")
+    @Log("页面:【重点项目调度-新建项目】,执行操作:导出明细")
     @PostMapping("/exportFixXjDetailExcel")
     public void exportFixXjDetailExcel(@RequestBody SubInfoQueryTzVO vo) throws IOException {
         try (cn.hutool.poi.excel.ExcelWriter writer = ExcelUtil.getBigWriter();
@@ -1448,7 +1500,7 @@ public class SubInfoExportController extends BaseController {
      * @param response
      * @param vo
      */
-    @Log("用户点击重点项目-储备项目明细导出按钮,导出重点储备项目明细信息")
+    @Log("页面:【重点项目调度-储备项目】,执行操作:导出明细")
     @PostMapping("/exportFixCbDetailExcel")
     public void exportFixCbDetailExcel(@RequestBody SubInfoQueryTzVO vo) throws IOException {
 
@@ -1548,7 +1600,7 @@ public class SubInfoExportController extends BaseController {
      * @param response
      * @param vo
      */
-    @Log("用户点击重点项目-在建项目明细导出按钮,导出重点在建项目明细信息")
+    @Log("页面:【重点项目调度-在建项目】,执行操作:导出明细")
     @PostMapping("/exportFixZjDetailExcel")
     public void exportFixZjDetailExcel(@RequestBody SubInfoQueryTzVO vo) throws IOException {
 
@@ -1664,7 +1716,7 @@ public class SubInfoExportController extends BaseController {
      * @param response
      * @param vo
      */
-    @Log("用户点击重点项目-投产项目明细表导出按钮,导出重点投产项目明细表信息")
+    @Log("页面:【重点项目调度-投产项目】,执行操作:导出明细")
     @PostMapping("/exportFixTcDetailExcel")
     public void exportFixTcDetailExcel(@RequestBody SubInfoQueryTzVO vo) throws IOException {
 

+ 0 - 52
projects/src/main/java/com/rtrh/projects/web/controller/subject/WorkBenchTwoController.java

@@ -82,59 +82,7 @@ public class WorkBenchTwoController extends BaseController {
 	@GetMapping(value = "/zrWorkBench")
 	public ModelAndView zrWorkBench(ModelMap model) {
 		Map<String, Object> map = workBenchService.statisticData();
-
-		// // 	 进度红灯-前期手续红灯
-		// int preNum = subInfoService.preProcedureExceedSize().size();
-		// String lastMonth = cn.hutool.core.date.DateUtil.format(cn.hutool.core.date.DateUtil.offsetMonth(cn.hutool.core.date.DateUtil.date(), -1), "yyyyMM");
-		// int dayOfMonth = cn.hutool.core.date.DateUtil.dayOfMonth(cn.hutool.core.date.DateUtil.date());
-		// // 	 进度红灯-月报超期红灯
-		// int monthlyNum = dayOfMonth <= 5 ? 0 : subInfoService.queryExceedMonthlySize(lastMonth).size();
-		// // 超期 进度红灯
-		// map.put("exceedNum", Integer.parseInt(map.get("exceedNum").toString()) + preNum + monthlyNum);
-
 		model.putAll(map);
-		// Map<String, Object> numData = workBenchService.getDaiBanData(getCurUser().getKind(), getCurUser().getLoginName());
-		// PreWarnDataQueryVO queryVO=new PreWarnDataQueryVO();
-		// Page preData = subPreNewService.pageDueTime(new Page(), getCurUser().getLoginUser(), queryVO);
-		// Page monthData = subRptContService.pageMonthWarnData(new Page(), getCurUser().getLoginUser(), queryVO);
-		// queryVO.setOpenAndEndStatus("1");
-		// Page openData = subInfoService.pageWarnData(new Page(), getCurUser().getLoginUser(), queryVO);
-		// queryVO.setOpenAndEndStatus("2");
-		// Page endData = subInfoService.pageWarnData(new Page(), getCurUser().getLoginUser(), queryVO);
-		// SubInfoQueryTzVO queryTzVO=new SubInfoQueryTzVO();
-		// queryTzVO.setQueryType("3");
-		// queryTzVO.setOffsetMax(new BigDecimal(-10));
-		// Page pldData = subInfoQueryService.pageCb(new Page(), getCurUser().getLoginUser(), queryTzVO);
-		// Page problemData = subquestioninfoservice.pageQueryQuestionList(new Page(), getCurUser().getLoginUser(), new QuestionQueryVO());
-
-
-/*		map.put("preWarnNum",preData.getTotalCount());
-		map.put("monthWarnNum",monthData.getTotalCount());
-		map.put("openWarnNum",openData.getTotalCount());
-		map.put("endWarnNum",endData.getTotalCount());
-		map.put("pldWarnNum",pldData.getTotalCount());
-		map.put("problemWarnNum",problemData.getTotalCount());*/
-
-		//增加红黄灯穿透数, 项目偏离度
-		// SubInfoQueryTzVO subInfoQueryTzVO=new SubInfoQueryTzVO();
-		// subInfoQueryTzVO.setOpenDate(true);
-		// //20240301  获取 开工红黄灯,	偏离度红黄灯  计划开工前7天黄灯,计划开工前3天红灯;
-		// Page openPage=    subInfoQueryService.pageCb(new Page(),getCurUser().getLoginUser(),subInfoQueryTzVO);
-		// model.put("openNum",openPage.getTotalCount());
-		//
-		// subInfoQueryTzVO.setOpenDate(null);
-		// // 偏离度在-10%到-30%为黄灯,偏离度在-30%以上为红灯。
-		// subInfoQueryTzVO.setOffsetMax(new BigDecimal(-10));
-		// Page offsetPage=    subInfoQueryService.pageCb(new Page(),getCurUser().getLoginUser(),subInfoQueryTzVO);
-		// model.put("offsetNum",offsetPage.getTotalCount());
-		// numData.put("num_2",preData.getTotalCount()+monthData.getTotalCount()+openData.getTotalCount()+endData.getTotalCount()+pldData.getTotalCount());
-		// model.put("numData", numData);
-		// model.put("currKind", getCurUser().getKind());
-		// model.put("overAmount", subInfoDao.getSubAmountForWorkBentch(getCurUser().getLoginUser()));
-		// SecRole role=secRoleDao.findById(getCurUser().getKind());
-		// if(role!=null&&role.getCode().equals("001")){
-		// 	getCurUser().setKindUnit("2");
-		// }
 		model.put("kingUnit",getCurUser().getKindUnit());
 		return new ModelAndView("/vmodules/workBench/zr_gzt.jsp");
 	}

+ 37 - 6
projects/src/main/java/com/rtrh/projects/web/controller/subject/api/SubInfoApiController.java

@@ -1,5 +1,6 @@
 package com.rtrh.projects.web.controller.subject.api;
 
+import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -7,6 +8,8 @@ import java.util.stream.Collectors;
 import cn.afterturn.easypoi.excel.ExcelImportUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.lang.Assert;
+import cn.hutool.poi.excel.ExcelReader;
+import cn.hutool.poi.excel.ExcelUtil;
 import com.rtrh.common.util.Identities;
 import com.rtrh.projects.modules.projects.dao.*;
 import com.rtrh.projects.modules.projects.enums.StatusEnum;
@@ -151,7 +154,7 @@ public class SubInfoApiController extends BaseController {
      * 抓取四库代码到重点项目库中
      *
      */
-    @Log("用户点击自动抓取按钮,抓取数据到重点项目库中")
+    @Log("页面:【重点项目调度】,执行操作:点击自动抓取按钮")
     @PostMapping(value = "/subInfoToSubFix")
     public ListMessage subInfoToSubFix(@RequestBody SubInfoToSubFixVo subInfoToSubFixVo) {
         ListMessage message = new ListMessage();
@@ -168,7 +171,7 @@ public class SubInfoApiController extends BaseController {
     /**
      * 重点项目状态改变
      */
-    @Log("用户更改重点项目状态")
+    @Log("页面:【重点项目调度】,执行操作:更改项目状态")
     @PostMapping(value = "/updateFixeCat/{subInfoId}/{cat}")
     public Message updateFixeCat(@PathVariable String subInfoId,@PathVariable String cat) {
         Message message = new Message();
@@ -181,6 +184,34 @@ public class SubInfoApiController extends BaseController {
         return message;
     }
 
+    /**
+     * 导入重点项目储备明细表
+     *
+     * @param vo
+     */
+    @PostMapping("/importXmzkDetailExcel")
+    public Message importXmzkDetailExcel(@RequestParam("file") MultipartFile file) throws IOException {
+        Message message = new Message();
+        if (file.isEmpty()) {
+            message.addError("文件不能为空");
+            return message;
+        }
+        ExcelReader reader = ExcelUtil.getReader(file.getInputStream());
+        List<List<Object>> readAll = reader.read();
+        try {
+            subInfoService.importXmzkDetailExcel(readAll);
+        } catch (RuntimeException e) {
+            message.addError(e.getMessage());
+            return message;
+        } catch (Exception e) {
+            message.addError("数据解析异常!");
+            return message;
+        }
+        message.add("导入成功");
+        return message;
+
+    }
+
 
 
 
@@ -195,7 +226,7 @@ public class SubInfoApiController extends BaseController {
      * @param beginDateEnd
      * @return
      */
-    @Log("用户查询项目前期管理-项目申报信息数据")
+    @Log("页面:【项目前期管理-项目信息申报】,执行操作:查询")
     @PostMapping(value = "/pageQueryNDataPlus")
     public ListMessage pageQueryNDataPlus(@RequestBody Page page, @RequestBody SubInfoNDataQueryVO queryVO) {
         ListMessage message = new ListMessage();
@@ -1116,7 +1147,7 @@ public class SubInfoApiController extends BaseController {
      * 设置项目取消纳入年度固定资产项目库
      */
     @PostMapping("setIsFix")
-    @Log("重点项目移除重点项目库")
+    @Log("页面:【重点项目调度】,执行操作:取消纳入")
     public Message setBackIsFix(@RequestBody SubIdVO vo) {
         Message message = new Message();
         try {
@@ -1151,7 +1182,7 @@ public class SubInfoApiController extends BaseController {
      * 设置项目取消纳入年度固定资产项目库
      */
     @PostMapping("setIsFixAdd")
-    @Log("用户纳入数据到重点项目库中")
+    @Log("页面:【重点项目调度】,执行操作:纳入数据")
     public Message setIsFixAdd(@RequestBody SubIdVO vo) {
         Message message = new Message();
         try {
@@ -1186,7 +1217,7 @@ public class SubInfoApiController extends BaseController {
      * 设置项目取消纳入年度固定资产项目库
      */
     @PostMapping("setIsFixRemove")
-    @Log("用户移除重点项目库中数据")
+    @Log("页面:【重点项目调度】,执行操作:取消纳入")
     public Message setIsFixRemove(@RequestBody SubIdVO vo) {
         Message message = new Message();
         try {

+ 29 - 7
projects/src/main/java/com/rtrh/projects/web/controller/subject/api/SubInfoQueryApiController.java

@@ -5,17 +5,15 @@ import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
-import com.github.pagehelper.PageInfo;
 import com.rtrh.common.util.StringUtil;
 import com.rtrh.projects.modules.projects.dao.SubCompletedPicDao;
 import com.rtrh.projects.modules.projects.dao.SubSourceDao;
 import com.rtrh.projects.modules.projects.dto.SubFixCbSearch;
+import com.rtrh.projects.modules.projects.enums.SubInfoCbStatusEnum;
 import com.rtrh.projects.modules.projects.enums.SubInfoStatusEnum;
 import com.rtrh.projects.modules.projects.po.SubCompletedPic;
 import com.rtrh.projects.modules.projects.po.SubIndu;
-import com.rtrh.projects.modules.projects.po.SubSource;
 import com.rtrh.projects.modules.projects.vo.StatisticsVO;
-import com.rtrh.projects.modules.projects.vo.SubFixCbVo;
 import com.rtrh.projects.modules.projects.vo.SubSourceVO;
 import com.rtrh.projects.modules.system.enums.SysTableKind;
 import com.rtrh.projects.modules.system.po.TSystable;
@@ -94,7 +92,7 @@ public class SubInfoQueryApiController extends BaseController {
      * @param queryVO
      * @return
      */
-    @Log("用户查询重点项目-储备项目数据")
+    @Log("页面:【重点项目调度-储备项目】,执行操作:查询")
     @PostMapping("subFixGetAllCb")
     public ListMessage subFixGetAllCb(@RequestBody Page page, @RequestBody SubInfoQueryTzVO queryVO) {
         ListMessage message = new ListMessage();
@@ -139,7 +137,7 @@ public class SubInfoQueryApiController extends BaseController {
      * @param queryVO
      * @return
      */
-    @Log("用户查询重点项目-新建项目数据")
+    @Log("页面:【重点项目调度-新建项目】,执行操作:查询")
     @PostMapping("subFixGetAllXj")
     public ListMessage subFixGetAllXj(@RequestBody Page page, @RequestBody SubInfoQueryTzVO queryVO) {
         ListMessage message = new ListMessage();
@@ -184,7 +182,7 @@ public class SubInfoQueryApiController extends BaseController {
      * @param queryVO
      * @return
      */
-    @Log("用户查询重点项目-在建项目数据")
+    @Log("页面:【重点项目调度-在建项目】,执行操作:查询")
     @PostMapping("subFixGetAllZj")
     public ListMessage subFixGetAllZj(@RequestBody Page page, @RequestBody SubInfoQueryTzVO queryVO) {
         ListMessage message = new ListMessage();
@@ -229,7 +227,7 @@ public class SubInfoQueryApiController extends BaseController {
      * @param queryVO
      * @return
      */
-    @Log("用户查询重点项目-投产项目数据")
+    @Log("页面:【重点项目调度-投产项目】,执行操作:查询")
     @PostMapping("subFixGetAllTc")
     public ListMessage subFixGetAllTc(@RequestBody Page page, @RequestBody SubInfoQueryTzVO queryVO) {
         ListMessage message = new ListMessage();
@@ -834,6 +832,13 @@ public class SubInfoQueryApiController extends BaseController {
             int bType = 0;  //b类项目
             int cType = 0;  //c类项目
             int dType = 0;  //d类项目
+
+
+            int bePlanningNum = 0;  // 正在谋划
+            int negotiationNum = 0;  // 正在洽谈
+            int signedNum = 0;   // 已签约
+            int recordAndApproveNum = 0; // 已备案、已核准
+
             int kgTotal = 0;    //开工数量
             int xjNumber = 0;   //新建数量
             int zjNumber = 0;   //在建数量
@@ -852,6 +857,17 @@ public class SubInfoQueryApiController extends BaseController {
                         dType++;
                     }
                 }
+                if (StringUtils.isNotBlank(subFixGetBeginRateVo.getCbStatus())){
+                    if (SubInfoCbStatusEnum.ZZMH.getCode().equals(subFixGetBeginRateVo.getCbStatus())){
+                        bePlanningNum++;
+                    }else if (SubInfoCbStatusEnum.ZZQT.getCode().equals(subFixGetBeginRateVo.getCbStatus())){
+                        negotiationNum++;
+                    }else if (SubInfoCbStatusEnum.YQY.getCode().equals(subFixGetBeginRateVo.getCbStatus())){
+                        signedNum++;
+                    }else if (SubInfoCbStatusEnum.YBA_YHZ.getCode().equals(subFixGetBeginRateVo.getCbStatus())){
+                        recordAndApproveNum++;
+                    }
+                }
 
                 if (StringUtils.isNotBlank(subFixGetBeginRateVo.getStatus())){
                     if (subFixGetBeginRateVo.getStatus().equals("3") || subFixGetBeginRateVo.getStatus().equals("9")){
@@ -910,6 +926,12 @@ public class SubInfoQueryApiController extends BaseController {
             subFixBeginVo.setBTotal(bType);
             subFixBeginVo.setCTotal(cType);
             subFixBeginVo.setDTotal(dType);
+
+            subFixBeginVo.setBePlanningNum(bePlanningNum);
+            subFixBeginVo.setNegotiationNum(negotiationNum);
+            subFixBeginVo.setSignedNum(signedNum);
+            subFixBeginVo.setRecordAndApproveNum(recordAndApproveNum);
+
             subFixBeginVo.setKgTotal(kgTotal);
             subFixBeginVo.setRgTotal(rgNumber);
 

+ 1 - 1
projects/src/main/java/com/rtrh/projects/web/util/DataSourceAspect.java

@@ -18,7 +18,7 @@ public class DataSourceAspect {
         try {
             return point.proceed();
         } finally {
-            DataSourceContextHolder.clearDataSourceType();  // 执行完毕后清除数据源
+            DataSourceContextHolder.setDataSourceType("primary");
         }
     }
 }

BIN
projects/src/main/webapp/asset/css/images/register/logo.png


+ 21 - 18
projects/src/main/webapp/asset/css/indexScreen.css

@@ -31,12 +31,12 @@ body {
   align-items: baseline;
 }
 .header .left .left-time {
-  margin-left: calc(144 / 1920 * calc(100vw));
+  margin-left: calc(10 / 1920 * calc(100vw));
   margin-top: calc(16 / 1080 * calc(100vh));
   font-size: calc(30 / 1920 * calc(100vw));
 }
 .header .left .left-date {
-  margin-left: calc(10 / 1920 * calc(100vw));
+  margin-left: calc(144 / 1920 * calc(100vw));
   margin-top: calc(28 / 1080 * calc(100vh));
   font-size: calc(14 / 1920 * calc(100vw));
 }
@@ -152,9 +152,9 @@ body {
   color: white;
   font-size: calc(16 / 1920 * calc(100vw));
   font-family: PingFangSC, PingFang SC;
-  background-image: linear-gradient(to bottom, #fff 50%, #05f5eb);
+  /*background-image: linear-gradient(to bottom, #fff 50%, #05f5eb);*/
   -webkit-background-clip: text;
-  color: transparent;
+  /*color: transparent;*/
   font-weight: bold;
 }
 .main
@@ -168,9 +168,9 @@ body {
   font-size: calc(16 / 1920 * calc(100vw));
   margin-left: calc(20 / 1920 * calc(100vw));
   font-family: PingFangSC, PingFang SC;
-  background-image: linear-gradient(to bottom, #fff 50%, #05f5eb);
+  /*background-image: linear-gradient(to bottom, #fff 50%, #05f5eb);*/
   -webkit-background-clip: text;
-  color: transparent;
+  /*color: transparent;*/
   font-weight: bold;
 }
 .main
@@ -184,9 +184,9 @@ body {
   font-size: calc(16 / 1920 * calc(100vw));
   margin-left: calc(20 / 1920 * calc(100vw));
   font-family: PingFangSC, PingFang SC;
-  background-image: linear-gradient(to bottom, #fff 50%, #05f5eb);
+  /*background-image: linear-gradient(to bottom, #fff 50%, #05f5eb);*/
   -webkit-background-clip: text;
-  color: transparent;
+  /*color: transparent;*/
   font-weight: bold;
 }
 .main
@@ -200,9 +200,9 @@ body {
   font-size: calc(16 / 1920 * calc(100vw));
   margin-left: calc(22 / 1920 * calc(100vw));
   font-family: PingFangSC, PingFang SC;
-  background-image: linear-gradient(to bottom, #fff 50%, #05f5eb);
+  /*background-image: linear-gradient(to bottom, #fff 50%, #05f5eb);*/
   -webkit-background-clip: text;
-  color: transparent;
+  /*color: transparent;*/
   font-weight: bold;
 }
 .main .main-left .left-content .left-content-center .img {
@@ -251,9 +251,9 @@ body {
   margin-top: calc(28 / 1080 * calc(100vh));
   margin-left: calc(23 / 1080 * calc(100vh));
   font-family: PingFangSC, PingFang SC;
-  background-image: linear-gradient(to bottom, #fff 40%, #05f5eb);
+  /*background-image: linear-gradient(to bottom, #fff 40%, #05f5eb);*/
   -webkit-background-clip: text;
-  color: transparent;
+  /*color: transparent;*/
   font-weight: bold;
 }
 .main
@@ -463,9 +463,10 @@ body {
   margin-top: calc(7 / 1080 * calc(100vh));
   position: relative;
   z-index: 2;
-  background-image: linear-gradient(to bottom, #d0fffe 40%, #05f5eb);
+  /*background-image: linear-gradient(to bottom, #d0fffe 40%, #05f5eb);*/
   -webkit-background-clip: text;
-  color: transparent;
+  /*color: transparent;*/
+  color: white;
   font-weight: bold;
 }
 .main
@@ -529,9 +530,10 @@ body {
   .main-detail-bottom-bottom
   .left
   span:first-child {
-  background-image: linear-gradient(to bottom, #fff 40%, #fe8e8e);
+  /*background-image: linear-gradient(to bottom, #fff 40%, #fe8e8e);*/
   -webkit-background-clip: text;
-  color: transparent;
+  /*color: transparent;*/
+  color: white;
   font-size: calc(20 / 1920 * calc(100vw));
   display: inline-block;
   margin-left: calc(29 / 1920 * calc(100vw));
@@ -808,9 +810,10 @@ body {
   .main-detail-bottom-bottom
   .left
   span:first-child {
-  background-image: linear-gradient(to bottom, #fff 40%, #fe8e8e);
+  /*background-image: linear-gradient(to bottom, #fff 40%, #fe8e8e);*/
   -webkit-background-clip: text;
-  color: transparent;
+  /*color: transparent;*/
+  color: white;
   font-size: calc(20 / 1920 * calc(100vw));
   display: inline-block;
   margin-left: calc(29 / 1920 * calc(100vw));

+ 4 - 0
projects/src/main/webapp/asset/css/style.css

@@ -2280,6 +2280,10 @@ table,th,td{
     color: #1C56A3;
     font-size: 14px;
     font-weight: bold;
+    font-family: "Times New Roman", Times, serif;
+}
+.new-roman{
+    font-family: "Times New Roman", Times, serif;
 }
 
 .laytable-cell-checkbox{

+ 3 - 2
projects/src/main/webapp/asset/css/style_new.css

@@ -163,8 +163,9 @@
 
 .class_ls { padding: 10px 20px; background: #fff; }
 .class_ls .juli { display: inline-block; margin-bottom: 5px; padding: 5px 10px; color: #314b69; background: #f1fbf8; border-radius: 5px; }
-.class_ls .lanse-first { color: #02b77e; }
-.class_ls .second_line .lanse-first { color: #E156A2; }
+.class_ls .lanse-first { color: #02b77e;font-family: "Times New Roman", Times, serif; }
+.class_ls .second_line .lanse-first { color: #E156A2;font-family: "Times New Roman", Times, serif; }
+.new-roman{font-family: "Times New Roman", Times, serif;}
 
 .export { display: block; position: relative; top: 0; right: auto; margin: 0 0 10px; padding: 0px 7px 0px 15px; height: 32px; line-height: 32px; overflow: hidden; border-radius: 4px; background-color: #007EFF; }
 .export img { margin-right: 3px; filter: drop-shadow(#fff 100px 0); transform: translateX(-100px); }

+ 42 - 0
projects/src/main/webapp/asset/js/util.js

@@ -0,0 +1,42 @@
+// 将阿拉伯数字转换为罗马数字
+function intToRoman(num) {
+    if (num < 1) {
+        return num;
+    }
+    const romanNumerals = [
+        {limit: 1000000, roman: "M̄"}, // 使用 M̄ 表示 1000000
+        {limit: 900000, roman: "C̄M̄"},
+        {limit: 500000, roman: "D̄"},
+        {limit: 400000, roman: "C̄D̄"},
+        {limit: 100000, roman: "C̄"},
+        {limit: 90000, roman: "X̄C̄"},
+        {limit: 50000, roman: "L̄"},
+        {limit: 40000, roman: "X̄L̄"},
+        {limit: 10000, roman: "X̄"},
+        {limit: 9000, roman: "ĪX̄"},
+        {limit: 5000, roman: "V̄"},
+        {limit: 4000, roman: "ĪV̄"}, // 使用 ĪV̄ 表示 4000
+        {limit: 1000, roman: "M"},
+        {limit: 900, roman: "CM"},
+        {limit: 500, roman: "D"},
+        {limit: 400, roman: "CD"},
+        {limit: 100, roman: "C"},
+        {limit: 90, roman: "XC"},
+        {limit: 50, roman: "L"},
+        {limit: 40, roman: "XL"},
+        {limit: 10, roman: "X"},
+        {limit: 9, roman: "IX"},
+        {limit: 5, roman: "V"},
+        {limit: 4, roman: "IV"},
+        {limit: 1, roman: "I"}
+    ];
+    let roman = '';
+    // 遍历罗马数字数组,将其值减去相应的阿拉伯数字
+    for (let i = 0; i < romanNumerals.length; i++) {
+        while (num >= romanNumerals[i].limit) {
+            roman += romanNumerals[i].roman;
+            num -= romanNumerals[i].limit;
+        }
+    }
+    return roman;
+}

+ 5 - 0
projects/src/main/webapp/asset/sass/style_new.scss

@@ -716,12 +716,17 @@
   }
   .lanse-first {
     color: #02b77e;
+    font-family: "Times New Roman", Times, serif;
   }
   .second_line {
     .lanse-first {
       color: #E156A2;
+      font-family: "Times New Roman", Times, serif;
     }
   }
+  .new-roman{
+    font-family: "Times New Roman", Times, serif;
+  }
 }
 .export {
   display: block;

+ 1 - 1
projects/src/main/webapp/vmodules/annualPlan/list.jsp

@@ -379,7 +379,7 @@
                     type: 2,
                     title: "",
                     area: ['1000px', '800px'],
-                    content: App.getUrl("//subject/subInfo/detailView?layer=true&subId="+ obj.data.sub_id),
+                    content: App.getUrl("/subject/subInfo/detailView2?layer=true&subId="+ obj.data.sub_id),
                 });
                 layui.layer.full(index);
             },

+ 2 - 0
projects/src/main/webapp/vmodules/common/common-js-include.jsp

@@ -20,6 +20,8 @@
 <script src="${WebSite.asset}/modules/common.js?version=${version}" charset="utf-8"></script>
 <script src="${WebSite.asset}/modules/common-utils.js?version=${version}" charset="utf-8"></script>
 <script src="${WebSite.asset}/lib/echarts/min/echarts.min.js?version=${version}"></script>
+
+<script src="${WebSite.asset}/js/util.js?version=${version}"></script>
 <!--[if IE 6]>
 <script type="text/javascript" src="${WebSite.asset}/lib/DD_belatedPNG_0.0.8a-min.js" ></script>
 <script>DD_belatedPNG.fix('*');</script>

+ 19 - 2
projects/src/main/webapp/vmodules/graphic/detail.jsp

@@ -91,7 +91,8 @@
 	                    	<div class="imgUl">
 		                    	<div v-for="(item, index) in imageList"  class="media-box" @click="showImg(index)" >
 		                    		<div class="imgTab">
-		                    			<img  :id="idTemp(index)"     :alt="item.time" :lay-src="'${domain}/static/file/'+item.fileAddre+'/showfile'" :src="'${domain}/static/file/'+item.fileAddre+'/showfile'">
+<%--		                    			<img  :id="idTemp(index)"     :alt="item.time" :lay-src="'${domain}/static/file/'+item.fileAddre+'/showfile'" :src="'${domain}/static/file/'+item.fileAddre+'/showfile'">--%>
+		                    			<img  :id="idTemp(index)"     :alt="item.time" :lay-src="'${domain}/static/file/'+item.fileAddre+'/showfile'" :src="picShow(item.fileAddre,item.fileType)">
 			                    		<span>{{item.time}}</span>
 		                    		</div>
 		                    	</div>
@@ -107,7 +108,8 @@
 		                    	<div v-for="(item, index) in vedioList" class="media-box" @click="showVideo">
 		                    		<div class="imgTab">
 		                    			<video controls="controls" loop="loop" preload="auto">
-		                    				<source :src="'${domain}/static/file/'+item.fileAddre+'/watch'">
+<%--		                    				<source :src="'${domain}/static/file/'+item.fileAddre+'/watch'">--%>
+		                    				<source :src="picShow(item.fileAddre,item.fileType)">
 		                    			</video>
 			                    		<span>{{item.time}}</span>
 		                    		</div>
@@ -139,6 +141,21 @@
             this.init();
         },
         methods : {
+			picShow(fileId, type) {
+				var tempId = "#" + fileId;
+				if (type == 8) {
+					return "${WebSite.asset}/css/images/pdf.png";
+				} else if (type == null || type == "") {
+				} else if (type == 101 || type == 102 || type == 103 || type == 104 || type == 105) {
+					return "${domain}/static/file/" + fileId + "/showfileFgw";
+				} else if (type == 4 || type == 5) {
+					return "${WebSite.asset}/css/images/excel.png";
+				} else if (type == 2 || type == 3) {
+					return "${WebSite.asset}/css/images/word.png";
+				} else if (type == 203) {
+					return "${WebSite.asset}/css/images/video.png";
+				}
+			},
             init : function() {
                 var self = this;
                 this.getImgForm();

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

@@ -8,7 +8,7 @@
     <!-- <div class="top_menu" @click="changeSide" v-if="collapse"></div> -->
     <div class="header_content_left">
         <div class="header_code"></div>
-        <div class="header_text">哈密市投资项目智慧平台</div>
+        <div class="header_text">哈密市工业项目智慧平台</div>
     </div>
     <div class="expand_collapse_btn" @click="changeSide"></div>
     <div class="layui-side-scroll">
@@ -277,11 +277,11 @@
                             code: '911',
                             url: 'sysTable/index'
                         },
-                        {
-                            txt: '操作日志查询',
-                            code: '913',
-                            url: 'subDataLog/index'
-                        },
+                        // {
+                        //     txt: '操作日志查询',
+                        //     code: '913',
+                        //     url: 'subDataLog/index'
+                        // },
                         {
                             txt: '登录日志',
                             code: '920',

+ 7 - 4
projects/src/main/webapp/vmodules/passport/registerList.jsp

@@ -276,11 +276,14 @@
         param.pageNo = this.pageNo;
         param.pageSize = this.pageSize;
         App.postJson("/api/register/list", param, function (res) {
-          self.dataList = res.rows;
-          self.loadPage(res.total);
-
+          if(res.success){
+            self.dataList = res.rows;
+            self.loadPage(res.total);
+            self.loadTable();
+          }else {
+            App.msg.error(res.message);
+          }
 
-          self.loadTable();
 
           // if(res.data=="1"){
           //   if (self.dataList[0].status=="待审核"||self.dataList[0].status=="已审核"||self.dataList[0].status=="不通过"){

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

@@ -30,18 +30,18 @@
         <!-- 内容区域 -->
         <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>
-                <button class="btn btn1" :class="{active: tabActive === 2}" @click="onChangeActive(2)">前期手续办理超期
-                    <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>
-                <button class="btn btn1" :class="{active: tabActive === 4}" @click="onChangeActive(4)">在建转投产超期
-                    <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>
+                <button class="btn btn1" :class="{active: tabActive === 1}" @click="onChangeActive(1)">储备超期
+                    <span class="button-card new-roman" @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>--%>
+                <button class="btn btn1" :class="{active: tabActive === 3}" @click="onChangeActive(3)">新建超期
+                    <span class="button-card new-roman" @click="ct('','','','','3','')">{{xjToZjNum}}</span></button>
+                <button class="btn btn1" :class="{active: tabActive === 4}" @click="onChangeActive(4)">在建超期
+                    <span class="button-card new-roman" @click="ct('','','','','4','')">{{zjToTcNum}}</span></button>
+                <button class="btn btn1" :class="{active: tabActive === 5}" @click="onChangeActive(5)">投产超期
+                    <span class="button-card new-roman" @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 new-roman" @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)">投资偏离度超限--%>
@@ -106,7 +106,7 @@
                             <div class="row-item" v-for="(itemFund,index) in quyuList" :key="index"
                                  @dblclick="ct(itemFund.code,'','','','','')">
                                 <div class="row-item-static">
-                                    <span class="font-weight">{{itemFund.number}}</span>
+                                    <span class="font-weight new-roman">{{itemFund.number}}</span>
                                     <span class="danwei">个</span>
                                 </div>
                                 <div class="row-item-title">{{itemFund.title}}</div>
@@ -161,7 +161,7 @@
                             <div class="row-item" v-for="(itemFund,indexFund) in item" :key="indexFund"
                                  @dblclick="ct('','','',itemFund.code,'','')">
                                 <div class="row-item-static">
-                                    <span class="font-weight">{{itemFund.number}}</span>
+                                    <span class="font-weight new-roman">{{itemFund.number}}</span>
                                     <span class="danwei">个</span>
                                 </div>
                                 <div class="row-item-title">{{itemFund.title}}</div>
@@ -191,7 +191,7 @@
                             <div class="row-item" v-for="(itemFund,indexFund) in item" :key="indexFund"
                                  @dblclick="ct('','','','','',itemFund.code)">
                                 <div class="row-item-static">
-                                    <span class="font-weight">{{itemFund.number}}</span>
+                                    <span class="font-weight new-roman">{{itemFund.number}}</span>
                                     <span class="danwei">个</span>
                                 </div>
                                 <div class="row-item-title">{{itemFund.title}}</div>

+ 19 - 2
projects/src/main/webapp/vmodules/project/rptFile.jsp

@@ -91,7 +91,8 @@
 	                    	<div class="imgUl">
 		                    	<div v-for="(item, index) in imageList" class="media-box" @click="showImg">
 		                    		<div class="imgTab">
-		                    			<img :alt="item.time" :lay-src="'${domain}/static/file/'+item.fileAddre+'/showfile'" :src="'${domain}/static/file/'+item.fileAddre+'/showfile'">
+<%--		                    			<img :alt="item.time" :lay-src="'${domain}/static/file/'+item.fileAddre+'/showfile'" :src="'${domain}/static/file/'+item.fileAddre+'/showfile'">--%>
+		                    			<img :alt="item.time" :lay-src="'${domain}/static/file/'+item.fileAddre+'/showfile'" :src="picShow(item.fileAddre,item.fileType)">
 			                    		<span>{{item.time}}</span>
 		                    		</div>
 		                    	</div>
@@ -107,7 +108,8 @@
 		                    	<div v-for="(item, index) in vedioList" class="media-box" @click="showImg">
 		                    		<div class="imgTab">
 		                    			<video controls="controls" loop="loop" preload="auto">
-		                    				<source :src="'${domain}/static/file/'+item.fileAddre+'/watch'">
+<%--		                    				<source :src="'${domain}/static/file/'+item.fileAddre+'/watch'">--%>
+		                    				<source :src="picShow(item.fileAddre,item.fileType)">
 		                    			</video>
 			                    		<span>{{item.time}}</span>
 		                    		</div>
@@ -139,6 +141,21 @@
             this.init();
         },
         methods : {
+			picShow(fileId, type) {
+				var tempId = "#" + fileId;
+				if (type == 8) {
+					return "${WebSite.asset}/css/images/pdf.png";
+				} else if (type == null || type == "") {
+				} else if (type == 101 || type == 102 || type == 103 || type == 104 || type == 105) {
+					return "${domain}/static/file/" + fileId + "/showfileFgw";
+				} else if (type == 4 || type == 5) {
+					return "${WebSite.asset}/css/images/excel.png";
+				} else if (type == 2 || type == 3) {
+					return "${WebSite.asset}/css/images/word.png";
+				} else if (type == 203) {
+					return "${WebSite.asset}/css/images/video.png";
+				}
+			},
             init : function() {
                 var self = this;
                 this.getImgForm();

+ 35 - 16
projects/src/main/webapp/vmodules/statics/analysisScreen_four.jsp

@@ -48,8 +48,8 @@
     <div id="fullscreenElement" class="hami-container">
         <header class="header">
             <div class="left">
-                <p class="left-time" id="left-time">11:15</p>
                 <p class="left-date" id="left-date">2021-09-01</p>
+                <p class="left-time" id="left-time">11:15</p>
             </div>
             <div class="center">
                 <p>哈密市工业项目智慧平台</p>
@@ -448,7 +448,7 @@
             </div>
 
         </main>
-        <flooter class="flooter">
+        <footer class="flooter">
             <div class="flooter-bottom">
                 <div class="flooter-bottom-item">
                     <div class="title">储备项目库</div>
@@ -667,7 +667,6 @@
 
                 document.querySelector('#right-data7').textContent =  gmData[3].num
                 document.querySelector('#right-data8').textContent =  gmData[3].amt
-s
             }
         });
     }
@@ -751,12 +750,15 @@ s
                 type: 'liquidFill',
                 data: [checkRate|0], // 水滴的填充进度,0到1之间
                 radius: '94%',
-                color: ['#A50107'], // 蓝色
+                // color: ['#A50107'], // 蓝色
+                // color: ['#7100C3'],
+                color: ['#6A0DAD'],
                 outline: {
                     borderDistance: 2, // 外边框距离
                     itemStyle: {
                         borderWidth: 4, // 外边框宽度
-                        borderColor: '#A50107' // 外边框颜色
+                        // borderColor: '#A50107' // 外边框颜色
+                        borderColor: '#6A0DAD'
                     }
                 },
                 backgroundStyle: {
@@ -766,10 +768,13 @@ s
                 },
                 label: {
                     show: true,
-                    fontSize: 18, // 设置字体大小
+                    fontSize: 14, // 设置字体大小
                     fontWeight: 'normal', // 设置字体粗细
                     color: '#fff',// 设置字体颜色
-
+                    // formatter:  '{c}%',
+                    formatter: function (param) {
+                        return (param.value * 100).toFixed(2) + '%'; // 显示为百分比格式
+                    }
                 },
                 graphic: {
                     elements: [
@@ -794,17 +799,26 @@ s
             }]
         };
         var liquidFillOption2 = JSON.parse(JSON.stringify(liquidFillOption));
-        liquidFillOption2.series[0].color = ['#BA3C00']; // 绿色
-        liquidFillOption2.series[0].outline.itemStyle.borderColor = '#BA3C00'; // 边框颜色也为绿色
-        liquidFillOption2.series[0].data=[openRate|0];
+        // liquidFillOption2.series[0].color = ['#BA3C00']; // 绿色
+        // liquidFillOption2.series[0].outline.itemStyle.borderColor = '#BA3C00'; // 边框颜色也为绿色
+        liquidFillOption2.series[0].data=[openRate];
+        liquidFillOption2.series[0].label.formatter = (param) => {
+            return (param.value * 100).toFixed(2) + '%'; // 显示为百分比格式
+        };
         var liquidFillOption3 = JSON.parse(JSON.stringify(liquidFillOption));
-        liquidFillOption3.series[0].color = ['#00939A']; // 红色
-        liquidFillOption3.series[0].outline.itemStyle.borderColor = '#00939A'; // 边框颜色也为红色
-        liquidFillOption3.series[0].data=[workRate|0];
+        // liquidFillOption3.series[0].color = ['#00939A']; // 红色
+        // liquidFillOption3.series[0].outline.itemStyle.borderColor = '#00939A'; // 边框颜色也为红色
+        liquidFillOption3.series[0].data=[workRate];
+        liquidFillOption3.series[0].label.formatter = (param) => {
+            return (param.value * 100).toFixed(2) + '%'; // 显示为百分比格式
+        };
         var liquidFillOption4 = JSON.parse(JSON.stringify(liquidFillOption));
-        liquidFillOption4.series[0].color = ['#7100C3']; // 黄色
-        liquidFillOption4.series[0].outline.itemStyle.borderColor = '#7100C3'; // 边框颜色也为黄色
-        liquidFillOption4.series[0].data=[stockRate|0];
+        // liquidFillOption4.series[0].color = ['#7100C3']; // 黄色
+        // liquidFillOption4.series[0].outline.itemStyle.borderColor = '#7100C3'; // 边框颜色也为黄色
+        liquidFillOption4.series[0].data=[stockRate];
+        liquidFillOption4.series[0].label.formatter = (param) => {
+            return (param.value * 100).toFixed(2) + '%'; // 显示为百分比格式
+        };
         // 配置图表
         myChart1.setOption(liquidFillOption);
         myChart2.setOption(liquidFillOption2);
@@ -833,6 +847,11 @@ s
             if (res.success) {
                 qtData = res.data[0];
                 console.log(qtData)
+                //开工率、投产率、入规率
+                openRate = qtData.num_year_kgl / 100
+                workRate = qtData.num_year_tcl / 100
+                stockRate = qtData.num_year_rgl / 100
+
                 document.querySelector('#main-top-data1').textContent = qtData.num_total;
                 document.querySelector('#left-data1').textContent = qtData.num_cb;
                 document.querySelector('#left-data2').textContent = qtData.amt_cb;

+ 11 - 1
projects/src/main/webapp/vmodules/statics/layer/projInfo_new.jsp

@@ -246,6 +246,16 @@
         <span style="color:#FFDD00;" lay-event="toDetail">项目信息</span>
     </div>
 </script>
+<script type="text/html" id="preInfo">
+    <div title="" lay-event="preNew" style="cursor: pointer">
+        <div class="line">办理中的手续:{{d.preProceNum}}个
+
+        </div>
+        <div class="line">已办理完成手续:{{d.preEndNum}}个
+
+        </div>
+    </div>
+</script>
 <script>
     new Vue({
         el: "#app",
@@ -386,7 +396,7 @@
                             {field: 'mock2', title: '操作&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;', width: 140, align: 'center', toolbar: '#toolBar', fixed: 'right'}
                         ]]
                         break;
-                    case '4':
+                    case '9':
                         columns = [[ // 设置表头
                             {type: 'numbers', fixed: 'left', align: 'center', title: '序号', width: 44},
                             {field: 'subName', fixed: 'left', title: '项目名称', minWidth: 200, templet: '#subName'},

+ 2 - 0
projects/src/main/webapp/vmodules/statics/layer/subInfo/projectInfo.jsp

@@ -85,6 +85,8 @@ body::-webkit-scrollbar{
                     <td style="display: none">${sunInfo.kindName }</td>--%>
 					<td class="label">项目所在地</td>
 					<td>${sunInfo.subjectName }</td>
+					<td class="label">项目地址</td>
+					<td>${sunInfo.addre }</td>
 				</tr>
 				<tr>
 					<td class="label">建设内容及规模</td>

+ 1 - 1
projects/src/main/webapp/vmodules/subject/subInfo/detailView.jsp

@@ -187,7 +187,7 @@
 				</c:if>
 					<button class="layui-btn layui-btn-normal" style="position:relative;z-index:9;float: right" @click="backHis()">返回</button>
 			</div>
-			<iframe :src="iframeUrl" style="min-height:430px;border:none;margin-top: 30px"></iframe>
+			<iframe :src="iframeUrl" style="min-height:500px;border:none;margin-top: 30px"></iframe>
 </div>
 </template>
 <script>

+ 19 - 24
projects/src/main/webapp/vmodules/subject/subInfo/editSubInfo.jsp

@@ -420,22 +420,22 @@
 <%--                            </div>--%>
 <%--                        </div>--%>
 <%--                    </div>--%>
-                    <div class="layui-row">
-                        <div class="layui-col-xs6 layui-col-sm6 layui-col-md4">
-                            <div class="layui-form-item">
-                                <label class="layui-form-label required">ABC类</label>
-                                <div class="layui-input-block">
-                                    <select v-model="subInfo.abc" lay-filter="abc" lay-verify="required">
-                                        <option value="">请选择</option>
-                                        <option value="A">A类</option>
-                                        <option value="B">B类</option>
-                                        <option value="C">C类</option>
-                                        <option value="D">D类</option>
-                                    </select>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
+<%--                    <div class="layui-row">--%>
+<%--                        <div class="layui-col-xs6 layui-col-sm6 layui-col-md4">--%>
+<%--                            <div class="layui-form-item">--%>
+<%--                                <label class="layui-form-label required">ABC类</label>--%>
+<%--                                <div class="layui-input-block">--%>
+<%--                                    <select v-model="subInfo.abc" lay-filter="abc" lay-verify="required">--%>
+<%--                                        <option value="">请选择</option>--%>
+<%--                                        <option value="A">A类</option>--%>
+<%--                                        <option value="B">B类</option>--%>
+<%--                                        <option value="C">C类</option>--%>
+<%--                                        <option value="D">D类</option>--%>
+<%--                                    </select>--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </div>--%>
+<%--                    </div>--%>
                     <div class="layui-row">
                         <div class="layui-col-xs6 layui-col-sm6 layui-col-md4">
                             <div class="layui-form-item">
@@ -633,9 +633,9 @@
                     self.subInfo.subjectId = data.value;
                     self.subInfo.mainId = ztdw;
                 });
-                layui.form.on("select(abc)", function (data) {
-                    self.subInfo.abc = data.value;
-                });
+                // layui.form.on("select(abc)", function (data) {
+                //     self.subInfo.abc = data.value;
+                // });
                 layui.form.on("select(cbStatus)", function (data) {
                     self.subInfo.cbStatus = data.value;
                 });
@@ -857,11 +857,6 @@
                     layer.msg("开始时间必须小于结束时间");
                     return;
                 }
-                const abc = self.subInfo.abc;
-                if (!abc){
-                    layer.msg("请选择ABC类");
-                    return;
-                }
                 const indusKind = self.subInfo.indusKind;
                 if (!indusKind){
                     layer.msg("请选择行业类型");

+ 19 - 13
projects/src/main/webapp/vmodules/subject/subInfo/tz/cb.jsp

@@ -43,6 +43,7 @@
         .lanse-first {
             color: #1C56A3;
             font-size: 12px;
+            font-family: "Times New Roman", Times, serif;
         }
 
         .layui-table-col-special .layui-table-cell {
@@ -157,7 +158,7 @@
                                         </div>
                                     </div>
                                 </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
+                                <div class="layui-col-xs6 layui-col-sm6 layui-col-md6 hiddenParam">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label required label-longers" style="width: 100px;">项目总投资(亿元)</label>
                                         <div class="layui-input-block time_box">
@@ -234,21 +235,26 @@
 <%--                </div>--%>
                 <div style="display: flex;margin-bottom: 3px">
                     <label class="juli">
+                        储备项目总数
+                        <span class="info-icon" title="储备项目总数"></span>
+                        <span class="lanse-first">{{beginRate.num}}</span>
+                    </label>
+                    <label class="juli" onclick="levelList('cbStatus','正在谋划','1')">
                         正在谋划
                         <span class="info-icon" title="正在谋划"></span>
                         <span class="lanse-first">{{beginRate.bePlanningNum}}</span>
                     </label>
-                    <label class="juli" onclick="levelList('abcs','A类','A')">
+                    <label class="juli" onclick="levelList('cbStatus','正在洽谈','2')">
                         正在洽谈
                         <span class="info-icon" title="正在洽谈"></span>
                         <span class="lanse-first">{{beginRate.negotiationNum}}</span>
                     </label>
-                    <label class="juli">
+                    <label class="juli" onclick="levelList('cbStatus','已签约','3')">
                         已签约
                         <span class="info-icon" title="已签约"></span>
-                        <span class="lanse-first" onclick="levelList('abcs','B类','B')" style="color: #FFAD0D">{{beginRate.signedNum}}</span>
+                        <span class="lanse-first" style="color: #FFAD0D">{{beginRate.signedNum}}</span>
                     </label>
-                    <label class="juli" onclick="levelList('abcs','C类','C')">
+                    <label class="juli" onclick="levelList('cbStatus','已备案/已核准','4')">
                         已备案/已核准
                         <span class="info-icon" title="已备案/已核准"></span>
                         <span class="lanse-first" style="color: #E0534E">{{beginRate.recordAndApproveNum}}</span>
@@ -567,9 +573,9 @@
             },
             loadTable: function () {
                 // 状态名称映射
-                this.dataList.forEach(item => {
-                    item.statusName = this.getStatusName(item.status);
-                });
+                // this.dataList.forEach(item => {
+                //     item.statusName = this.getStatusName(item.status);
+                // });
 
                 const self = this;
                 layui.table.render({
@@ -583,13 +589,13 @@
                         {field: 'subjectName', title: '项目所在地', width: 100},
                         {field: 'content', title: '项目建设内容', minWidth: 300,
                             templet: function (row) {
+                                // row.content = row.content.replace(/(\d+)/g, '<span class="new-roman">$1</span>');
                                 return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
                             }},
                         {
-                            field: 'amtTotal',
-                            title: '计划总投资(亿元)',
-                            width: 80,
-                            templet: d => (d.amtTotal / 10000).toFixed(2) + "亿元"
+                            field: 'amtTotal', title: '计划总投资(亿元)', width: 80, templet: function (d) {
+                                return `<span class="new-roman">` + (d.amtTotal / 10000).toFixed(2) + `</span>` + "亿元";
+                            }
                         },
                         {field: 'progress', title: '进展情况', minWidth: 300,
                             templet: function (row) {
@@ -726,7 +732,7 @@
                 if (e.data.topBreadcrumb) {
                     $(".top-breadcrumb").html(e.data.topBreadcrumb)
                 }
-            }
+            },
         }
     });
 </script>

+ 17 - 44
projects/src/main/webapp/vmodules/subject/subInfo/tz/cb_sum.jsp

@@ -43,6 +43,7 @@
         .lanse-first {
             color: #1C56A3;
             font-size: 12px;
+            font-family: "Times New Roman", Times, serif;
         }
 
         .layui-table-col-special .layui-table-cell {
@@ -387,52 +388,26 @@
         </div>
         <div>
             <div class="layui-row class_ls">
-                <div style="display: flex">
+                <div style="display: flex;margin-bottom: 3px">
                     <label class="juli">
-                        储备项目总数<span class="lanse-first">{{beginRate.num}}</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar"></div>
-                            </div>
-                        </div>
+                        正在谋划
+                        <span class="info-icon" title="正在谋划"></span>
+                        <span class="lanse-first">{{beginRate.bePlanningNum}}</span>
                     </label>
-
                     <label class="juli" onclick="levelList('abcs','A类','A')">
-                        A类项目数
-                        <span class="lanse-first">{{beginRate.anum}}</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.aRate"></div>
-                            </div>
-                        </div>
+                        正在洽谈
+                        <span class="info-icon" title="正在洽谈"></span>
+                        <span class="lanse-first">{{beginRate.negotiationNum}}</span>
                     </label>
                     <label class="juli">
-                        B类项目数
-                        <span class="lanse-first" onclick="levelList('abcs','B类','B')">{{beginRate.bnum}}</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.bRate"></div>
-                            </div>
-                        </div>
+                        已签约
+                        <span class="info-icon" title="已签约"></span>
+                        <span class="lanse-first" onclick="levelList('abcs','B类','B')" style="color: #FFAD0D">{{beginRate.signedNum}}</span>
                     </label>
                     <label class="juli" onclick="levelList('abcs','C类','C')">
-                        C类项目数
-                        <span class="lanse-first">{{beginRate.cnum}}</span>
-                        <div class="progress-div">
-                            <div class="layui-progress">
-                                <div class="layui-progress-bar" :style="'width:'+beginRate.cRate"></div>
-                            </div>
-                        </div>
-                    </label>
-                    <label class="juli" onclick="levelList('abcs','D类','D')">
-                        D类项目数
-                        <span class="info-icon" title="D类项目">?</span>
-                        <span class="lanse-first">{{beginRate.dnum}}</span>
-                    </label>
-                    <label class="juli" onclick="levelList('abcs','其它类','UNKNOWN_CATEGORY')">
-                        其它项目数
-                        <span class="info-icon" title="ABC类未设置">?</span>
-                        <span class="lanse-first">{{beginRate.nnum}}</span>
+                        已备案/已核准
+                        <span class="info-icon" title="已备案/已核准"></span>
+                        <span class="lanse-first" style="color: #E0534E">{{beginRate.recordAndApproveNum}}</span>
                     </label>
                 </div>
                 <div style="display: flex;margin-bottom: 3px">
@@ -1057,7 +1032,6 @@
                 param.orderType = this.sort.type || "asc";
                 param.status = 1;
                 param = Object.assign(param, ${sumParams});
-                console.log(param,"===]]]===");
                 App.postJson("/api/subInfo/query/queryPage", param, function (res) {
                     self.dataList = res.rows;
                     self.loadPage(res.total);
@@ -1114,10 +1088,9 @@
                                 return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
                             }},
                         {
-                            field: 'amtTotal',
-                            title: '计划总投资(亿元)',
-                            width: 80,
-                            templet: d => (d.amtTotal / 10000).toFixed(2) + "亿元"
+                            field: 'amtTotal', title: '计划总投资(亿元)', width: 80, templet: function (d) {
+                                return `<span class="new-roman">` + (d.amtTotal / 10000).toFixed(2) + `</span>` + "亿元";
+                            }
                         },
                         {field: 'progress', title: '进展情况', minWidth: 300,templet: function (row) {
                                 return row.progress ? '<span class="cut" title="' + row.progress + '">' + row.progress + '</span>' : '';

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

@@ -496,10 +496,10 @@
 </script>
 <script type="text/html" id="date">
     <div title="">
-        <div class="line"><span class="qianse">计划入规时间:</span><span class="shense">{{d.rtDate?d.rtDate:''}}</span>
+        <div class="line"><span class="qianse">计划入规时间:</span><span class="shense new-roman">{{d.rtDate?d.rtDate:''}}</span>
 
         </div>
-        <div class="line"><span class="qianse">实际入规时间:</span><span class="shense">{{d.rgDate?d.rgDate:''}}</span>
+        <div class="line"><span class="qianse">实际入规时间:</span><span class="shense new-roman">{{d.rgDate?d.rgDate:''}}</span>
 
         </div>
     </div>

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

@@ -558,10 +558,10 @@
 </script>
 <script type="text/html" id="date">
     <div title="">
-        <div class="line"><span class="qianse">计划开工:</span><span class="shense">{{d.beginDate}}</span>
+        <div class="line"><span class="qianse">计划开工:</span><span class="shense new-roman">{{d.beginDate}}</span>
 
         </div>
-        <div class="line"><span class="qianse">计划竣工:</span><span class="shense">{{d.endDate}}</span>
+        <div class="line"><span class="qianse">计划竣工:</span><span class="shense new-roman">{{d.endDate}}</span>
 
         </div>
     </div>

+ 6 - 4
projects/src/main/webapp/vmodules/subject/subInfo/tz/main.jsp

@@ -675,7 +675,7 @@
 
 <script type="text/html" id="date">
     <div title="">
-        <div class="line"><span class="shense">{{d.endDate?d.endDate:"--"}}</span>
+        <div class="line"><span class="shense new-roman">{{d.endDate?d.endDate:"--"}}</span>
 
         </div>
 <%--        <div class="line"><span class="qianse">计划开工:</span><span class="shense">{{d.beginDate}}</span>--%>
@@ -1154,12 +1154,14 @@
                                 return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
                             }},
                         {
-                            field: 'amtTotal',  title: '计划总投资(亿元)', width: 80, templet: function (d) {
-                                return (d.amtTotal / 10000).toFixed(2) + "亿元";
+                            field: 'amtTotal', title: '计划总投资(亿元)', width: 80, templet: function (d) {
+                                return `<span class="new-roman">` + (d.amtTotal / 10000).toFixed(2) + `</span>` + "亿元";
                             }
                         },
                         {field: 'endDate',  title: '建成投产时间', width: 100,templet: '#date'},
-                        {field: 'yearPlanAmt', title: '年度投资(万元)', width: 100},
+                        {field: 'yearPlanAmt', title: '年度投资(万元)', width: 100, templet: function (d) {
+                                return d.yearPlanAmt ? `<span class="new-roman">` +  d.yearPlanAmt + `</span>万元` : '';
+                            }},
                         {field: 'progress',  title: '进展情况', width: 300,
                             templet: function (row) {
                                 return row.progress ? '<span class="cut" title="' + row.progress + '">' + row.progress + '</span>' : '';

+ 12 - 7
projects/src/main/webapp/vmodules/subject/subInfo/tz/main_sum.jsp

@@ -673,12 +673,15 @@
 
 <script type="text/html" id="date">
     <div title="">
-        <div class="line"><span class="qianse">计划开工:</span><span class="shense">{{d.beginDate}}</span>
+        <div class="line"><span class="shense new-roman">{{d.endDate?d.endDate:"--"}}</span>
 
         </div>
-        <div class="line"><span class="qianse">计划竣工:</span><span class="shense">{{d.endDate}}</span>
+<%--        <div class="line"><span class="qianse">计划开工:</span><span class="shense">{{d.beginDate}}</span>--%>
 
-        </div>
+<%--        </div>--%>
+<%--        <div class="line"><span class="qianse">计划竣工:</span><span class="shense">{{d.endDate}}</span>--%>
+
+<%--        </div>--%>
     </div>
 </script>
 <script type="text/html" id="toolBar">
@@ -1137,12 +1140,14 @@
                                 return row.content ? '<span class="cut" title="' + row.content + '">' + row.content + '</span>' : '';
                             }},
                         {
-                            field: 'amtTotal',  title: '计划总投资(亿元)', minWidth: 80, templet: function (d) {
-                                return (d.amtTotal / 10000).toFixed(2) + "亿元";
+                            field: 'amtTotal', title: '计划总投资(亿元)', width: 80, templet: function (d) {
+                                return `<span class="new-roman">` + (d.amtTotal / 10000).toFixed(2) + `</span>` + "亿元";
                             }
                         },
-                        {field: 'tcDate',  title: '建成投产时间', minWidth: 160,templet: '#date'},
-                        {field: 'amtTotal', title: '年度投资', minWidth: 100},
+                        {field: 'tcDate',  title: '建成投产时间', minWidth: 100,templet: '#date'},
+                        {field: 'yearPlanAmt', title: '年度投资(万元)', width: 100, templet: function (d) {
+                            return d.yearPlanAmt ? `<span class="new-roman">` +  d.yearPlanAmt + `</span>万元` : '';
+                        }},
                         {field: 'progress',  title: '进展情况', minWidth: 200,
                             templet: function (row) {
                                 return row.progress ? '<span class="cut" title="' + row.progress + '">' + row.progress + '</span>' : '';

+ 6 - 5
projects/src/main/webapp/vmodules/subject/subInfo/tz/new.jsp

@@ -43,6 +43,7 @@
         .lanse-first {
             color: #1C56A3;
             font-size: 12px;
+            font-family: "Times New Roman", Times, serif;
         }
 
         .layui-table-col-special .layui-table-cell {
@@ -419,7 +420,7 @@
 <script type="text/html" id="date">
 
     <div title="">
-        <div class="line"><span class="qianse">计划开工:</span> <span class="shense">{{ d.beginDate ? d.beginDate : '未指定' }}</span>
+        <div class="line"><span class="shense new-roman">{{ d.beginDate ? d.beginDate : '未指定' }}</span>
 
         </div>
 <%--        <div class="line"><span class="qianse">计划竣工:</span> <span class="shense">{{d.endDate}}</span>--%>
@@ -485,10 +486,10 @@
 <%--        <div class="line"><span class="qianse">无需办理的手续:</span> <span class="shense">{{d.preNoNum}}</span>个--%>
 
 <%--        </div>--%>
-        <div class="line"><span class="qianse">办理中的手续:</span> <span class="shense">{{d.preProceNum}}</span>个
+        <div class="line"><span class="qianse">办理中的手续:</span> <span class="shense new-roman">{{d.preProceNum}}</span>个
 
         </div>
-        <div class="line"><span class="qianse">已办理完成手续:</span> <span class="shense">{{d.preEndNum}}</span>个
+        <div class="line"><span class="qianse">已办理完成手续:</span> <span class="shense new-roman">{{d.preEndNum}}</span>个
 
         </div>
     </div>
@@ -994,10 +995,10 @@
                             }},
                         {
                             field: 'amtTotal', title: '计划总投资(亿元)', width: 80, templet: function (d) {
-                                return (d.amtTotal / 10000).toFixed(2) + "亿元";
+                                return `<span class="new-roman">` + (d.amtTotal / 10000).toFixed(2) + `</span>` + "亿元";
                             }
                         },
-                        // {field: 'preProceNum', title: '预计开工时间', width: 160, templet: '#date'},
+                        {field: 'preProceNum', title: '预计开工时间', width: 100, templet: '#date'},
                           {field: 'xmbaStatus', title: '前期手续办理情况', width: 160, templet: '#preInfo'},
                         {field: 'remark', title: '备注', width: 245, templet: '#remark'},
                         {title: '操作', width: 150, toolbar: '#toolBar', fixed: 'right'},

+ 8 - 8
projects/src/main/webapp/vmodules/subject/subInfo/tz/new_sum.jsp

@@ -43,6 +43,7 @@
         .lanse-first {
             color: #1C56A3;
             font-size: 12px;
+            font-family: "Times New Roman", Times, serif;
         }
 
         .layui-table-col-special .layui-table-cell {
@@ -557,13 +558,12 @@
 <script type="text/html" id="date">
 
     <div title="">
-        <div class="line"><span class="qianse">计划开工:</span> <span class="shense">{{d.beginDate}}</span>
-
-        </div>
-        <div class="line"><span class="qianse">计划竣工:</span> <span class="shense">{{d.endDate}}</span>
+        <div class="line"><span class="shense new-roman">{{d.beginDate}}</span>
 
         </div>
+<%--        <div class="line"><span class="qianse">计划竣工:</span> <span class="shense">{{d.endDate}}</span>--%>
 
+<%--        </div>--%>
     </div>
 </script>
 
@@ -623,10 +623,10 @@
 <%--        <div class="line"><span class="qianse">无需办理的手续:</span> <span class="shense">{{d.preNoNum}}</span>个--%>
 
 <%--        </div>--%>
-        <div class="line"><span class="qianse">办理中的手续:</span> <span class="shense">{{d.preProceNum}}</span>个
+        <div class="line"><span class="qianse">办理中的手续:</span> <span class="shense new-roman">{{d.preProceNum}}</span>个
 
         </div>
-        <div class="line"><span class="qianse">已办理完成手续:</span> <span class="shense">{{d.preEndNum}}</span>个
+        <div class="line"><span class="qianse">已办理完成手续:</span> <span class="shense new-roman">{{d.preEndNum}}</span>个
 
         </div>
     </div>
@@ -1134,10 +1134,10 @@
                             }},
                         {
                             field: 'amtTotal', title: '计划总投资(亿元)', width: 80, templet: function (d) {
-                                return (d.amtTotal / 10000).toFixed(2) + "亿元";
+                                return `<span class="new-roman">` + (d.amtTotal / 10000).toFixed(2) + `</span>` + "亿元";
                             }
                         },
-                        {field: 'preProceNum', title: '预计开工时间', width: 160, templet: '#date'},
+                        {field: 'preProceNum', title: '预计开工时间', width: 100, templet: '#date'},
                         {field: 'xmbaStatus', title: '前期手续办理情况', width: 160, templet: '#preInfo'},
                         {field: 'remark', title: '备注', width: 245, templet: '#remark'},
                         {title: '操作', width: 150, toolbar: '#toolBar', fixed: 'right'},

+ 40 - 4
projects/src/main/webapp/vmodules/subject/subInfo/tz/xmzk.jsp

@@ -43,6 +43,7 @@
         .lanse-first {
             color: #1C56A3;
             font-size: 12px;
+            font-family: "Times New Roman", Times, serif;
         }
 
         .layui-table-col-special .layui-table-cell {
@@ -219,11 +220,19 @@
                         <img src="${WebSite.asset}/css/images/left/export.svg"/>
                         <span>导出</span>
                     </div>
-                    <div class="export-item" v-if="showExport" :style="{ top: '-62px' }">
+                    <div class="export-item" v-if="showExport" :style="{ top: '-93px' }">
                         <button type="button" class="" @click="exportTotalExcel">汇总导出</button>
+                        <button type="button" class="" @click="exportFixDetailExcel">项目明细导出</button>
                         <button type="button" class="" @click="exportMoreExcel">自定义导出</button>
                     </div>
                 </div>
+                <div style="position: relative; display: inline-block">
+                    <div class="export" id="uploadBtn">
+                        <img src="${WebSite.asset}/css/images/left/export.svg"/>
+                        <span>导入</span>
+                    </div>
+                </div>
+                请先导出文件,再点击导入上传修改后的数据!
                 <table id="table1" lay-filter="test"></table>
                 <div class="pagination-box" id="pagination"></div>
             </div>
@@ -584,6 +593,25 @@
                     self.moveDbParam.status = data.value;
                 });
 
+                // 文件上传
+                layui.upload.render({
+                    elem: '#uploadBtn',
+                    url: App.getUrl("/api/subject/subInfo/importXmzkDetailExcel"),
+                    accept: 'file', // 普通文件
+                    exts: 'xls|xlsx', // 限制文件类型
+                    done: function (res) {
+                        if (res.success === true) {
+                            self.getData();
+                            layui.layer.msg('导入成功!');
+                        } else {
+                            layui.layer.msg('导入失败:' + res.message, {icon: 5});
+                        }
+                    },
+                    error: function (res) {
+                        layui.layer.msg('上传失败,请稍后再试' + res.message, {icon: 5});
+                    }
+                });
+
                 App.postJson("/api/dict/query/index", {}, function (res) {
                     self.JSDD = res.data.JSDD;
                 })
@@ -926,11 +954,15 @@
                             field: 'amtTotal',
                             title: '总投资',
                             width: 100,
-                            templet: d => (d.amtTotal / 10000).toFixed(2) + "亿元"
+                            templet: d => `<span class="new-roman">` + (d.amtTotal / 10000).toFixed(2) + `</span>` + "亿元",
                         },
                         {field: 'statusName', title: '状态', width: 60},
-                        {field: 'beginDate', title: '计划开工日期', minWidth: 100},
-                        {field: 'endDate', title: '计划完工日期', minWidth: 100},
+                        {field: 'beginDate', title: '计划开工日期', minWidth: 100,
+                            templet: (d)=> `<span class="new-roman">` +  d.beginDate + `</span>`
+                        },
+                        {field: 'endDate', title: '计划完工日期', minWidth: 100,
+                            templet: (d)=> `<span class="new-roman">` +  d.endDate + `</span>`
+                        },
                         {title: '操作', minWidth: 150, toolbar: '#toolBar', fixed: 'right'},
                     ]],
                     fixed: true,
@@ -1100,6 +1132,10 @@
                 var param = this.getSearchParams();
                 App.common.utils.downFile(App.getUrl("subInfoExport/exportTotalExcelByStatus"), "POST", param, "项目情况表(总库).xlsx", "导出失败");
             },
+            exportFixDetailExcel: function () {
+                var param = this.getSearchParams();
+                App.common.utils.downFile(App.getUrl("/subInfoExport/exportXmzkDetailExcel"), "POST", param, "项目明细表(总库).xlsx", "导出失败");
+            },
             exportDetailExcel: function () {
                 var param = this.getSearchParams();
                 App.common.utils.downFile(App.getUrl("subInfoExport/exportDetailExcel"), "POST", param, "项目明细表(总库).xlsx", "导出失败");

+ 13 - 149
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_extend_sum.jsp

@@ -345,7 +345,7 @@
                 <div class="layui-form-item">
                     <div style="display: flex">
                         <label class="juli">
-                            建项目总数<span class="lanse-first">{{beginRate.total}}</span>
+                            建项目总数<span class="lanse-first">{{beginRate.total}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
                                     <div class="layui-progress-bar"></div>
@@ -353,7 +353,7 @@
                             </div>
                         </label>
                         <label class="juli">
-                            未开工项目数<span class="lanse-first">{{beginRate.noNum}}</span>
+                            已开工<span class="lanse-first">{{beginRate.kgTotal}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
                                     <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
@@ -361,15 +361,7 @@
                             </div>
                         </label>
                         <label class="juli">
-                            已开工项目数<span class="lanse-first">{{beginRate.beginNum}}</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
-                                </div>
-                            </div>
-                        </label>
-                        <label class="juli">
-                            开工率<span class="lanse-first">{{beginRate.beginRate}}</span>
+                            开(复)工率<span class="lanse-first">{{beginRate.kfgl}}%</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
                                     <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
@@ -377,17 +369,18 @@
                             </div>
                         </label>
                     </div>
+
                     <div style="display: flex;margin-bottom: 3px" class="second_line">
-                        <label class="juli" @click="levelList('subjects',item.split(',')[1],item.split(',')[0])"
-                               v-for="(item, index) in beginRate.jsddList" :key="index">
-                            {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        <label class="juli" @click="levelList('subjects',item.title,item.code)"
+                               v-for="(item, index) in beginRate.subjectIdList" :key="index">
+                            {{item.title}}<span class="lanse-first">{{item.total}}</span>
                         </label>
                     </div>
                     <div style="margin-bottom: 3px" class="second_line">
                         <label class="juli"
-                               @click="levelList('indusKinds',item.split(',')[1]?item.split(',')[1]:item.split(',')[0],item.split(',')[3])"
-                               v-for="(item, index) in beginRate.hyflList" :key="index">
-                            {{item.split(",")[1]?item.split(",")[1]:item.split(",")[0]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                               @click="levelList('indusKinds',item.title,item.code)"
+                               v-for="(item, index) in beginRate.indusKindList" :key="index">
+                            {{item.title}}<span class="lanse-first">{{item.total}}</span>
                         </label>
                     </div>
                 </div>
@@ -772,77 +765,6 @@
             methods: {
                 init: function () {
                     this.winH = document.body.clientHeight;
-                  /*  layui.laydate.render({
-                        elem: '#startTime',
-                        theme: layDateTheme,
-                        range: '~'
-                    });
-                    var nowdate = new Date();
-                    nowdate.setMonth(nowdate.getMonth() + 1);
-                    var y = nowdate.getFullYear();
-                    var m = nowdate.getMonth() + 1;
-                    var d = nowdate.getDate();
-                    var formatwdate = y + '-' + m + '-' + d;
-                    layui.laydate.render({
-                        elem: '#dateConfirm',
-                        theme: layDateTheme,
-                        value: formatwdate
-                    });
-                    layui.laydate.render({
-                        elem: '#openDate',
-                        theme: layDateTheme,
-                        value: formatwdate
-                    });
-                    /!*   $("#month").val(new Date().getMonth() + 1);*!/
-                    var xmlx = [];
-                    <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
-                    });
-                    var indusKindData = [];
-                    <c:forEach items="${HYFL}" var="xm">
-                    indusKindData.push({value: "${xm.id}", name: "${xm.title}"});
-                    </c:forEach>
-                    this.indusKind = layui.xmSelect.render({
-                        el: "#indusKind",
-                        language: 'zn',
-                        data: indusKindData
-                    });
-                    layui.laydate.render({
-                        elem: '#year',
-                        type: 'year',
-                        theme: layDateTheme,
-                        btns: ['now', 'confirm'],
-                        value: ${curYear}
-                    });
-                    var params = window.localStorage.getItem(this.cacheName);
-                    if (params) {
-                        layui.form.val("searchForm", JSON.parse(params));
-                    }
-                    if (${ isHydw }) {
-                        this.light = layui.xmSelect.render({
-                            el: "#light",
-                            language: 'zn',
-                            data: [
-                                /!*       {value: '0', name: '绿灯'},*!/
-                                {value: '1', name: '黄灯'},
-                                {value: '2', name: '红灯'}
-                            ]
-                        })
-                    }
-                    ;
-                    document.getElementById("exportId", function () {
-                        self.showExport = true;
-                        console.log('移入了')
-                    })
-                    document.getElementById("exportId", function () {
-                        self.showExport = false;
-                        console.log('移出了')
-                    })*/
                     var self = this;
                     layui.upload.render({
                         elem: '#importExc'
@@ -982,25 +904,6 @@
                     var   param =${params};
                     param = Object.assign(param, ${sumParams});
                     return param;
-                  /*  var param = layui.form.getValue("searchForm");
-                    if (param.rangeDate) {
-                        param.beginDate = param.rangeDate.split(" ~ ")[0];
-                        param.endDate = param.rangeDate.split(" ~ ")[1];
-                        param.rangeDate = null;
-                    } else if (param.year) {
-                        param.beginDate = param.year + "-01-01";
-                        param.endDate = param.year + "-12-31";
-                    }
-                    if (this.light) {
-                        param.light = this.light.getValue("valueStr");
-                    }
-                    if (this.indusKind) {
-                        param.indusKind = this.indusKind.getValue("valueStr");
-                    }
-                    delete (param.select)
-                    param.queryTimeType = "0"
-                    param.kind = this.kind.getValue("value").sort().join(",");
-                    return param;*/
                 },
                 getData: function () {
                     var self = this;
@@ -1012,55 +915,16 @@
                     param.orderType = this.sort.type || null;
                     param.queryType = null;
                     console.log(param);
-                    App.postJson("/api/subInfo/query/all", param, function (res) {
+                    App.postJson("/api/subInfo/query/subFixGetAllZj", param, function (res) {
                         self.dataList = res.rows;
                         self.loadPage(res.total);
                         self.loadTable(param);
                     });
 
-                    App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+                    App.postJson("/api/subInfo/query/subFixGetBeginRate", param, function (res) {
                         if (res.success) {
+                            console.log("获取到的数据:",res.data)
                             self.beginRate = res.data;
-                            self.beginRate.hyflList = self.beginRate.hyflData.split(";");
-                            self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
-                            self.beginRate.jsddList = self.beginRate.jsddData.split(";");
-                            res.data.yearAmtSj = (res.data.yearAmtSj ? res.data.yearAmtSj : 0);
-                            res.data.yearAmtAssign = (res.data.yearAmtAssign ? res.data.yearAmtAssign : 0);
-                            res.data.yearAmt = (res.data.yearAmt ? res.data.yearAmt : 0);
-
-                            self.beginRate.yearAmtSj = res.data.monthAmtSj
-                            self.beginRate.yearAmtAssign = res.data.monthAmtAssign
-                            self.beginRate.yearAmt = res.data.monthAmt
-                            if (res.data.total != 0) {
-                                self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
-                                self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2);
-                            } else {
-                                self.beginRate.beginRate = 0;
-                                self.beginRate.endRate = 0;
-                            }
-                            if (res.data.yearAmt != 0) {
-                                self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
-                            } else if (res.data.yearAmtSj != 0) {
-                                self.beginRate.amtRate = 100;
-                            } else {
-                                self.beginRate.amtRate = 0;
-                            }
-                            if (res.data.total != 0) {
-                                self.beginRate.noRate = (res.data.noNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.stopRate = (res.data.stopNum * 100 / res.data.total).toFixed(2) + '%';
-                            } else {
-                                self.beginRate.noRate = "0%";
-                                self.beginRate.beginRate = "0%";
-                                self.beginRate.endRate = "0%";
-                                self.beginRate.stopRate = "0%";
-                            }
-
-                        } else {
-                            self.beginRate.beginRate = 0;
-                            self.beginRate.amtRate = 0;
-                            self.beginRate.endRate = 0;
                         }
                     });
                 },

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

@@ -929,8 +929,12 @@
                             {field: 'subName', title: '项目名称', minWidth: 200},
                             {field: 'subjectId', title: '项目所在地', minWidth: 200},
                             {field: 'content', title: '项目建设内容', minWidth: 200},
-                            {field: 'amtTotal', title: '投资金额(亿元)', minWidth: 200},
-                            {field: 'beginDate', title: '预计开工时间', minWidth: 200},
+                            {field: 'amtTotal', title: '投资金额(亿元)', minWidth: 200,
+                                templet: d => `<span class="new-roman">` + d.amtTotal + `</span>`
+                            },
+                            {field: 'beginDate', title: '预计开工时间', minWidth: 200,
+                                templet: d => `<span class="new-roman">` + d.beginDate + `</span>`
+                            },
                             {field: 'qqsxblqk', title: '前期手续办理情况', minWidth: 200},
                             {field: 'remark', title: '备注', minWidth: 200},
                             {title: '操作', width: 180, toolbar: '#toolBar', fixed: 'right',},

+ 19 - 174
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_new_sum.jsp

@@ -353,66 +353,33 @@
                             </div>
                         </label>
                         <label class="juli">
-                            未开工项目数<span class="lanse-first">{{beginRate.noNum}}</span>
+                            开工数<span class="lanse-first" style="color: #FFAD0D">{{beginRate.kgTotal}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
-                                </div>
-                            </div>
-                        </label>
-                        <label class="juli">
-                            已开工项目数<span class="lanse-first">{{beginRate.beginNum}}</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
+                                    <div class="layui-progress-bar"></div>
                                 </div>
                             </div>
                         </label>
-                        <%--  <label class="juli">
-                              已竣工项目数<span class="lanse-first">{{beginRate.endNum}}</span>
-                              <div class="progress-div">
-                                  <div class="layui-progress">
-                                      <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>
-                                  </div>
-                              </div>
-                          </label>
-                          <label class="juli">
-                              停工项目数<span class="lanse-first">{{beginRate.stopNum}}</span>
-                              <div class="progress-div">
-                                  <div class="layui-progress" lay-filter="layui-progress-bar">
-                                      <div class="layui-progress-bar" :style="'width:'+beginRate.stopRate"></div>
-                                  </div>
-                              </div>
-                          </label>
-  --%>
                         <label class="juli">
-                            开工率<span class="lanse-first">{{beginRate.beginRate}}</span>
+                            转换率<span class="lanse-first">{{beginRate.zhl}}%</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
+                                    <div class="layui-progress-bar"></div>
                                 </div>
                             </div>
                         </label>
-                        <%-- <label class="juli">
-                             竣工率<span class="lanse-first">{{beginRate.endRate}}</span>
-                             <div class="progress-div">
-                                 <div class="layui-progress">
-                                     <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>
-                                 </div>
-                             </div>
-                         </label>--%>
                     </div>
                     <div style="display: flex;margin-bottom: 3px" class="second_line">
-                        <label class="juli" @click="levelList('subjects',item.split(',')[1],item.split(',')[0])"
-                               v-for="(item, index) in beginRate.jsddList" :key="index">
-                            {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        <label class="juli" @click="levelList('subjects',item.title,item.code)"
+                               v-for="(item, index) in beginRate.subjectIdList" :key="index">
+                            {{item.title}}<span class="lanse-first">{{item.total}}</span>
                         </label>
                     </div>
                     <div style="margin-bottom: 3px" class="second_line">
                         <label class="juli"
-                               @click="levelList('indusKinds',item.split(',')[1]?item.split(',')[1]:item.split(',')[0],item.split(',')[3])"
-                               v-for="(item, index) in beginRate.hyflList" :key="index">
-                            {{item.split(",")[1]?item.split(",")[1]:item.split(",")[0]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                               @click="levelList('indusKinds',item.title,item.code)"
+                               v-for="(item, index) in beginRate.indusKindList" :key="index">
+                            {{item.title}}<span class="lanse-first">{{item.total}}</span>
                         </label>
                     </div>
                 </div>
@@ -619,22 +586,6 @@
         <span style="font-size:16px;font-weigh:500 !important;color: #FF9600">{{d.abc||''}}</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="">
-        <span class="qianse">总投资:</span><strong class="lanse">{{d.amtTotal}}</strong> 万元 <br/>
-		 <span class="qianse">已完成投资:</span><strong class="lanse">{{d.allAmt}}</strong>			万元(<i
-                class="lanse">{{computedPer(d.amtTotal, d.allAmt)}} %</i> )<br/>
-		<span class="qianse">年度计划投资:</span><strong class="lanse">{{d.yearPlanAmt}}</strong> 万元 <br/>
-		<span class="qianse">年度完成投资:</span><strong class="lanse">{{d.yearEndAmt}}</strong>			万元(<i
-                class="lanse">{{computedPer(d.yearPlanAmt, d.yearEndAmt)}} %</i> )
-
-    </span>
-    </script>
 
     <script type="text/html" id="leaderInfo">
         <span title="">
@@ -797,77 +748,6 @@
             methods: {
                 init: function () {
                     this.winH = document.body.clientHeight;
-                  /*  layui.laydate.render({
-                        elem: '#startTime',
-                        theme: layDateTheme,
-                        range: '~'
-                    });
-                    var nowdate = new Date();
-                    nowdate.setMonth(nowdate.getMonth() + 1);
-                    var y = nowdate.getFullYear();
-                    var m = nowdate.getMonth() + 1;
-                    var d = nowdate.getDate();
-                    var formatwdate = y + '-' + m + '-' + d;
-                    layui.laydate.render({
-                        elem: '#dateConfirm',
-                        theme: layDateTheme,
-                        value: formatwdate
-                    });
-                    layui.laydate.render({
-                        elem: '#openDate',
-                        theme: layDateTheme,
-                        value: formatwdate
-                    });
-                    /!*   $("#month").val(new Date().getMonth() + 1);*!/
-                    var xmlx = [];
-                    <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
-                    });
-                    var indusKindData = [];
-                    <c:forEach items="${HYFL}" var="xm">
-                    indusKindData.push({value: "${xm.id}", name: "${xm.title}"});
-                    </c:forEach>
-                    this.indusKind = layui.xmSelect.render({
-                        el: "#indusKind",
-                        language: 'zn',
-                        data: indusKindData
-                    });
-                    layui.laydate.render({
-                        elem: '#year',
-                        type: 'year',
-                        theme: layDateTheme,
-                        btns: ['now', 'confirm'],
-                        value: ${curYear}
-                    });
-                    var params = window.localStorage.getItem(this.cacheName);
-                    if (params) {
-                        layui.form.val("searchForm", JSON.parse(params));
-                    }
-                    if (${ isHydw }) {
-                        this.light = layui.xmSelect.render({
-                            el: "#light",
-                            language: 'zn',
-                            data: [
-                                /!*       {value: '0', name: '绿灯'},*!/
-                                {value: '1', name: '黄灯'},
-                                {value: '2', name: '红灯'}
-                            ]
-                        })
-                    }
-                    ;
-                    document.getElementById("exportId", function () {
-                        self.showExport = true;
-                        console.log('移入了')
-                    })
-                    document.getElementById("exportId", function () {
-                        self.showExport = false;
-                        console.log('移出了')
-                    })*/
                     var self = this;
                     layui.upload.render({
                         elem: '#importExc'
@@ -1037,55 +917,16 @@
                     param.orderType = this.sort.type || null;
                     param.queryType = null;
                     console.log(param);
-                    App.postJson("/api/subInfo/query/all", param, function (res) {
+                    App.postJson("/api/subInfo/query/subFixGetAllXj", param, function (res) {
                         self.dataList = res.rows;
                         self.loadPage(res.total);
                         self.loadTable(param);
                     });
 
-                    App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+                    App.postJson("/api/subInfo/query/subFixGetBeginRate", param, function (res) {
                         if (res.success) {
+                            console.log("获取到的数据:",res.data)
                             self.beginRate = res.data;
-                            self.beginRate.hyflList = self.beginRate.hyflData.split(";");
-                            self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
-                            self.beginRate.jsddList = self.beginRate.jsddData.split(";");
-                            res.data.yearAmtSj = (res.data.yearAmtSj ? res.data.yearAmtSj : 0);
-                            res.data.yearAmtAssign = (res.data.yearAmtAssign ? res.data.yearAmtAssign : 0);
-                            res.data.yearAmt = (res.data.yearAmt ? res.data.yearAmt : 0);
-
-                            self.beginRate.yearAmtSj = res.data.monthAmtSj
-                            self.beginRate.yearAmtAssign = res.data.monthAmtAssign
-                            self.beginRate.yearAmt = res.data.monthAmt
-                            if (res.data.total != 0) {
-                                self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
-                                self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2);
-                            } else {
-                                self.beginRate.beginRate = 0;
-                                self.beginRate.endRate = 0;
-                            }
-                            if (res.data.yearAmt != 0) {
-                                self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
-                            } else if (res.data.yearAmtSj != 0) {
-                                self.beginRate.amtRate = 100;
-                            } else {
-                                self.beginRate.amtRate = 0;
-                            }
-                            if (res.data.total != 0) {
-                                self.beginRate.noRate = (res.data.noNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.stopRate = (res.data.stopNum * 100 / res.data.total).toFixed(2) + '%';
-                            } else {
-                                self.beginRate.noRate = "0%";
-                                self.beginRate.beginRate = "0%";
-                                self.beginRate.endRate = "0%";
-                                self.beginRate.stopRate = "0%";
-                            }
-
-                        } else {
-                            self.beginRate.beginRate = 0;
-                            self.beginRate.amtRate = 0;
-                            self.beginRate.endRate = 0;
                         }
                     });
                 },
@@ -1142,8 +983,12 @@
                             {field: 'subName', fixed: 'left', title: '项目名称', minWidth: 200, templet: '#subName'},
                             {field: 'subjectId', fixed: 'left', title: '项目所在地', minWidth: 200, templet: '#subjectId'},
                             {field: 'content', fixed: 'left', title: '项目建设内容', minWidth: 200, templet: '#content'},
-                            {field: 'amtTotal', title: '投资金额(亿元)', minWidth: 250, templet: '#amt', sort: true},
-                            {field: 'beginDate', title: '预计开工时间', minWidth: 200},
+                            {field: 'amtTotal', title: '投资金额(亿元)', minWidth: 250,
+                                templet: d => `<span class="new-roman">` + d.amtTotal + `</span>`
+                            },
+                            {field: 'beginDate', title: '预计开工时间', minWidth: 200,
+                                templet: d => `<span class="new-roman">` + d.beginDate + `</span>`
+                            },
                             {field: 'qqsxblqk', title: '前期手续办理情况', minWidth: 200},
                             {field: 'remark', title: '备注', minWidth: 200},
                             {title: '操作', width: 180, toolbar: '#toolBar', fixed: 'right',},

+ 50 - 16
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_reserve.jsp

@@ -248,7 +248,7 @@
                             </div>
                         </label>
                         <label class="juli">
-                            A类项目数<span class="lanse-first" style="color: #FFAD0D">{{beginRate.atotal}}</span>
+                            正在谋划<span class="lanse-first" style="color: #FFAD0D">{{beginRate.bePlanningNum}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
                                     <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
@@ -256,37 +256,69 @@
                             </div>
                         </label>
                         <label class="juli">
-                            B类项目数<span class="lanse-first" style="color: #E0534E">{{beginRate.btotal}}</span>
+                            正在洽谈<span class="lanse-first" style="color: #FFAD0D">{{beginRate.negotiationNum}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
-                                </div>
-                            </div>
-                        </label>
-                        <label class="juli">
-                            C类项目数<span class="lanse-first" style="color: #ff0d56">{{beginRate.ctotal}}</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
+                                    <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
                                 </div>
                             </div>
                         </label>
                         <label class="juli">
-                            D类项目数<span class="lanse-first">{{beginRate.dtotal}}</span>
+                            已签约<span class="lanse-first" style="color: #FFAD0D">{{beginRate.signedNum}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
+                                    <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
                                 </div>
                             </div>
                         </label>
                         <label class="juli">
-                            其它项目数<span class="lanse-first">{{beginRate.total - beginRate.atotal - beginRate.btotal - beginRate.ctotal - beginRate.dtotal}}</span>
+                            已备案/已核准<span class="lanse-first" style="color: #FFAD0D">{{beginRate.recordAndApproveNum}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
+                                    <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
                                 </div>
                             </div>
                         </label>
+<%--                        <label class="juli">--%>
+<%--                            A类项目数<span class="lanse-first" style="color: #FFAD0D">{{beginRate.atotal}}</span>--%>
+<%--                            <div class="progress-div">--%>
+<%--                                <div class="layui-progress">--%>
+<%--                                    <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </label>--%>
+<%--                        <label class="juli">--%>
+<%--                            B类项目数<span class="lanse-first" style="color: #E0534E">{{beginRate.btotal}}</span>--%>
+<%--                            <div class="progress-div">--%>
+<%--                                <div class="layui-progress">--%>
+<%--                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </label>--%>
+<%--                        <label class="juli">--%>
+<%--                            C类项目数<span class="lanse-first" style="color: #ff0d56">{{beginRate.ctotal}}</span>--%>
+<%--                            <div class="progress-div">--%>
+<%--                                <div class="layui-progress">--%>
+<%--                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </label>--%>
+<%--                        <label class="juli">--%>
+<%--                            D类项目数<span class="lanse-first">{{beginRate.dtotal}}</span>--%>
+<%--                            <div class="progress-div">--%>
+<%--                                <div class="layui-progress">--%>
+<%--                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </label>--%>
+<%--                        <label class="juli">--%>
+<%--                            其它项目数<span class="lanse-first">{{beginRate.total - beginRate.atotal - beginRate.btotal - beginRate.ctotal - beginRate.dtotal}}</span>--%>
+<%--                            <div class="progress-div">--%>
+<%--                                <div class="layui-progress">--%>
+<%--                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </label>--%>
                     </div>
                     <div style="display: flex;margin-bottom: 3px" class="second_line">
                         <label class="juli" @click="levelList('subjects',item.title,item.code)"
@@ -901,7 +933,9 @@
                             {field: 'subName', title: '项目名称', minWidth: 200},
                             {field: 'subjectId', title: '项目所在地', minWidth: 200},
                             {field: 'content', title: '项目建设内容', minWidth: 300,},
-                            {field: 'amtTotal', title: '投资金额(亿元)', minWidth: 200},
+                            {field: 'amtTotal', title: '投资金额(亿元)', minWidth: 200,
+                                templet: d => `<span class="new-roman">` + d.amtTotal + `</span>` + "亿元"
+                            },
                             {field: 'progress', title: '进展情况', minWidth: 200},
                             {field: 'remark', title: '备注', minWidth: 200},
                             {title: '操作', width: 180, toolbar: '#toolBar', fixed: 'right',},

+ 65 - 142
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_reserve_sum.jsp

@@ -93,7 +93,7 @@
                             </div>
                         </label>
                         <label class="juli">
-                            未开工项目数<span class="lanse-first">{{beginRate.noNum}}</span>
+                            正在谋划<span class="lanse-first" style="color: #FFAD0D">{{beginRate.bePlanningNum}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
                                     <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
@@ -101,50 +101,83 @@
                             </div>
                         </label>
                         <label class="juli">
-                            已开工项目数<span class="lanse-first">{{beginRate.beginNum}}</span>
+                            正在洽谈<span class="lanse-first" style="color: #FFAD0D">{{beginRate.negotiationNum}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
+                                    <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
+                                </div>
+                            </div>
+                        </label>
+                        <label class="juli">
+                            已签约<span class="lanse-first" style="color: #FFAD0D">{{beginRate.signedNum}}</span>
+                            <div class="progress-div">
+                                <div class="layui-progress">
+                                    <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
                                 </div>
                             </div>
                         </label>
-                        <%--  <label class="juli">
-                              已竣工项目数<span class="lanse-first">{{beginRate.endNum}}</span>
-                              <div class="progress-div">
-                                  <div class="layui-progress">
-                                      <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>
-                                  </div>
-                              </div>
-                          </label>
-                          <label class="juli">
-                              停工项目数<span class="lanse-first">{{beginRate.stopNum}}</span>
-                              <div class="progress-div">
-                                  <div class="layui-progress" lay-filter="layui-progress-bar">
-                                      <div class="layui-progress-bar" :style="'width:'+beginRate.stopRate"></div>
-                                  </div>
-                              </div>
-                          </label>
-  --%>
                         <label class="juli">
-                            开工率<span class="lanse-first">{{beginRate.beginRate}}</span>
+                            已备案/已核准<span class="lanse-first" style="color: #FFAD0D">{{beginRate.recordAndApproveNum}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
+                                    <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
                                 </div>
                             </div>
                         </label>
+<%--                        <label class="juli">--%>
+<%--                            A类项目数<span class="lanse-first" style="color: #FFAD0D">{{beginRate.atotal}}</span>--%>
+<%--                            <div class="progress-div">--%>
+<%--                                <div class="layui-progress">--%>
+<%--                                    <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </label>--%>
+<%--                        <label class="juli">--%>
+<%--                            B类项目数<span class="lanse-first" style="color: #E0534E">{{beginRate.btotal}}</span>--%>
+<%--                            <div class="progress-div">--%>
+<%--                                <div class="layui-progress">--%>
+<%--                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </label>--%>
+<%--                        <label class="juli">--%>
+<%--                            C类项目数<span class="lanse-first" style="color: #ff0d56">{{beginRate.ctotal}}</span>--%>
+<%--                            <div class="progress-div">--%>
+<%--                                <div class="layui-progress">--%>
+<%--                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </label>--%>
+<%--                        <label class="juli">--%>
+<%--                            D类项目数<span class="lanse-first">{{beginRate.dtotal}}</span>--%>
+<%--                            <div class="progress-div">--%>
+<%--                                <div class="layui-progress">--%>
+<%--                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </label>--%>
+<%--                        <label class="juli">--%>
+<%--                            其它项目数<span class="lanse-first">{{beginRate.total - beginRate.atotal - beginRate.btotal - beginRate.ctotal - beginRate.dtotal}}</span>--%>
+<%--                            <div class="progress-div">--%>
+<%--                                <div class="layui-progress">--%>
+<%--                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </label>--%>
                     </div>
+
                     <div style="display: flex;margin-bottom: 3px" class="second_line">
-                        <label class="juli" @click="levelList('subjects',item.split(',')[1],item.split(',')[0])"
-                               v-for="(item, index) in beginRate.jsddList" :key="index">
-                            {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        <label class="juli" @click="levelList('subjects',item.title,item.code)"
+                               v-for="(item, index) in beginRate.subjectIdList" :key="index">
+                            {{item.title}}<span class="lanse-first">{{item.total}}</span>
                         </label>
                     </div>
+
                     <div style="margin-bottom: 3px" class="second_line">
                         <label class="juli"
-                               @click="levelList('indusKinds',item.split(',')[1]?item.split(',')[1]:item.split(',')[0],item.split(',')[3])"
-                               v-for="(item, index) in beginRate.hyflList" :key="index">
-                            {{item.split(",")[1]?item.split(",")[1]:item.split(",")[0]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                               @click="levelList('indusKinds',item.title,item.code)"
+                               v-for="(item, index) in beginRate.indusKindList" :key="index">
+                            {{item.title}}<span class="lanse-first">{{item.total}}</span>
                         </label>
                     </div>
                 </div>
@@ -327,7 +360,7 @@
         };
         }}
         <span title="">
-        <span class="qianse">总投资:</span><strong class="lanse">{{d.amtTotal}}</strong> 万元 <br/>
+        <span class="qianse">总投资:</span><strong class="lanse new-roman">{{d.amtTotal}}</strong> 万元 <br/>
     </span>
     </script>
 
@@ -492,77 +525,6 @@
             methods: {
                 init: function () {
                     this.winH = document.body.clientHeight;
-                  /*  layui.laydate.render({
-                        elem: '#startTime',
-                        theme: layDateTheme,
-                        range: '~'
-                    });
-                    var nowdate = new Date();
-                    nowdate.setMonth(nowdate.getMonth() + 1);
-                    var y = nowdate.getFullYear();
-                    var m = nowdate.getMonth() + 1;
-                    var d = nowdate.getDate();
-                    var formatwdate = y + '-' + m + '-' + d;
-                    layui.laydate.render({
-                        elem: '#dateConfirm',
-                        theme: layDateTheme,
-                        value: formatwdate
-                    });
-                    layui.laydate.render({
-                        elem: '#openDate',
-                        theme: layDateTheme,
-                        value: formatwdate
-                    });
-                    /!*   $("#month").val(new Date().getMonth() + 1);*!/
-                    var xmlx = [];
-                    <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
-                    });
-                    var indusKindData = [];
-                    <c:forEach items="${HYFL}" var="xm">
-                    indusKindData.push({value: "${xm.id}", name: "${xm.title}"});
-                    </c:forEach>
-                    this.indusKind = layui.xmSelect.render({
-                        el: "#indusKind",
-                        language: 'zn',
-                        data: indusKindData
-                    });
-                    layui.laydate.render({
-                        elem: '#year',
-                        type: 'year',
-                        theme: layDateTheme,
-                        btns: ['now', 'confirm'],
-                        value: ${curYear}
-                    });
-                    var params = window.localStorage.getItem(this.cacheName);
-                    if (params) {
-                        layui.form.val("searchForm", JSON.parse(params));
-                    }
-                    if (${ isHydw }) {
-                        this.light = layui.xmSelect.render({
-                            el: "#light",
-                            language: 'zn',
-                            data: [
-                                /!*       {value: '0', name: '绿灯'},*!/
-                                {value: '1', name: '黄灯'},
-                                {value: '2', name: '红灯'}
-                            ]
-                        })
-                    }
-                    ;
-                    document.getElementById("exportId", function () {
-                        self.showExport = true;
-                        console.log('移入了')
-                    })
-                    document.getElementById("exportId", function () {
-                        self.showExport = false;
-                        console.log('移出了')
-                    })*/
                     var self = this;
                     layui.upload.render({
                         elem: '#importExc'
@@ -700,55 +662,16 @@
                     param.orderType = this.sort.type || null;
                     param.queryType = null;
                     console.log(param);
-                    App.postJson("/api/subInfo/query/all", param, function (res) {
+
+                    App.postJson("/api/subInfo/query/subFixGetAllCb", param, function (res) {
                         self.dataList = res.rows;
                         self.loadPage(res.total);
                         self.loadTable(param);
                     });
 
-                    App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+                    App.postJson("/api/subInfo/query/subFixGetBeginRate", param, function (res) {
                         if (res.success) {
                             self.beginRate = res.data;
-                            self.beginRate.hyflList = self.beginRate.hyflData.split(";");
-                            self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
-                            self.beginRate.jsddList = self.beginRate.jsddData.split(";");
-                            res.data.yearAmtSj = (res.data.yearAmtSj ? res.data.yearAmtSj : 0);
-                            res.data.yearAmtAssign = (res.data.yearAmtAssign ? res.data.yearAmtAssign : 0);
-                            res.data.yearAmt = (res.data.yearAmt ? res.data.yearAmt : 0);
-
-                            self.beginRate.yearAmtSj = res.data.monthAmtSj
-                            self.beginRate.yearAmtAssign = res.data.monthAmtAssign
-                            self.beginRate.yearAmt = res.data.monthAmt
-                            if (res.data.total != 0) {
-                                self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
-                                self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2);
-                            } else {
-                                self.beginRate.beginRate = 0;
-                                self.beginRate.endRate = 0;
-                            }
-                            if (res.data.yearAmt != 0) {
-                                self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
-                            } else if (res.data.yearAmtSj != 0) {
-                                self.beginRate.amtRate = 100;
-                            } else {
-                                self.beginRate.amtRate = 0;
-                            }
-                            if (res.data.total != 0) {
-                                self.beginRate.noRate = (res.data.noNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.stopRate = (res.data.stopNum * 100 / res.data.total).toFixed(2) + '%';
-                            } else {
-                                self.beginRate.noRate = "0%";
-                                self.beginRate.beginRate = "0%";
-                                self.beginRate.endRate = "0%";
-                                self.beginRate.stopRate = "0%";
-                            }
-
-                        } else {
-                            self.beginRate.beginRate = 0;
-                            self.beginRate.amtRate = 0;
-                            self.beginRate.endRate = 0;
                         }
                     });
                 },

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

@@ -945,7 +945,9 @@
                             {field: 'subName', title: '项目名称', minWidth: 200},
                             {field: 'subjectId', title: '项目所在地', minWidth: 200},
                             {field: 'content', title: '项目基本情况', minWidth: 200},
-                            {field: 'rgDate', title: '升规入统时间', minWidth: 200},
+                            {field: 'rgDate', title: '升规入统时间', minWidth: 200,
+                                templet: d => `<span class="new-roman">` + d.rgDate + `</span>`
+                            },
                             {field: 'progress', title: '进展情况', minWidth: 200},
                             {field: 'remark', title: '备注', minWidth: 200},
                             {title: '操作', width: 180, toolbar: '#toolBar', fixed: 'right',},

+ 16 - 142
projects/src/main/webapp/vmodules/subject/subInfo/tz/year_sum_sum.jsp

@@ -345,7 +345,7 @@
                 <div class="layui-form-item">
                     <div style="display: flex">
                         <label class="juli">
-                            新建项目总数<span class="lanse-first">{{beginRate.total}}</span>
+                            投产项目总数<span class="lanse-first">{{beginRate.total}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
                                     <div class="layui-progress-bar"></div>
@@ -353,66 +353,15 @@
                             </div>
                         </label>
                         <label class="juli">
-                            未开工项目数<span class="lanse-first">{{beginRate.noNum}}</span>
+                            已入规<span class="lanse-first">{{beginRate.rgTotal}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.noRate"></div>
-                                </div>
-                            </div>
-                        </label>
-                        <label class="juli">
-                            已开工项目数<span class="lanse-first">{{beginRate.beginNum}}</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
-                                </div>
-                            </div>
-                        </label>
-                        <%--  <label class="juli">
-                              已竣工项目数<span class="lanse-first">{{beginRate.endNum}}</span>
-                              <div class="progress-div">
-                                  <div class="layui-progress">
-                                      <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>
-                                  </div>
-                              </div>
-                          </label>
-                          <label class="juli">
-                              停工项目数<span class="lanse-first">{{beginRate.stopNum}}</span>
-                              <div class="progress-div">
-                                  <div class="layui-progress" lay-filter="layui-progress-bar">
-                                      <div class="layui-progress-bar" :style="'width:'+beginRate.stopRate"></div>
-                                  </div>
-                              </div>
-                          </label>
-  --%>
-                        <label class="juli">
-                            开工率<span class="lanse-first">{{beginRate.beginRate}}</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.beginRate"></div>
-                                </div>
-                            </div>
-                        </label>
-                        <%-- <label class="juli">
-                             竣工率<span class="lanse-first">{{beginRate.endRate}}</span>
-                             <div class="progress-div">
-                                 <div class="layui-progress">
-                                     <div class="layui-progress-bar" :style="'width:'+beginRate.endRate"></div>
-                                 </div>
-                             </div>
-                         </label>--%>
-                    </div>
-                    <div style="display: flex">
-                        <label class="juli">
-                            投资进度<span class="lanse-first">{{beginRate.amtRate}}%</span>
-                            <div class="progress-div">
-                                <div class="layui-progress">
-                                    <div class="layui-progress-bar" :style="'width:'+beginRate.amtRate+'%'"></div>
+                                    <div class="layui-progress-bar"></div>
                                 </div>
                             </div>
                         </label>
                         <label class="juli">
-                            年初计划<span class="lanse-first">{{beginRate.yearAmt}}亿元</span>
+                            未入规<span class="lanse-first">{{beginRate.total - beginRate.rgTotal}}</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
                                     <div class="layui-progress-bar"></div>
@@ -420,7 +369,7 @@
                             </div>
                         </label>
                         <label class="juli">
-                            月实际<span class="lanse-first">{{beginRate.yearAmtSj}}亿元</span>
+                            入规率<span class="lanse-first">{{beginRate.rgl}}%</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
                                     <div class="layui-progress-bar"></div>
@@ -428,7 +377,7 @@
                             </div>
                         </label>
                         <label class="juli">
-                            月任务<span class="lanse-first">{{beginRate.yearAmtAssign}}亿元</span>
+                            投产率<span class="lanse-first">{{beginRate.tcl}}%</span>
                             <div class="progress-div">
                                 <div class="layui-progress">
                                     <div class="layui-progress-bar"></div>
@@ -437,21 +386,16 @@
                         </label>
                     </div>
                     <div style="display: flex;margin-bottom: 3px" class="second_line">
-
-                        <label @click="levelList('kindNatures',item.split(',')[1],item.split(',')[0])" class="juli"
-                               v-for="(item, index) in beginRate.tzlxList" :key="index">
-                            {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
-                        </label>
-                        <label class="juli" @click="levelList('subjects',item.split(',')[1],item.split(',')[0])"
-                               v-for="(item, index) in beginRate.jsddList" :key="index">
-                            {{item.split(",")[1]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                        <label class="juli" @click="levelList('subjects',item.title,item.code)"
+                               v-for="(item, index) in beginRate.subjectIdList" :key="index">
+                            {{item.title}}<span class="lanse-first">{{item.total}}</span>
                         </label>
                     </div>
                     <div style="margin-bottom: 3px" class="second_line">
                         <label class="juli"
-                               @click="levelList('indusKinds',item.split(',')[1]?item.split(',')[1]:item.split(',')[0],item.split(',')[3])"
-                               v-for="(item, index) in beginRate.hyflList" :key="index">
-                            {{item.split(",")[1]?item.split(",")[1]:item.split(",")[0]}}<span class="lanse-first">{{item.split(",")[2]}}</span>
+                               @click="levelList('indusKinds',item.title,item.code)"
+                               v-for="(item, index) in beginRate.indusKindList" :key="index">
+                            {{item.title}}<span class="lanse-first">{{item.total}}</span>
                         </label>
                     </div>
                 </div>
@@ -466,19 +410,6 @@
                     </div>
                     <div class="sanjiao"></div>
                     <div class="export-item" v-if="showExport" style="right: 5px;top:-30px">
-                        <%--                        <button type="button" class="" @click="exportExcel">--%>
-                        <%--                            项目汇总--%>
-                        <%--                        </button>--%>
-                        <%--                        <button type="button" class=""--%>
-                        <%--                                @click="exportExcelByIndusKind">按所属行业--%>
-                        <%--                        </button>--%>
-                        <%--                        <button type="button" class=""--%>
-                        <%--                                @click="exportSchedulingExcel">项目调度表--%>
-                        <%--                        </button>--%>
-                        <%--                        <!-- <button type="button" class="" @click="exportExcel2">项目明细导出</button> -->--%>
-                        <%--                        <button type="button" class=""--%>
-                        <%--                                @click="exportMoreExcel">自定义--%>
-                        <%--                        </button>--%>
                         <button type="button" class=""
                                 @click="exportProject">项目汇总
                         </button>
@@ -658,22 +589,6 @@
         <span style="font-size:16px;font-weigh:500 !important;color: #FF9600">{{d.abc||''}}</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="">
-        <span class="qianse">总投资:</span><strong class="lanse">{{d.amtTotal}}</strong> 万元 <br/>
-		 <span class="qianse">已完成投资:</span><strong class="lanse">{{d.allAmt}}</strong>			万元(<i
-                class="lanse">{{computedPer(d.amtTotal, d.allAmt)}} %</i> )<br/>
-		<span class="qianse">年度计划投资:</span><strong class="lanse">{{d.yearPlanAmt}}</strong> 万元 <br/>
-		<span class="qianse">年度完成投资:</span><strong class="lanse">{{d.yearEndAmt}}</strong>			万元(<i
-                class="lanse">{{computedPer(d.yearPlanAmt, d.yearEndAmt)}} %</i> )
-
-    </span>
-    </script>
 
     <script type="text/html" id="leaderInfo">
         <span title="">
@@ -1078,55 +993,16 @@
                     param.subCat = '2';
                     param.subYear = this.getSearchParams().year;
                     console.log(param);
-                    App.postJson("/api/subInfo/query/all", param, function (res) {
+                    App.postJson("/api/subInfo/query/subFixGetAllTc", param, function (res) {
                         self.dataList = res.rows;
                         self.loadPage(res.total);
                         self.loadTable(param);
                     });
 
-                    App.postJson("/api/subInfo/query/beginRate", param, function (res) {
+                    App.postJson("/api/subInfo/query/subFixGetBeginRate", param, function (res) {
                         if (res.success) {
+                            console.log("获取到的数据:",res.data)
                             self.beginRate = res.data;
-                            self.beginRate.hyflList = self.beginRate.hyflData.split(";");
-                            self.beginRate.tzlxList = self.beginRate.tzlxData.split(";");
-                            self.beginRate.jsddList = self.beginRate.jsddData.split(";");
-                            res.data.yearAmtSj = (res.data.yearAmtSj ? res.data.yearAmtSj : 0);
-                            res.data.yearAmtAssign = (res.data.yearAmtAssign ? res.data.yearAmtAssign : 0);
-                            res.data.yearAmt = (res.data.yearAmt ? res.data.yearAmt : 0);
-
-                            self.beginRate.yearAmtSj = res.data.monthAmtSj
-                            self.beginRate.yearAmtAssign = res.data.monthAmtAssign
-                            self.beginRate.yearAmt = res.data.monthAmt
-                            if (res.data.total != 0) {
-                                self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
-                                self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2);
-                            } else {
-                                self.beginRate.beginRate = 0;
-                                self.beginRate.endRate = 0;
-                            }
-                            if (res.data.yearAmt != 0) {
-                                self.beginRate.amtRate = (res.data.yearAmtSj * 100 / res.data.yearAmt).toFixed(2);
-                            } else if (res.data.yearAmtSj != 0) {
-                                self.beginRate.amtRate = 100;
-                            } else {
-                                self.beginRate.amtRate = 0;
-                            }
-                            if (res.data.total != 0) {
-                                self.beginRate.noRate = (res.data.noNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.endRate = (res.data.endNum * 100 / res.data.total).toFixed(2) + '%';
-                                self.beginRate.stopRate = (res.data.stopNum * 100 / res.data.total).toFixed(2) + '%';
-                            } else {
-                                self.beginRate.noRate = "0%";
-                                self.beginRate.beginRate = "0%";
-                                self.beginRate.endRate = "0%";
-                                self.beginRate.stopRate = "0%";
-                            }
-
-                        } else {
-                            self.beginRate.beginRate = 0;
-                            self.beginRate.amtRate = 0;
-                            self.beginRate.endRate = 0;
                         }
                     });
                 },
@@ -1192,14 +1068,12 @@
                                 width: 100,
                                 templet: '#offsetLight'
                             },
-                            {field: 'amtTotal', title: '投资金额', minWidth: 250, templet: '#amt', sort: true},
+                            {field: 'amtTotal', title: '投资金额', minWidth: 250},
                             {field: 'fileId', title: '现场影像', width: 90, templet: '#imageDiv'},
                             {field: 'state', title: '计划时间', width: 140, templet: '#date'},
-                            // {field: 'leaderName', title: '分管领导', minWidth: 180, templet: '#leaderInfo'},
                             {field: 'statusName', title: '项目进度', width: 60},
                             {field: 'mainName', title: '日常责任监管单位', minWidth: 100},
                             {field: 'unitName', title: '项目单位', minWidth: 110},
-                            // { field: 'openLight', title: '开工红黄灯', minWidth: 150, templet: '#openLight' },
                             {title: '操作', width: 180, toolbar: '#toolBar', fixed: 'right',},
                         ]],
                         fixed: true,

+ 21 - 13
projects/src/main/webapp/vmodules/tjfx/index2.jsp

@@ -92,7 +92,7 @@
         <div class="main-layer-next">
             <div class="pieEcarts">
                 <div class="pieEcarts-title">{{drawData.year}}年各区域占比情况</div>
-                <div id="areaPieEcarts" style="height: 140px;"></div>
+                <div id="areaPieEcarts" style="height: 180px;margin-top: 30px"></div>
             </div>
             <div class="tabel-box">
                 <table id="areaTable"></table>
@@ -100,8 +100,8 @@
         </div>
         <div class="main-layer-next">
             <div class="pieEcarts">
-                <div class="pieEcarts-title">{{drawData.year}}年行业前8占比情况</div>
-                <div id="hyPieEcarts"  style="height: 215px;"></div>
+                <div class="pieEcarts-title">{{drawData.year}}年行业占比情况</div>
+                <div id="hyPieEcarts"  style="height: 180px;margin-top: 30px"></div>
             </div>
             <div class="tabel-box">
                 <table id="hyTable"></table>
@@ -110,7 +110,7 @@
         <div class="main-layer-next">
             <div class="pieEcarts">
                 <div class="pieEcarts-title">{{drawData.year}}年按建设性质占比情况</div>
-                <div id="jsPieEcarts"  style="height: 140px;"></div>
+                <div id="jsPieEcarts"  style="height: 180px;margin-top: 30px"></div>
             </div>
             <div class="tabel-box">
                 <table id="jsTable"></table>
@@ -118,13 +118,13 @@
         </div>
     </div>
     <script type="text/html" id="bZb">
-		{{d.numBZb||0}}%
+        <span class="new-roman">{{d.numBZb||0}}%</span>
 	</script>
 	<script type="text/html" id="numBl">
 		{{#if (d.numBl >= 0) { }}
-			<span style="color:green;">{{d.numBl||0}}%</span>
+			<span class="new-roman" style="color:green;">{{d.numBl||0}}%</span>
 		{{# } else { }}
-			<span style="color:red;">{{d.numBl||0}}%</span>
+			<span class="new-roman" style="color:red;">{{d.numBl||0}}%</span>
 		{{#} }}
 	</script>
     <script type="text/javascript">
@@ -464,15 +464,18 @@
     			$(".status-layer").hide();
     		},
         	initArea: function() {
-        		this.drawPieEcharts(this.areaChart, "#areaPieEcarts", "区域投资占比", this.areaData);
+        		// this.drawPieEcharts(this.areaChart, "#areaPieEcarts", "区域投资占比", this.areaData);
+        		this.drawPieEcharts(this.areaChart, "#areaPieEcarts", "", this.areaData);
         		this.drawTable("区域", "#areaTable", this.areaData);
         	},
         	initHy: function() {
-        		this.drawPieEcharts(this.hyChart, "#hyPieEcarts", "前8大行业投资占比", this.hyData);
+        		// this.drawPieEcharts(this.hyChart, "#hyPieEcarts", "前8大行业投资占比", this.hyData);
+        		this.drawPieEcharts(this.hyChart, "#hyPieEcarts", "", this.hyData);
         		this.drawTable("所属行业", "#hyTable", this.hyData);
         	},
         	initJs: function() {
-        		this.drawPieEcharts(this.jsChart, "#jsPieEcarts", "按建设性质", this.jsData);
+        		// this.drawPieEcharts(this.jsChart, "#jsPieEcarts", "按建设性质", this.jsData);
+        		this.drawPieEcharts(this.jsChart, "#jsPieEcarts", "", this.jsData);
         		this.drawTable("建设性质", "#jsTable", this.jsData);
         	},
             exportExcel:function (){
@@ -485,8 +488,8 @@
                     cols: [[ // 设置表头
                       { type: 'numbers', title: '序号', width: 44, align: 'center' },
                       { field: 'kindDesc', title: kindName, align: 'center'},
-                      { field: 'amtJh', title: year+'年计划投资额(万元)', align: 'center' },
-                      { field: 'numBZb', title: '进度占比', align: 'center',templet: "#bZb" },
+                      { field: 'amtJh', title: year+'年计划投资额(万元)', align: 'center', templet: d => '<span class="new-roman">' + d.amtJh + '</span>'},
+                      { field: 'numBZb', title: '进度占比', align: 'center',templet: "#bZb"},
                       { field: 'numBl', title: '同比增长', align: 'center',templet: "#numBl" },
                     ]],
                     limit: data.length,
@@ -768,6 +771,7 @@
     .status-text-num {
         font-size: 24px;
         color: #1C56A3;
+        font-family: "Times New Roman", Times, serif;
     }
 
     .status-text-unit {
@@ -822,7 +826,8 @@
     .pieEcarts {
         display: flex;
         flex-direction: column;
-        width: 240px;
+        /*width: 240px;*/
+        width: 360px;
         height: 100%;
     }
 
@@ -922,6 +927,9 @@
     .layui-table-cell{
         padding: 0 !important;
     }
+    .new-roman{
+        font-family: "Times New Roman", Times, serif;
+    }
 </style>
 </body>
 </html>

+ 17 - 279
projects/src/main/webapp/vmodules/workBench/zr_gzt.jsp

@@ -47,122 +47,30 @@
         <%--政府端--%>
         <div class="top_bar" v-if="kingUnit=='1'">
             <div class="left">
-                <%--				<div class="layui-card active" @click="initChart(this)">--%>
-                <%--					<div class="layui-card-header"></div>--%>
-                <%--					<div class="layui-card-body" style="padding-top: 15px;">--%>
-                <%--						<img src="${WebSite.asset }/css/images/u394.svg" /> 工作台账--%>
-                <%--					</div>--%>
-                <%--				</div>--%>
-<%--                <div class="layui-card" @click="getTotalTodo(this)">--%>
-<%--                    <div class="layui-card-body">--%>
-<%--                        <div class="img_num">--%>
-<%--                            <img src="${WebSite.asset }/css/images/workPlat/backlog.png"/>--%>
-<%--                            <span class="num">${numData.num_1}</span>--%>
-<%--                        </div>--%>
-<%--                        <div class="word">--%>
-<%--                            待办事项--%>
-<%--                        </div>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-<%--                <div class="line"></div>--%>
-                <%-- <div class="layui-card" @click="getTotalDo(this)">
-                    <div class="layui-card-header"></div>
-                    <div class="layui-card-body" style="padding-top: 15px;">
-                        <img src="${WebSite.asset }/css/images/u138.svg" /> 已办事项
-                    </div>
-                </div> --%>
-<%--                <div class="layui-card" @click="toYQ()">--%>
                 <div class="layui-card">
                     <div class="layui-card-body">
                         <div class="img_num">
                             <img src="${WebSite.asset }/css/images/workPlat/remind.png"/>
-<%--                            <span class="num">${numData.num_2}</span>--%>
-                            <span class="num">${warningNum}</span>
+                            <span class="num new-roman">${warningNum}</span>
                         </div>
                         <div class="word">
-<%--                            项目逾期竣工--%>
                                 预警提醒
                         </div>
                     </div>
                 </div>
-<%--                <div class="line"></div>--%>
-<%--                <div class="layui-card" @click="openCt()">--%>
-<%--                    <div class="layui-card-body">--%>
-<%--                        <div class="img_num">--%>
-<%--                            <img src="${WebSite.asset }/css/images/workPlat/remind.png"/>--%>
-<%--                            <span class="num">${openNum}</span>--%>
-<%--                        </div>--%>
-<%--                        <div class="word">--%>
-<%--                            开工红黄灯预警--%>
-<%--                        </div>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
                 <div class="line"></div>
-<%--                <div class="layui-card" @click="offsetCt()">--%>
                 <div class="layui-card" @click="toYQ">
                     <div class="layui-card-body">
                         <div class="img_num">
                             <img src="${WebSite.asset }/css/images/workPlat/remind.png"/>
-                            <span class="num">${exceedNum}</span>
+                            <span class="num new-roman">${exceedNum}</span>
                         </div>
                         <div class="word">
-<%--                            偏离度红黄灯--%>
                             进度红灯
                         </div>
                     </div>
                 </div>
-<%--                <div class="line" style="display: none"></div>--%>
-<%--                <div class="layui-card" @click="toItems(7)" style="display: none">--%>
-<%--                    <div class="layui-card-body">--%>
-<%--                        <div class="img_num">--%>
-<%--                            <img src="${WebSite.asset }/css/images/workPlat/rgb.png"/>--%>
-<%--                        </div>--%>
-<%--                        <div class="word">--%>
-<%--                            红黄绿灯--%>
-<%--                        </div>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-<%--                <div class="line"></div>--%>
-<%--                <div class="layui-card">--%>
-<%--                    <div class="layui-card-body" @click="toItems(6)">--%>
-<%--                        <div class="img_num">--%>
-<%--                            <img src="${WebSite.asset }/css/images/workPlat/wisdom.png"/>--%>
-<%--                        </div>--%>
-<%--                        <div class="word">--%>
-<%--                            智慧工地--%>
-<%--                        </div>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-                <%--                <div class="layui-card">--%>
-                <%--                    <div class="layui-card-body" @click="toItems(5)">--%>
-                <%--                        <div class="img_num">--%>
-                <%--                            <img src="${WebSite.asset }/css/images/workPlat/flow.png"/>--%>
-                <%--                        </div>--%>
-                <%--                        <div class="word">--%>
-                <%--                            办事流程--%>
-                <%--                        </div>--%>
-                <%--                    </div>--%>
-                <%--                </div>--%>
-<%--                <div class="line" style="display: none"></div>--%>
-<%--                <div class="layui-card" style="margin-bottom: 17px;display: none" >--%>
-<%--                    <div class="layui-card-body" @click="toItems(4)">--%>
-<%--                        <div class="img_num">--%>
-<%--                            <img src="${WebSite.asset }/css/images/workPlat/project.png"/>--%>
-<%--                        </div>--%>
-<%--                        <div class="word">--%>
-<%--                            包联项目--%>
-<%--                        </div>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
             </div>
-            <%--			<div class="tips">--%>
-            <%--				<span>提示:</span>--%>
-            <%--				<ul>--%>
-            <%--					<li>1.如果是新项目申报,请在&lt;<a href="${domain }/subject/subInfo/report">项目信息</a>&gt;里,点击新增进行项目申报</li>--%>
-            <%--					<li>2.如果需要查询项目基本信息和进度等,请到&lt;<a href="${domain }/subject/subInfo/projTz">项目信息台帐</a>&gt;页面查询</li>--%>
-            <%--					<li>3.进入施工阶段后,需要编制计划,项目开工申报,竣工申报,项目变更,请到&lt;<a href="${domain }/subject/process/manage">项目施工阶段管理</a>&gt;页面</li>--%>
-            <%--				</ul>--%>
-            <%--			</div>--%>
             <div class="right">
                 <div class="layui-card bgc">
                     <div class="layui-card-body" @click="toItems(1)" style="padding-top: 0;">
@@ -195,21 +103,10 @@
                     </div>
                 </div>
             </div>
-            <%--			<div class="right" @click="reportEdit()">--%>
-            <%--				<span class="layui-badge">${numData.num_3}</span>--%>
-            <%--				<img src="${WebSite.asset }/css/images/u397.svg" /> --%>
-            <%--				<span class="txt">写周报</span>--%>
-            <%--			</div>--%>
         </div>
         <%--企业端--%>
         <div class="top_bar" v-if="kingUnit=='2'">
             <div class="left" style="width: 52%">
-                <%--				<div class="layui-card active" @click="initChart(this)">--%>
-                <%--					<div class="layui-card-header"></div>--%>
-                <%--					<div class="layui-card-body" style="padding-top: 15px;">--%>
-                <%--						<img src="${WebSite.asset }/css/images/u394.svg" /> 工作台账--%>
-                <%--					</div>--%>
-                <%--				</div>--%>
                 <div class="layui-card" @click="getTotalTodo(this)">
                     <div class="layui-card-body">
                         <div class="img_num">
@@ -222,43 +119,23 @@
                     </div>
                 </div>
                 <div class="line"></div>
-                <%-- <div class="layui-card" @click="getTotalDo(this)">
-                    <div class="layui-card-header"></div>
-                    <div class="layui-card-body" style="padding-top: 15px;">
-                        <img src="${WebSite.asset }/css/images/u138.svg" /> 已办事项
-                    </div>
-                </div> --%>
                 <div class="layui-card" @click="toYQ()">
                     <div class="layui-card-body">
                         <div class="img_num">
                             <img src="${WebSite.asset }/css/images/workPlat/remind.png"/>
-                            <span class="num">${numData.num_2}</span>
+                            <span class="num new-roman">${numData.num_2}</span>
                         </div>
                         <div class="word">
-<%--                            预警提醒--%>
-<%--                                 项目逾期竣工--%>
                                 预警提醒
                         </div>
                     </div>
                 </div>
-<%--                <div class="line"></div>--%>
-<%--                <div class="layui-card" @click="openCt()">--%>
-<%--                    <div class="layui-card-body">--%>
-<%--                        <div class="img_num">--%>
-<%--                            <img src="${WebSite.asset }/css/images/workPlat/remind.png"/>--%>
-<%--                            <span class="num">${openNum}</span>--%>
-<%--                        </div>--%>
-<%--                        <div class="word">--%>
-<%--                            开工红黄灯预警--%>
-<%--                        </div>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
                 <div class="line"></div>
                 <div class="layui-card" @click="offsetCt()">
                     <div class="layui-card-body">
                         <div class="img_num">
                             <img src="${WebSite.asset }/css/images/workPlat/remind.png"/>
-                            <span class="num">${offsetNum}</span>
+                            <span class="num new-roman">${offsetNum}</span>
                         </div>
                         <div class="word">
                             偏离度红黄灯
@@ -288,22 +165,10 @@
                     </div>
                 </div>
             </div>
-<%--            <div class="tips">--%>
-<%--                <span>快捷提示</span>--%>
-<%--                <ul>--%>
-<%--                    <li>新项目申报,点击<a href="${domain }/subject/subInfo/report">项目信息</a>申报,点击新增进行项目申报;查询项目基本信息和进度等,点击<a--%>
-<%--                            href="${domain }/subject/subInfo/projTz">项目信息台帐</a>;施工阶段,编制计划,开工申报,竣工申报,项目变更,点击<a--%>
-<%--                            href="${domain }/subject/process/manage">项目施工阶段管理</a>--%>
-<%--                    </li>--%>
-<%--                </ul>--%>
-<%--            </div>--%>
             <div class="tips">
                 <span>快捷提示</span>
                 <ul>
                     <li>新项目申报,1.点击<a href="${domain }/subject/subInfo/report">【项目信息申报】</a>,然后点击新增进行项目申报;2.点击<a @click="add()">【新增项目】</a>直接进行申报;
-<%--                        查询项目基本信息和进度等,点击<a--%>
-<%--                            href="${domain }/subject/subInfo/projTz">项目信息台帐</a>;施工阶段,编制计划,开工申报,竣工申报,项目变更,点击<a--%>
-<%--                            href="${domain }/subject/process/manage">项目施工阶段管理</a>--%>
                     </li>
                 </ul>
             </div>
@@ -313,70 +178,32 @@
             <section class="section1">
                 <div class="box1">
                     <div class="build-rate-charts" id="charts-year-start"></div>
-                    <%--                    <div class="num_box">--%>
-                    <%--                        <span class="num" id="year"></span>--%>
-                    <%--                    </div>--%>
                     <div class="plan_number">
                         <div class="nummber_top" style="border-bottom: 1px solid #EDEDED;display: flex;flex-direction:column;align-items:flex-start;">
                             <div>
                                 <span class="title">项目总数</span>
-                                <span class="num" id="totalNum"></span>
+                                <span class="num new-roman" id="totalNum"></span>
                             </div>
                             <div>
                                 <span class="title">储备项目数</span>
-                                <span class="num" id="cbNum"></span>
+                                <span class="num new-roman" id="cbNum"></span>
                             </div>
                             <div>
 
                                 <span class="title">新建项目数</span>
-                                <span class="num" id="xjNum"></span>
+                                <span class="num new-roman" id="xjNum"></span>
                             </div>
                             <div>
 
                                 <span class="title">在建项目数</span>
-                                <span class="num" id="zjNum"></span>
+                                <span class="num new-roman" id="zjNum"></span>
                             </div>
                             <div>
 
                                 <span class="title">投产项目数</span>
-                                <span class="num" id="tcNum"></span>
+                                <span class="num new-roman" id="tcNum"></span>
                             </div>
-<%--                            <div class="num_box" style="border-right: 1px solid #EDEDED;">--%>
-<%--                                <span class="num_unit">--%>
-<%--                                    <span class="num" id="proTotalNum"></span>--%>
-<%--                                    <span style="font-size: 16px;color: #111111">个</span>--%>
-<%--                                </span>--%>
-<%--                                <span class="title">项目总数</span>--%>
-<%--                            </div>--%>
-<%--                            <div class="num_box">--%>
-<%--                                <span class="num_unit">--%>
-<%--                                    <span class="num" id="proDoingNum"></span>--%>
-<%--                                    <span style="font-size: 16px;color: #111111">个</span>--%>
-<%--                                </span>--%>
-<%--                                <span class="title">已开工</span>--%>
-<%--                            </div>--%>
                         </div>
-<%--                        <div class="nummber_top">--%>
-<%--                            <div class="num_box" style="border-right: 1px solid #EDEDED;">--%>
-<%--                                <span class="num_unit">--%>
-<%--                                    <span class="num" id="proNoStartNum"></span>--%>
-<%--                                    <span style="font-size: 16px;color: #111111">个</span>--%>
-<%--                                </span>--%>
-<%--                                <span class="title">未开工</span>--%>
-
-<%--                            </div>--%>
-<%--                            <!-- <div class="num_box">--%>
-<%--                                <span class="num" style="color: #fc1cf4;" id="yearPlanNum"></span>--%>
-<%--                                年度计划完成--%>
-<%--                            </div> -->--%>
-<%--                            <div class="num_box">--%>
-<%--                                <span class="num_unit">--%>
-<%--                                    <span class="num" id="proEndNum"></span>--%>
-<%--                                    <span style="font-size: 16px;color: #111111">个</span>--%>
-<%--                                </span>--%>
-<%--                                <span class="title">已竣工</span>--%>
-<%--                            </div>--%>
-<%--                        </div>--%>
                     </div>
 
                 </div>
@@ -384,102 +211,31 @@
                     <div class="nummber_top" style="border-bottom: 1px solid #EDEDED;display: flex;flex-direction:column;align-items:flex-start;justify-content: space-evenly;">
                         <div>
                             <span class="title">绿灯项目数</span>
-                            <span class="num" id="greenNum">${notExceedNum}</span>
+                            <span class="num new-roman" id="greenNum">${notExceedNum}</span>
                         </div>
                         <div>
                             <span class="title">黄灯项目数</span>
-                            <span class="num" id="yellowNum">${withinNum}</span>
+                            <span class="num new-roman" id="yellowNum">${withinNum}</span>
                         </div>
                         <div>
                             <span class="title">红灯项目数</span>
-                            <span class="num" id="redNum">${outsideNum}</span>
+                            <span class="num new-roman" id="redNum">${outsideNum}</span>
                         </div>
                     </div>
-<%--                    <div class="monthly-charts" id="charts-year-done"></div>--%>
-<%--                    <div class="plan_number">--%>
-<%--                        <div class="nummber_top" style="border-bottom: 1px solid #EDEDED;">--%>
-<%--                            <div class="num_box" style="width: 100%">--%>
-<%--                                <span class="num_unit">--%>
-<%--                                    <span class="num" id="proPlanAmt"></span>--%>
-<%--                                    <span style="font-size: 16px;color: #111111">亿</span>--%>
-<%--                                </span>--%>
-<%--                                <span class="title">年度目标总投资</span>--%>
-<%--                            </div>--%>
-<%--                        </div>--%>
-<%--                        <div class="nummber_top">--%>
-<%--                            <div class="num_box" style="border-right: 1px solid #EDEDED;width: 50%;">--%>
-<%--                                <span class="num_unit">--%>
-<%--                                    <span class="num" id="proActualTotal"></span>--%>
-<%--                                    <span style="font-size: 16px;color: #111111">亿</span>--%>
-<%--                                </span>--%>
-<%--                                <span class="title">年度计划投资</span>--%>
-<%--                            </div>--%>
-<%--                            <div class="num_box" style="border-right: 1px solid #EDEDED;width: 50%;">--%>
-<%--                                <span class="num_unit">--%>
-<%--                                    <span class="num" id="proActualTotalGt"></span>--%>
-<%--                                    <span style="font-size: 16px;color: #111111">亿</span>--%>
-<%--                                </span>--%>
-<%--                                <span class="title">年度固投金额</span>--%>
-<%--                            </div>--%>
-<%--                            <!-- <div class="num_box">--%>
-<%--                                <span class="num" style="color: #fc1cf4;" id="yearPlanNum"></span>--%>
-<%--                                年度计划完成--%>
-<%--                            </div> -->--%>
-<%--                            <div class="num_box" style="width: 50%;">--%>
-<%--                                <span class="num_unit">--%>
-<%--                                    <span class="num" id="proActualAmt"></span>--%>
-<%--                                    <span style="font-size: 16px;color: #111111">亿</span>--%>
-<%--                                </span>--%>
-<%--                                <span class="title">年度实际投资</span>--%>
-<%--                            </div>--%>
-<%--                        </div>--%>
-<%--                    </div>--%>
                 </div>
-                <%--                <div class="box3">--%>
-                <%--                    <div class="txt">整体进度</div>--%>
-                <%--                    <div class="layui-progress" lay-showPercent="true" lay-filter="demo">--%>
-                <%--                        <div class="layui-progress-bar" id="propercent"></div>--%>
-                <%--                    </div>--%>
-                <%--                </div>--%>
             </section>
             <section class="section2">
                 <div class="layui-card" style="box-shadow: 0px 0px 0px 0px transparent;">
-<%--                    <div class="layui-card-header" style="border:none;display: flex;">--%>
-<%--                        <span :class="{activeSpan:checkChart==1}" @click="checkChartFun(1)">项目数量占比</span>--%>
-<%--                        <span :class="{activeSpan:checkChart==2}" @click="checkChartFun(2)" style="margin-left: 20px;">项目投资占比</span>--%>
-<%--                    </div>--%>
                     <div class="layui-card-body" style="border:none">
                         <div class="chart" id="charts1" v-if="checkChart==1"></div>
-<%--                        <div class="chart" id="charts2" v-if="checkChart==2"></div>--%>
                     </div>
                 </div>
-<%--                <div class="layui-card" style="box-shadow: 0px 0px 0px 0px transparent;">--%>
-<%--                    <div class="layui-card-header" style="border:none">--%>
-<%--                        <span class="activeSpan">投资情况月度分析</span>--%>
-<%--                    </div>--%>
-<%--                    <div class="layui-card-body" style="border:none">--%>
-<%--                        <div class="chart" id="charts3"></div>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
             </section>
         </div>
 
     </div>
     <div id="toDo">
     </div>
-    <%--	<c:if test="${overAmount.isOver != '0' || overAmount.willOver != '0'}">--%>
-    <%--		<ul class="layui-fixbar" id="fixedBlock" style="right: 10px; bottom: 0px;width:200px;height:90px;display:none;">--%>
-    <%--		  <li class="" style="width:200px;height:26px;line-height:26px;font-size:14px;background-color:#3362c9;color:#fafafa;border-radius: 7px 7px 0px 0px;">--%>
-    <%--		  	<span style="position: relative;left: -50px;bottom:0;">逾期提醒</span>--%>
-    <%--		  </li>--%>
-    <%--		  <li class="" style="width:200px;height:32px;line-height:32px;background-color:#fff;color:#f69401;font-size:14px;" @click="loadOverDue(0)">--%>
-    <%--		  	<i class="layui-icon layui-icon-radio" style="position: relative;left: -25px;"></i><span style="position: relative;left: -15px;">即将逾期:</span><i style="position:relative;left:20px;"><span>${overAmount.willOver}</span><a href="javascript:void(0);" style="color:#5b64d7;">></a></i>--%>
-    <%--		  </li>--%>
-    <%--		  <li class="" style="width:200px;height:32px;line-height:32px;background-color:#fff;color:#ff2222;border-radius: 0px 0px 7px 7px;font-size:14px;" @click="loadOverDue(1)">--%>
-    <%--		  	<i class="layui-icon icon-diy" style="position: relative;left: -28px;"></i><span style="position: relative;left: -18px;">已逾期:</span><i style="position:relative;left:28px;"><span>${overAmount.isOver}</span><a href="javascript:void(0);" style="color:#5b64d7;">></a></i>--%>
-    <%--		  </li>--%>
-    <%--		</ul>--%>
-    <%--	</c:if>--%>
 </div>
 </body>
 <script type="text/javascript">
@@ -495,7 +251,6 @@
         methods: {
             init: function () {
                 this.initChartsYearStart();
-                // this.initChartsYearDone();
                 this.initChart();
             },
 
@@ -524,12 +279,6 @@
                             xjNum: res.data.xjNum,
                             zjNum: res.data.zjNum,
                             tcNum: res.data.tcNum
-                            // nProNum: res.data.zhData.num_X1_total,
-                            // nProNumRate: res.data.zhData.num_X1_zb,
-                            // xProNum: res.data.zhData.num_X2_total,
-                            // xProNumRate: res.data.zhData.num_X2_zb,
-                            // cProNum: res.data.zhData.num_X3_total,
-                            // cProNumRate: res.data.zhData.num_X3_zb,
                         };
                         data.chart2Data = {
                             nProMon: res.data.zhData.amt_X1_total,
@@ -566,17 +315,10 @@
                         if (res.data.yearKgl){
                             self.beginBl = res.data.yearKgl;
                         }
-                        // if(res.data.zhData.num_total!=0){
-                        //     self.beginBl = ((res.data.zhData.num_2 + res.data.zhData.num_3) * 100 / res.data.zhData.num_total).toFixed(2);
-                        // }else{
-                        //     self.beginBl=0;
-                        // }
-
                         self.initChart1(data.chart1Data);
                         self.initChart2(data.chart2Data);
                         self.initChart3(data.chart3Data);
                         self.initChartsYearStart();
-                        // self.initChartsYearDone();
                         setTimeout(() => {
                             layui.element.progress('demo', res.data.zhData.num_bl || '0%');
                         }, 100);
@@ -585,19 +327,13 @@
             },
 
             getTotalTodo: function (target) {
-                //this.changeTab(target);
                 $("#chart").hide();
-                // $("#fixedBlock").hide();
                 $("#toDo").show();
                 $("#toDo").load(App.getUrl("workBench/toDoView"));
-
-                // window.location.href = App.getUrl("/workBench/toDoView");
             },
 
             getTotalDo: function (target) {
-                // this.changeTab(target);
                 $("#chart").hide();
-                // $("#toDo").show();
                 $("#fixedBlock").hide();
                 $("#toDo").load(App.getUrl("workBench/doView"));
             },
@@ -610,7 +346,6 @@
             },
 
             toYQ: function () {
-                //window.location.href = App.getUrl("/overdue/view?overStatus=2");
                 window.location.href = App.getUrl("/problem/info/index");
 
             },
@@ -643,6 +378,7 @@
             },
 
             initChart1: function (datas) {
+                let self = this;
                 const option = {
                     grid: {
                         left: 10,
@@ -685,7 +421,10 @@
                         type: 'pie',
                         radius: ['35%', '50%'],
                         label: {
-                            formatter: '{c}个 {d}%'
+                            formatter: function(params) {
+                                return params.value + '个 ' + params.percent + '%';
+                            }
+                            // formatter: '{c}个 {d}%'
                         },
                         emphasis: {
                             label: {
@@ -1066,6 +805,5 @@
             }
         }
     })
-
 </script>
 </html>