JiangPengLi 2 months ago
parent
commit
21397e9926
32 changed files with 911 additions and 156 deletions
  1. 2 2
      projects-service/src/main/java/com/rtrh/projects/modules/problem/mapper/SubquestionInfoMapper.xml
  2. 1 1
      projects-service/src/main/java/com/rtrh/projects/modules/problem/service/impl/SubquestioninfoserviceImpl.java
  3. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.java
  4. 5 2
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubInfoMapper.xml
  5. 3 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreFlowMapper.java
  6. 10 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreFlowMapper.xml
  7. 28 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreGxjConMapper.java
  8. 39 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreGxjConMapper.xml
  9. 18 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreGxjInfoMapper.java
  10. 38 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreGxjInfoMapper.xml
  11. 1 2
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubRptContMapper.xml
  12. 45 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/po/SubPreFlowGxj.java
  13. 34 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/po/SubPreGxjCon.java
  14. 46 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/po/SubPreGxjInfo.java
  15. 20 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/ISubPreGxjInfoService.java
  16. 3 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubInfoService.java
  17. 3 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubPreFlowService.java
  18. 30 25
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubInfoServiceImpl.java
  19. 7 1
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubPreFlowServiceImpl.java
  20. 8 8
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubPreFlowUnitServiceImpl.java
  21. 67 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubPreGxjInfoServiceImpl.java
  22. 4 4
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubRptContServiceImpl.java
  23. 20 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/SubPreFlowGxjVO.java
  24. 1 1
      projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/JUnitServiceImpl.java
  25. 5 4
      projects/src/main/java/com/rtrh/projects/outapi/controller/projects/ProjectsApiController.java
  26. 2 1
      projects/src/main/java/com/rtrh/projects/web/controller/passport/api/RegisterApiController.java
  27. 32 5
      projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoController.java
  28. 24 4
      projects/src/main/java/com/rtrh/projects/web/controller/subject/api/SubPreFlowApiController.java
  29. 54 0
      projects/src/main/java/com/rtrh/projects/web/controller/subject/api/SubPreGxjInfoApiController.java
  30. 1 1
      projects/src/main/webapp/vmodules/leftMenu.jsp
  31. 335 0
      projects/src/main/webapp/vmodules/subject/subInfo/editProcedure.jsp
  32. 23 95
      projects/src/main/webapp/vmodules/subject/subInfo/tz/procedure.jsp

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

@@ -39,8 +39,8 @@
             AND us.user_id = #{userId}
         <where>
             a.logic_delete_flag = 0
-            /*and b.indus_kind in('210','99','2')*/
-            and b.status in('1','2','3','9')
+            and b.status in ('1','2','3','9')
+--             and b.indus_kind in('210','99','2')
             <if test="subjectName != null and subjectName != ''">
                 AND b.sub_name LIKE CONCAT('%', #{subjectName}, '%')
             </if>

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

@@ -1031,7 +1031,7 @@ public class SubquestioninfoserviceImpl implements Subquestioninfoservice {
 	}
 
 	@Override
-	@TargetDataSource("secondary")
+	// @TargetDataSource("secondary")
 	public Page pageBySub(Page page, String subId) {
 		PageHelper.startPage(page.getPageNo(), page.getPageSize());
 		List<Map<String, Object>> mapList = subquestionInfoMapper.pageQueryQuestionListBySubId(subId);

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

@@ -132,4 +132,6 @@ public interface SubInfoMapper {
     List<Map<String, Object>> querySubInfoStatusByIds(@Param("ids") List<String> ids);
 
     List<String> queryIds();
+
+    List<Map<String, Object>> queryAllSubNames();
 }

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

@@ -1242,8 +1242,8 @@
                 AND src.kj_month LIKE #{lastMonth}
         WHERE
             a.logic_delete_flag = 0
-          AND a.`status` = '7'
-          and a.indus_kind in('210','99','2')
+          AND a.`status` = '3'
+--           and a.indus_kind in('210','99','2')
           AND src.id IS NULL
         GROUP BY
             a.id
@@ -1328,4 +1328,7 @@
     <select id="queryIds" resultType="java.lang.String">
         select id from sub_info
     </select>
+    <select id="queryAllSubNames" resultType="java.util.Map">
+        select id,sub_name subName from sub_info where status in ("1","2","3","9")
+    </select>
 </mapper>

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

@@ -2,6 +2,7 @@ package com.rtrh.projects.modules.projects.mapper;
 
 import com.rtrh.core.repository.mybatis.MyBatisRepository;
 import com.rtrh.projects.modules.projects.po.SubPreFlow;
+import com.rtrh.projects.modules.projects.po.SubPreFlowGxj;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -12,4 +13,6 @@ public interface SubPreFlowMapper {
     List<SubPreFlow> getList();
 
     SubPreFlow findById(@Param("id") String id);
+
+    List<SubPreFlowGxj> findAllPreFlowGxj();
 }

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

@@ -42,4 +42,14 @@
         WHERE
             id = #{id}
     </select>
+    <select id="findAllPreFlowGxj" resultType="com.rtrh.projects.modules.projects.po.SubPreFlowGxj">
+        select
+            g.id as id,
+            g.title as title,
+            g.title_g as titleG,
+            g.last_update_user_id as lastUpdateUserId,
+            g.last_update_user_name as lastUpdateUserName
+        from
+            sub_pre_flow_gxj g
+    </select>
 </mapper>

+ 28 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreGxjConMapper.java

@@ -0,0 +1,28 @@
+package com.rtrh.projects.modules.projects.mapper;
+
+import com.rtrh.core.repository.mybatis.MyBatisRepository;
+import com.rtrh.projects.modules.projects.po.SubPreGxjCon;
+import com.rtrh.projects.modules.projects.vo.SubPreFlowGxjVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author jiangpengli
+ * @since 2025-03-05
+ */
+@MyBatisRepository
+public interface SubPreGxjConMapper{
+
+    void saveAll(List<SubPreGxjCon> collect);
+
+    SubPreFlowGxjVO getGxjPreNewInfo(SubPreFlowGxjVO vo);
+
+    SubPreFlowGxjVO findBySubId(@Param("subId") String subId);
+
+    List<SubPreGxjCon> findConByPreGxjId(@Param("id") String id);
+}

+ 39 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreGxjConMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.rtrh.projects.modules.projects.mapper.SubPreGxjConMapper">
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, sub_pre_gxj_id, sub_pre_flow_gxj_id, date_pre, logic_delete_flag
+    </sql>
+    <insert id="saveAll">
+        <foreach collection="list" item="item" index="index" separator=";">
+            insert into sub_pre_gxj_con (id,sub_pre_gxj_id, sub_pre_flow_gxj_id, date_pre)
+            values (#{item.id},#{item.subPreGxjId}, #{item.subPreFlowGxjId}, #{item.datePre})
+        </foreach>
+    </insert>
+    <select id="getGxjPreNewInfo" resultType="com.rtrh.projects.modules.projects.vo.SubPreFlowGxjVO">
+
+    </select>
+    <select id="findBySubId" resultType="com.rtrh.projects.modules.projects.vo.SubPreFlowGxjVO">
+        SELECT
+            id,
+            sub_id subId,
+            remark
+        FROM
+            sub_pre_gxj_info
+            where sub_id=#{subId}
+    </select>
+    <select id="findConByPreGxjId" resultType="com.rtrh.projects.modules.projects.po.SubPreGxjCon">
+        SELECT
+            id,
+            sub_pre_gxj_id subPreGxjId,
+            sub_pre_flow_gxj_id subPreFlowGxjId,
+            date_pre datePre,
+            logic_delete_flag logicDeleteFlag
+        FROM
+            sub_pre_gxj_con
+        where sub_pre_gxj_id=#{id}
+    </select>
+
+</mapper>

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

@@ -0,0 +1,18 @@
+package com.rtrh.projects.modules.projects.mapper;
+
+import com.rtrh.core.repository.mybatis.MyBatisRepository;
+import com.rtrh.projects.modules.projects.po.SubPreGxjInfo;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author jiangpengli
+ * @since 2025-03-05
+ */
+@MyBatisRepository
+public interface SubPreGxjInfoMapper  {
+
+    void save(SubPreGxjInfo info);
+}

+ 38 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubPreGxjInfoMapper.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.rtrh.projects.modules.projects.mapper.SubPreGxjInfoMapper">
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, sub_id, remark, create_user_id, create_user_name, create_time, last_update_user_id, last_update_user_name, last_update_time, logic_delete_flag
+    </sql>
+
+    <insert id="save">
+        INSERT INTO
+            sub_pre_gxj_info
+        (
+            `id`,
+            `sub_id`,
+            `remark`,
+            `create_user_id`,
+            `create_user_name`,
+            `create_time`,
+            `last_update_user_id`,
+            `last_update_user_name`,
+            `last_update_time`
+        )
+        VALUES
+            (
+                #{id},
+                #{subId},
+                #{remark},
+                #{createUserId},
+                #{createUserName},
+                #{createTime},
+                #{lastUpdateUserId},
+                #{lastUpdateUserName},
+                #{lastUpdateTime}
+            )
+    </insert>
+
+</mapper>

+ 1 - 2
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubRptContMapper.xml

@@ -30,8 +30,7 @@
         <where>
             a.logic_delete_flag = 0
             AND a.`status` = '7'
-            /*and a.indus_kind in('210','99','2')*/
-            and a.status in('1','2','3','9')
+--             and a.indus_kind in('210','99','2')
             <if test="null != subjectId and '' != subjectId">
                 AND a.subject_id = #{subjectId}
             </if>

+ 45 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/po/SubPreFlowGxj.java

@@ -0,0 +1,45 @@
+package com.rtrh.projects.modules.projects.po;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author jiangpengli
+ * @since 2025-03-04
+ */
+@Getter
+@Setter
+// @TableName("sub_pre_flow_gxj")
+public class SubPreFlowGxj implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    private String title;
+
+    private String titleG;
+
+    private String lastUpdateUserId;
+
+    private String lastUpdateUserName;
+
+    private Boolean logicDeleteFlag;
+
+
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date datePre;
+
+    public Date getDatePre() {
+        return new Date();
+    }
+}

+ 34 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/po/SubPreGxjCon.java

@@ -0,0 +1,34 @@
+package com.rtrh.projects.modules.projects.po;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author jiangpengli
+ * @since 2025-03-05
+ */
+@Getter
+@Setter
+// sub_pre_gxj_con
+public class SubPreGxjCon implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    private String subPreGxjId;
+
+    private String subPreFlowGxjId;
+
+    private String datePre;
+
+    private Boolean logicDeleteFlag;
+
+
+}

+ 46 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/po/SubPreGxjInfo.java

@@ -0,0 +1,46 @@
+package com.rtrh.projects.modules.projects.po;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author jiangpengli
+ * @since 2025-03-05
+ */
+@Getter
+@Setter
+//sub_pre_gxj_info
+public class SubPreGxjInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String id;
+
+    private String subId;
+
+    private String remark;
+
+    private String createUserId;
+
+    private String createUserName;
+
+    private Date createTime;
+
+    private String lastUpdateUserId;
+
+    private String lastUpdateUserName;
+
+    private Date lastUpdateTime;
+
+    private Boolean logicDeleteFlag;
+
+
+}

+ 20 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/ISubPreGxjInfoService.java

@@ -0,0 +1,20 @@
+package com.rtrh.projects.modules.projects.service;
+
+import com.rtrh.projects.modules.projects.vo.SubPreFlowGxjVO;
+import com.rtrh.projects.modules.system.vo.LoginUserVO;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author jiangpengli
+ * @since 2025-03-05
+ */
+public interface ISubPreGxjInfoService {
+
+    void saveGxjPreNewInfo(SubPreFlowGxjVO vo, LoginUserVO userVO);
+
+    SubPreFlowGxjVO getGxjPreNewInfo(SubPreFlowGxjVO vo, LoginUserVO loginUser);
+
+}

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

@@ -466,4 +466,7 @@ public interface SubInfoService {
 	StaticsVO statics(QTDTO qtdto);
 
 	void editStatusRedLight(SubInfoGxj vo, LoginUserVO loginUser);
+
+    List<Map<String, Object>> queryAllSubNames();
+
 }

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

@@ -3,6 +3,7 @@ package com.rtrh.projects.modules.projects.service;
 import java.util.List;
 
 import com.rtrh.projects.modules.projects.po.SubPreFlow;
+import com.rtrh.projects.modules.projects.po.SubPreFlowGxj;
 import com.rtrh.projects.modules.projects.vo.SubPreFlowAppVO;
 
 public interface SubPreFlowService {
@@ -23,4 +24,6 @@ public interface SubPreFlowService {
     List<SubPreFlow> getList();
 
 	SubPreFlow findById(String preFlowId);
+
+	List<SubPreFlowGxj> findAllPreFlowGxj();
 }

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

@@ -5353,31 +5353,31 @@ public class SubInfoServiceImpl implements SubInfoService {
     // @TargetDataSource("secondary")
     @Override
     public List<WorkBenchVO> queryExceedMonthlySize(String lastMonth) {
-        List<SubInfoGxj> list = subInfoMapper.queryStatistics(new SubInfoQueryTzVO().setStatus("3"));
-        if (CollUtil.isNotEmpty(list)){
-            List<String> ids = new ArrayList<>();
-            Map<String, SubInfoGxj> map = list.stream()
-                    .peek(e -> ids.add(e.getSubId()))
-                    .collect(Collectors.toMap(SubInfoGxj::getSubId, Function.identity(), (v1, v2) -> v1));
-            RemoteRequestDto dto = new RemoteRequestDto()
-                    .setMonth(lastMonth)
-                    .setIds(ids);
-            Object o = HttpClientUtil.fgwPostRequest("/outApi/remote/queryExceedMonthly", dto);
-            if (o != null) {
-                List<WorkBenchVO> list1 = JSON.parseArray(JSON.toJSONString(o), WorkBenchVO.class);
-                list1.forEach(e->{
-                    SubInfoGxj subInfoGxj = map.get(e.getId());
-                    if (subInfoGxj != null) {
-                        e.setSubjectId(subInfoGxj.getSubjectId());
-                        e.setIndusKind(subInfoGxj.getIndusKind());
-                        e.setAmtTotal(subInfoGxj.getAmtTotal());
-                    }
-                });
-                return list1;
-            }
-        }
-        return new ArrayList<>();
-        // return subInfoMapper.queryExceedMonthly(lastMonth);
+        // List<SubInfoGxj> list = subInfoMapper.queryStatistics(new SubInfoQueryTzVO().setStatus("3"));
+        // if (CollUtil.isNotEmpty(list)){
+        //     List<String> ids = new ArrayList<>();
+        //     Map<String, SubInfoGxj> map = list.stream()
+        //             .peek(e -> ids.add(e.getSubId()))
+        //             .collect(Collectors.toMap(SubInfoGxj::getSubId, Function.identity(), (v1, v2) -> v1));
+        //     RemoteRequestDto dto = new RemoteRequestDto()
+        //             .setMonth(lastMonth)
+        //             .setIds(ids);
+        //     Object o = HttpClientUtil.fgwPostRequest("/outApi/remote/queryExceedMonthly", dto);
+        //     if (o != null) {
+        //         List<WorkBenchVO> list1 = JSON.parseArray(JSON.toJSONString(o), WorkBenchVO.class);
+        //         list1.forEach(e->{
+        //             SubInfoGxj subInfoGxj = map.get(e.getId());
+        //             if (subInfoGxj != null) {
+        //                 e.setSubjectId(subInfoGxj.getSubjectId());
+        //                 e.setIndusKind(subInfoGxj.getIndusKind());
+        //                 e.setAmtTotal(subInfoGxj.getAmtTotal());
+        //             }
+        //         });
+        //         return list1;
+        //     }
+        // }
+        // return new ArrayList<>();
+        return subInfoMapper.queryExceedMonthly(lastMonth);
     }
 
     @Override
@@ -6070,6 +6070,11 @@ public class SubInfoServiceImpl implements SubInfoService {
         subInfoMapper.editStatusRedLight(vo);
     }
 
+    @Override
+    public List<Map<String, Object>> queryAllSubNames() {
+        return subInfoMapper.queryAllSubNames();
+    }
+
     /**
      * 计算比率并保留一位小数
      * @param numerator 分子

+ 7 - 1
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubPreFlowServiceImpl.java

@@ -8,6 +8,7 @@ import java.util.stream.Collectors;
 
 import com.alibaba.fastjson.JSON;
 import com.rtrh.projects.modules.projects.mapper.SubPreFlowMapper;
+import com.rtrh.projects.modules.projects.po.SubPreFlowGxj;
 import com.rtrh.projects.util.HttpClientUtil;
 import com.rtrh.projects.util.TargetDataSource;
 import org.hibernate.criterion.DetachedCriteria;
@@ -79,9 +80,14 @@ public class SubPreFlowServiceImpl implements SubPreFlowService {
 	}
 
 	@Override
-	@TargetDataSource("secondary")
+	// @TargetDataSource("secondary")
 	public SubPreFlow findById(String preFlowId) {
 		return subPreFlowMapper.findById(preFlowId);
 	}
 
+	@Override
+	public List<SubPreFlowGxj> findAllPreFlowGxj() {
+		return subPreFlowMapper.findAllPreFlowGxj();
+	}
+
 }

+ 8 - 8
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubPreFlowUnitServiceImpl.java

@@ -147,14 +147,14 @@ public class SubPreFlowUnitServiceImpl implements SubPreFlowUnitService {
 	}
 
 	@Override
-	@TargetDataSource("secondary")
+	// @TargetDataSource("secondary")
 	public SubPreFlowUnitVO getFlowUnitAndDepart(String id, String subjectId, String indusKind) {
-		// return subPreFlowUnitMapper.getFlowUnitAndDepart(id, subjectId, indusKind);
-		Object o = HttpClientUtil.fgwGetRequest("/outApi/remote/findPreFlowUnit",new HashMap<String, String>() {{
-			put("preFlowId", id);
-			put("subjectId", subjectId);
-			put("indusKind", indusKind);
-		}});
-		return o == null ? null : JSON.parseObject(JSON.toJSONString(o), SubPreFlowUnitVO.class);
+		return subPreFlowUnitMapper.getFlowUnitAndDepart(id, subjectId, indusKind);
+		// Object o = HttpClientUtil.fgwGetRequest("/outApi/remote/findPreFlowUnit",new HashMap<String, String>() {{
+		// 	put("preFlowId", id);
+		// 	put("subjectId", subjectId);
+		// 	put("indusKind", indusKind);
+		// }});
+		// return o == null ? null : JSON.parseObject(JSON.toJSONString(o), SubPreFlowUnitVO.class);
 	}
 }

+ 67 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubPreGxjInfoServiceImpl.java

@@ -0,0 +1,67 @@
+package com.rtrh.projects.modules.projects.service.impl;
+
+import cn.hutool.core.util.IdUtil;
+import com.rtrh.projects.modules.projects.mapper.SubPreGxjConMapper;
+import com.rtrh.projects.modules.projects.mapper.SubPreGxjInfoMapper;
+import com.rtrh.projects.modules.projects.po.SubPreGxjCon;
+import com.rtrh.projects.modules.projects.po.SubPreGxjInfo;
+import com.rtrh.projects.modules.projects.service.ISubPreGxjInfoService;
+import com.rtrh.projects.modules.projects.vo.SubPreFlowGxjVO;
+import com.rtrh.projects.modules.system.vo.LoginUserVO;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author jiangpengli
+ * @since 2025-03-05
+ */
+@Service
+public class SubPreGxjInfoServiceImpl implements ISubPreGxjInfoService {
+    @Resource
+    private SubPreGxjInfoMapper subPreGxjInfoMapper;
+
+    @Resource
+    private SubPreGxjConMapper subPreGxjConMapper;
+
+    @Override
+    public void saveGxjPreNewInfo(SubPreFlowGxjVO vo, LoginUserVO userVO) {
+        SubPreGxjInfo info = new SubPreGxjInfo();
+        String preGxjId = IdUtil.getSnowflakeNextIdStr();
+        info.setId(preGxjId);
+        info.setCreateTime(new Date());
+        info.setLastUpdateTime(new Date());
+        info.setLastUpdateUserId(userVO.getId());
+        info.setCreateUserId(userVO.getId());
+        info.setSubId(vo.getSubId());
+        info.setRemark(vo.getRemark());
+
+        subPreGxjInfoMapper.save(info);
+
+        List<SubPreGxjCon> collect = vo.getProcedureList().stream().map(item -> {
+            SubPreGxjCon subPreGxjCon = new SubPreGxjCon();
+            subPreGxjCon.setId(IdUtil.getSnowflakeNextIdStr());
+            subPreGxjCon.setSubPreGxjId(preGxjId);
+            subPreGxjCon.setSubPreFlowGxjId(item.getId());
+            subPreGxjCon.setDatePre(item.getDatePre());
+            return subPreGxjCon;
+        }).collect(Collectors.toList());
+
+        subPreGxjConMapper.saveAll(collect);
+    }
+
+    @Override
+    public SubPreFlowGxjVO getGxjPreNewInfo(SubPreFlowGxjVO vo, LoginUserVO loginUser) {
+        SubPreFlowGxjVO preFlowGxjVO = subPreGxjConMapper.findBySubId(vo.getSubId());
+        List<SubPreGxjCon> list = subPreGxjConMapper.findConByPreGxjId(preFlowGxjVO.getId());
+        preFlowGxjVO.setProcedureList(list);
+        return preFlowGxjVO;
+    }
+}

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

@@ -86,7 +86,7 @@ public class SubRptContServiceImpl implements SubRptContService {
 	private static final SimpleDateFormat MONTH_FORMAT = new SimpleDateFormat("yyyyMM");
 
 	@Override
-	@TargetDataSource("secondary")
+	// @TargetDataSource("secondary")
 	public List<RptCont> getListBySub(String subId, String year, RptContKindEnum kind) {
 		// return rptContDao.getContBySubId(subId,kind.getCode(), year);
 		return rptContMapper.getContBySubId(subId, year);
@@ -121,7 +121,7 @@ public class SubRptContServiceImpl implements SubRptContService {
 	}
 
 	@Override
-	@TargetDataSource("secondary")
+	// @TargetDataSource("secondary")
 	public Page listQuery(Page page, RptContQueryVO queryVO) {
 		List<Map<String, Object>> list =workbenchMapper.geYbFgwtList(queryVO, page.getPageNo(), page.getPageSize());
 		page.setList(list);
@@ -1085,7 +1085,7 @@ public class SubRptContServiceImpl implements SubRptContService {
 	}
 
 	@Override
-	//@TargetDataSource(value = "secondary")
+	// @TargetDataSource(value = "secondary")
 	public Page pageQueryMonthWarnData(Page page, LoginUserVO vo, PreWarnDataQueryVO queryVO) {
 		Map<String, Object> map = new HashMap<>();
 		map.put("subName", queryVO.getSubName());
@@ -1131,7 +1131,7 @@ public class SubRptContServiceImpl implements SubRptContService {
 	}
 
 	@Override
-	@TargetDataSource(value = "secondary")
+	// @TargetDataSource(value = "secondary")
 	public List<Map<String,Object>> pageQueryMonthWarnDataDetail(LoginUserVO vo, PreWarnDataQueryVO queryVO) {
 		Map<String, Object> map = new HashMap<>();
 		map.put("subName", queryVO.getSubName());

+ 20 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/vo/SubPreFlowGxjVO.java

@@ -0,0 +1,20 @@
+package com.rtrh.projects.modules.projects.vo;
+
+import com.rtrh.projects.modules.projects.po.SubPreGxjCon;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+@Setter
+@Getter
+public class SubPreFlowGxjVO {
+
+	private String id;
+	private String subId;
+
+	private String remark;
+
+	private List<SubPreGxjCon> procedureList;
+}

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

@@ -79,7 +79,7 @@ public class JUnitServiceImpl implements JUnitService {
 	}
 
 	@Override
-	@TargetDataSource("secondary")
+	// @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  ");

+ 5 - 4
projects/src/main/java/com/rtrh/projects/outapi/controller/projects/ProjectsApiController.java

@@ -1210,10 +1210,11 @@ public class ProjectsApiController extends BaseOutApiController {
      */
     @PostMapping(value = "/getPreData")
     @TokenAuthenticate
-    public Message preDataBySubject(@RequestBody PreWarnDataQueryVO queryVO) {
-        Message message = new Message();
+    public JsonResult preDataBySubject(@RequestBody PreWarnDataQueryVO queryVO) {
+        JsonResult message = new JsonResult();
+        // Message message = new Message();
         if (request.getHeader("token") == null) {
-            message.add("header中未传token值");
+            message.setMsg("header中未传token值");
             return message;
         }
         try {
@@ -1265,7 +1266,7 @@ public class ProjectsApiController extends BaseOutApiController {
         } catch (
                 Exception e) {
             logger.error("", e);
-            message.add("获取失败已修改:" + e.getMessage());
+            message.setMsg("获取失败已修改:" + e.getMessage());
         }
         return message;
     }

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

@@ -133,7 +133,8 @@ public class RegisterApiController extends BaseController{
 			else{
 				//查询管理项目下的数据
 				if(StringUtil.isNotEmpty(teamShiroUser.getUnitId())){
-					SecUser secUser= secUserService.getByFgwId(teamShiroUser.getId());
+					// SecUser secUser= secUserService.getByFgwId(teamShiroUser.getId());
+					SecUser secUser= secUserService.getById(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");

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

@@ -351,17 +351,14 @@ public class SubInfoController extends BaseController {
             case "prePj":
                 //年度固定资产项目库 - 储备项目
                 return new ModelAndView("/vmodules/subject/subInfo/tz/pre_pj.jsp");
+            case "procedure":
+                return new ModelAndView("/vmodules/subject/subInfo/tz/procedure.jsp");
             default:
                 break;
         }
         return new ModelAndView("/vmodules/subject/subInfo/tz/main.jsp");
     }
 
-    @GetMapping(value = "/procedure")
-    public ModelAndView procedure(ModelMap model) {
-        return new ModelAndView("/vmodules/subject/subInfo/procedure.jsp");
-    }
-
     /**
      * @param model
      * @param sumParams json字符串
@@ -902,6 +899,36 @@ public class SubInfoController extends BaseController {
         return new ModelAndView("/vmodules/subject/subInfo/editSubInfo.jsp");
     }
 
+    @GetMapping("editProcedure")
+    public ModelAndView editProcedure(String subId, ModelMap model) {
+        if (StringUtil.isNotEmpty(subId)){
+            model.put("subId", subId);
+        }
+        List<JUnit> unit = jUnitService.getUnitByKind(JUnitKind.ZFDW);
+        model.addAttribute("unit", unit);
+
+
+        List<JUnit> allUnit = jUnitService.getUnitByKind(null);
+        model.addAttribute("allUnit", allUnit);
+
+        List<Map<String, Object>> subNameList = subInfoService.queryAllSubNames();
+        model.put("subNameList", subNameList);
+
+        //资金来源
+        model.put("ZJLY", tSysTableService.getByKind(SysTableKind.ZJLY));
+        //所属行业
+        model.put("HYFL", tSysTableService.getByKind(SysTableKind.HYFL));
+        //项目类型
+        model.put("XMLX", tSysTableService.getByKind(SysTableKind.XMLX));
+        //建设性质
+        model.put("JSXZ", tSysTableService.getByKind(SysTableKind.JSXZ));
+        //建设地点
+        model.put("JSDD", tSysTableService.getByKind(SysTableKind.JSDD));
+        //投资类型
+        model.put("TZXZ", tSysTableService.getByKind(SysTableKind.TZXZ));
+        return new ModelAndView("/vmodules/subject/subInfo/editProcedure.jsp");
+    }
+
     @GetMapping("editSubInfo")
     public ModelAndView editSubInfo(String subId, ModelMap model, String queryType) {
         model.put("id", subId);

+ 24 - 4
projects/src/main/java/com/rtrh/projects/web/controller/subject/api/SubPreFlowApiController.java

@@ -2,12 +2,12 @@ package com.rtrh.projects.web.controller.subject.api;
 
 import java.util.List;
 
+import com.rtrh.projects.modules.projects.po.SubPreFlowGxj;
+import com.rtrh.projects.modules.projects.service.SubPreFlowService;
+import com.rtrh.projects.modules.projects.vo.SubPreFlowGxjVO;
 import com.rtrh.projects.web.log.Log;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import com.rtrh.core.vo.Message;
 import com.rtrh.projects.modules.projects.dao.SubPreFlowUnitAllDTO;
@@ -25,6 +25,10 @@ public class SubPreFlowApiController extends BaseController {
 	@Autowired
 	private SubPreFlowUnitService subPreFlowUnitService;
 
+
+	@Autowired
+	private SubPreFlowService subPreFlowService;
+
 	@PostMapping("listOfUnitSet")
 	public Message listOfUnitSet(@RequestBody SubPreFlowQueryVO queryVO) {
 		Message message = new Message();
@@ -83,4 +87,20 @@ public class SubPreFlowApiController extends BaseController {
 		return message;
 	}
 
+
+	/**
+	 * 查找公信局前期手续
+	 */
+	@PostMapping("findGxjPreFlow")
+	public Message findGxjPreFlow() {
+		Message message = new Message();
+		try {
+			List<SubPreFlowGxj> list = subPreFlowService.findAllPreFlowGxj();
+			message.setData(list);
+		} catch (Exception e) {
+			logger.error("", e);
+			message.addError("查询失败");
+		}
+		return message;
+	}
 }

+ 54 - 0
projects/src/main/java/com/rtrh/projects/web/controller/subject/api/SubPreGxjInfoApiController.java

@@ -0,0 +1,54 @@
+package com.rtrh.projects.web.controller.subject.api;
+
+
+import com.rtrh.core.vo.Message;
+import com.rtrh.projects.modules.projects.po.SubPreFlowGxj;
+import com.rtrh.projects.modules.projects.service.ISubPreGxjInfoService;
+import com.rtrh.projects.modules.projects.service.SubPreFlowService;
+import com.rtrh.projects.modules.projects.vo.SubPreFlowGxjVO;
+import com.rtrh.projects.web.controller.BaseController;
+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.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author jiangpengli
+ * @since 2025-03-05
+ */
+@RestController
+@RequestMapping("/api/preGxjInfo")
+public class SubPreGxjInfoApiController extends BaseController {
+    @Resource
+    private ISubPreGxjInfoService subPreGxjInfoService;
+
+    @PostMapping("saveGxjPreNewInfo")
+    public Message saveGxjPreNewInfo(@RequestBody SubPreFlowGxjVO vo) {
+        Message message = new Message();
+        try {
+            subPreGxjInfoService.saveGxjPreNewInfo(vo,getCurUser().getLoginUser());
+        } catch (Exception e) {
+            message.addError("保存失败");
+        }
+        return message;
+    }
+
+    @PostMapping("getGxjPreNewInfo")
+    public Message getGxjPreNewInfo(@RequestBody SubPreFlowGxjVO vo) {
+        Message message = new Message();
+        try {
+            SubPreFlowGxjVO gxjPreNewInfo = subPreGxjInfoService.getGxjPreNewInfo(vo, getCurUser().getLoginUser());
+            message.setData(gxjPreNewInfo);
+        } catch (Exception e) {
+            message.addError("查询失败");
+        }
+        return message;
+    }
+}

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

@@ -170,7 +170,7 @@
                         {
                             txt: '手续管理',
                             code: '405',
-                            url: 'subject/subInfo/procedure',
+                            url: 'subject/subInfo/projTz?type=procedure',
                             before: function () {
                                 window.localStorage.removeItem("TzQueryParam_end_${loginUserId}")
                             }

+ 335 - 0
projects/src/main/webapp/vmodules/subject/subInfo/editProcedure.jsp

@@ -0,0 +1,335 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+         pageEncoding="UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<!DOCTYPE html>
+<html>
+<head>
+    <jsp:include page="../../common/common-meta-include.jsp"></jsp:include>
+    <jsp:include page="../../common/common-js-include.jsp"></jsp:include>
+    <jsp:include page="../../common/common-css-include.jsp"></jsp:include>
+    <!--[if lt IE 9]>
+    <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
+    <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
+    <![endif]-->
+    <style type="text/css">
+        .layui-colla-content {
+            border-width: 0px;
+            left: 11px;
+            top: 0px;
+            width: -webkit-fill-available;
+            height: 522px;
+            background: inherit;
+            background-color: rgba(255, 255, 255, 0.996078431372549);
+            border: none;
+            border-radius: 12px;
+            -moz-box-shadow: none;
+            -webkit-box-shadow: none;
+            box-shadow: none;
+        }
+
+        .table_box h2 {
+            margin-left: 30px;
+            margin-top: 20px;
+            height: 25px;
+            width: 200px;
+            font-size: 16px;
+            color: #1c56a3;
+        }
+
+        #addAmt {
+            font-size: 50px;
+        }
+
+        .layui-form-label {
+            color: #6E6F80 !important;
+        }
+
+        .layui-colla-content {
+            background: none;
+            padding: 10px 0;
+        }
+
+        .layui-form-label {
+            width: 130px;
+            text-align: justify;
+            text-align-last: justify;
+            display: flex;
+            justify-content: end;
+            align-items: center;
+            color: #666;
+            padding: 9px 15px;
+        }
+
+        .layui-input {
+            height: 38px;
+        }
+
+        .layui-input-block {
+            display: flex;
+            width: auto;
+        }
+
+        .layui-layout-admin {
+            padding: 20px 40px;
+        }
+
+        .layui-show {
+            height: auto;
+            border: none;
+        }
+
+        .layui-input-block xm-select {
+            height: 38px !important;
+        }
+
+        .layui-table-body .layui-table-cell {
+            /*padding: 10px !important;*/
+        }
+
+        .layui-table-cell {
+            height: 42px !important;
+            line-height: 42px;
+        }
+
+        /*.table_box .layui-form{*/
+        /*	width: 90.2%;*/
+        /*}*/
+    </style>
+</head>
+<body>
+<div id="app"></div>
+<input type="hidden" id="id" value="${subId}"/>
+<template id="template">
+    <div>
+        <div class="right_title">
+        </div>
+        <form class="layui-form" lay-filter="formData">
+            <div class="layui-colla-content layui-show detail">
+                <div class="table_box">
+                    <div class="layui-row">
+                        <div class="layui-col-xs6 layui-col-sm6">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label required">项目名称</label>
+                                <div class="layui-input-block">
+                                    <select lay-verify="required" lay-search="" v-model="subInfo.subId"
+                                            lay-filter="subId" id="subId">
+                                        <c:forEach items="${subNameList }" var="un">
+                                            <option value="${un.id }">${un.subName }</option>
+                                        </c:forEach>
+                                    </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">填写日期</label>--%>
+<%--                                <div class="layui-input-block">--%>
+<%--                                    <input type="text" id=lastUpdateTime readonly="readonly" required--%>
+<%--                                           placeholder="请输入" autocomplete="off" class="layui-input"--%>
+<%--                                           v-model="subInfo.lastUpdateTime">--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </div>--%>
+<%--                    </div>--%>
+<%--                    <div class="layui-row">--%>
+<%--                        <div class="layui-col-xs6 layui-col-sm6">--%>
+<%--                            <div class="layui-form-item">--%>
+<%--                                <label class="layui-form-label required"--%>
+<%--                                >填写人</label>--%>
+<%--                                <div class="layui-input-block">--%>
+<%--                                    <input type="text" required lay-verify="required" placeholder="请输入填写人"--%>
+<%--                                           autocomplete="off" class="layui-input" v-model="subInfo.addre">--%>
+<%--                                </div>--%>
+<%--                            </div>--%>
+<%--                        </div>--%>
+<%--                    </div>--%>
+                    <div class="layui-row">
+                        <div class="layui-col-xs10 layui-col-sm10">
+                            <div class='layui-form-item'>
+                                <label class="layui-form-label">备注</label>
+                                <div class="layui-input-block" style="padding: 0 10px 0 0;">
+                                    <input type="text" class="layui-input" v-model="subInfo.remark">
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="layui-row">
+                        <div class="layui-col-xs10 layui-col-sm10">
+                            <div class="layui-form-item">
+                                <label class="layui-form-label"></label>
+                                <div class="layui-input-block">
+                                    <table class="layui-table" id="procedureTable" lay-filter="procedureTable"></table>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="btn_group">
+                        <input type="button" class="btn btn1" style="color: #fff; background-color: #3362c9;"
+                               value="提交手续信息" lay-submit lay-filter="saveSubInfo"/>
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+</template>
+<script type="text/javascript">
+    new Vue({
+        el: "#app",
+        template: "#template",
+        data: {
+            // tabActive: 1,
+            subInfo: {
+            },
+            procedureList: [],
+        },
+        mounted: function () {
+            this.init();
+        },
+        methods: {
+            init: function () {
+                let self = this;
+                // layui.laydate.render({
+                //     elem: "#lastUpdateTime",
+                //     type: "date",
+                //     theme: layDateTheme,
+                //     done: function (value) {
+                //         self.subInfo.lastUpdateTime = value
+                //     }
+                // });
+                layui.laydate.render({
+                    elem: "#datePre",
+                    type: "date",
+                    theme: layDateTheme,
+                    done: function (value) {
+                        self.subInfo.datePre = value
+                    }
+                });
+                layui.form.on("select(subId)", function (data) {
+                    self.subInfo.subId = data.value;
+                });
+                layui.form.on("submit(saveSubInfo)", function (obj) {
+                    self.saveSubInfo();
+                });
+                this.getForm();
+                setTimeout(function () {
+                    self.initProcedureList();
+                }, 200);
+
+            },
+            getForm: function () {
+                var id = $("#id").val();
+                var self = this;
+
+                if (id == "") {
+                    // 新增
+                    App.postJson("/api/subPreFlow/findGxjPreFlow", {}, function (res) {
+                        if (res.success) {
+                            self.procedureList = res.data;
+                        }
+                    });
+                    // App.postJson("/api/subject/subInfo/getSubInfoNamesList", {}, function (res) {
+                    //     if (res.success) {
+                    //
+                    //     }
+                    // });
+                    //
+                } else {
+                    // 编辑
+                    App.postJson("/api/preGxjInfo/getGxjPreNewInfo", {subId: id}, function (res) {
+                        if (res.success) {
+                            self.subInfo = res.data;
+                            setTimeout(function () {
+                                layui.form.render();
+                            }, 200);
+                        }
+                    });
+                }
+            },
+            saveSubInfo: function () {
+                let self = this;
+                if (!self.subInfo.subId){
+                    App.msg.error("请选择项目");
+                    return;
+                }
+                let procedureList = layui.table.getData("procedureTable");
+                this.subInfo.procedureList = procedureList.map(item => ({
+                    id: item.id,
+                    datePre: item.datePre
+                }));
+
+
+                let saveUrl = "/api/preGxjInfo/saveGxjPreNewInfo";
+
+                App.msg.confirm("确认提交手续信息吗?", function () {
+                    console.log(self.subInfo)
+                    App.postJson(saveUrl, self.subInfo, function (res) {
+                        if (res.success) {
+                            self.closeMark = true;
+                            App.msg.success("保存成功");
+                            // App.postJson("/api/subject/subInfo/getById", {id: self.subInfo.id}, function (resc) {
+                            //     if (resc.success) {
+                            //         self.subInfo = resc.data;
+                            //         setTimeout(function () {
+                            //             layui.form.render();
+                            //         }, 200);
+                                    self.closeWin();
+                            //     }
+                            // });
+                        }
+                    });
+                })
+            },
+            initProcedureList: function () {
+                let self = this;
+                layui.table.render({
+                    elem: '#procedureTable', // 指定原始表格元素选择器(推荐id选择器)
+                    even: true,
+                    cols: [[ // 设置表头
+                        {type: 'numbers', title: '序号'},
+                        {field: 'title', title: '手续名称'},
+                        {field: 'datePre', title: '手续预计办理时间', edit: 'date',templet(e) {
+                                return '<input type="text" class="datetest" lay-event="date" value="' + e.datePre + '" />'
+                            }},
+                    ]],
+                    data: self.procedureList
+                });
+                //监听单元格事件
+                layui.table.on('tool(procedureTable)', function(obj) {
+                    console.log('tool: ', obj.event)
+                    if (obj.event === 'date') {
+                        let node = this
+                        while (node.nodeName.toLowerCase() !== 'td') {
+                            node = node.parentNode
+                        }
+                        const field = node.dataset.field;
+                        layui.laydate.render({
+                            elem: this
+                            , value: obj[field]
+                            , theme: 'molv'
+                            , closeStop: this
+                            , show: true //直接显示
+                            , done: function (value, date) {
+                                obj.data[field] = value;
+                                obj.update(obj.data);
+                            }
+                        });
+                    }
+                })
+            },
+            closeWin: function () {
+                var self = this;
+                if (!this.closeMark) {
+                    App.msg.confirm("当前信息未保存或未保存成功,确认关闭?", function () {
+                        window.history.back(-1);
+                    });
+                } else {
+                    window.history.back(-1);
+                }
+            }
+        }
+    })
+</script>
+</body>
+</html>

+ 23 - 95
projects/src/main/webapp/vmodules/subject/subInfo/tz/procedure.jsp

@@ -120,7 +120,7 @@
                 <div class="layui-colla-item">
                     <div class="layui-colla-content layui-show">
                         <form class="layui-form" lay-filter="searchForm" id="searchForm">
-                            <input type="hidden" name="queryType" value="1">
+                            <input type="hidden" name="subId" value="${subId}">
                             <div class="layui-row">
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3">
                                     <div class="layui-form-item">
@@ -162,7 +162,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">四库</label>
                                         <div class="layui-input-block">
@@ -170,16 +170,6 @@
                                         </div>
                                     </div>
                                 </div>
-                                <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParam">
-                                    <div class="layui-form-item">
-                                        <label class="layui-form-label label-longers">项目单位</label>
-                                        <div class="layui-input-block">
-                                            <input type="text" name="sbdw" placeholder="请输入项目项目单位名称"
-                                                   autocomplete="off"
-                                                   class="layui-input">
-                                        </div>
-                                    </div>
-                                </div>
                                 <div class="layui-col-xs3 layui-col-sm3 layui-col-md3 hiddenParams">
                                     <div class="layui-form-item">
                                         <label class="layui-form-label"></label>
@@ -218,12 +208,10 @@
                     </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 class="export" id="addProcedure" style="text-align: center" @click="addProcedure">
+                        <span>新建</span>
                     </div>
                 </div>
-                请先导出文件,再点击导入上传修改后的数据!
                 <table id="table1" lay-filter="test"></table>
                 <div class="pagination-box" id="pagination"></div>
             </div>
@@ -406,18 +394,10 @@
 <%-- table操作按钮 --%>
 <script type="text/html" id="toolBar">
     <div class="toolBar">
-        <span title="项目查询" lay-event="toDetail" class="no-wrap">项目查询</span>
         {{# if("${currUser.edit}" == 'true'||( d.propKind == '3' && "${currUser.id}" == d.create_user_id )) { }}
-        <span title="编辑" lay-event="toEditSubInfo" class="no-wrap">&nbsp;编辑</span>
-        {{#} }}
-        <span title="红黄灯" lay-event="toEditLight" class="no-wrap">红黄灯</span>
-        <span title="转库" lay-event="move" class="no-wrap">转库</span>
-        {{# if(d.status != '5') { }}
-        <span title="移出4库" lay-event="removeFour" class="no-wrap">移出4库</span>
-        {{#} }}
-        {{# if(d.status == '5') { }}
-        <span title="取消移除" lay-event="cancelRemove" class="no-wrap">取消移除</span>
+        <span title="编辑" lay-event="toEditProcedure" class="no-wrap">&nbsp;编辑</span>
         {{#} }}
+        <span title="删除" lay-event="toDelProcedure" class="no-wrap">删除</span>
     </div>
 </script>
 
@@ -542,6 +522,15 @@
             this.init()
         },
         methods: {
+            toEditProcedure: function (obj) {
+                window.location.href = App.getUrl("/subject/subInfo/editProcedure?subId=" + obj.data.id + "&queryType=3");
+            },
+            addProcedure(){
+                window.location.href = App.getUrl("/subject/subInfo/editProcedure?subId=");
+            },
+            delProcedure(){
+                window.location.href = App.getUrl("/subject/subInfo/addProcedure?subId=" + obj.data.id + "&queryType=3");
+            },
             // 红黄灯
             toEditLight(obj){
                 let self = this;
@@ -699,7 +688,9 @@
 
                 // var subInfoStatusData = [];
                 <c:forEach items="${subInfoStatus}" var="xm">
-                self.subInfoStatusData.push({value: "${xm.code}", name: "${xm.desc}"});
+                <c:if test="${xm.code == '1' || xm.code == '2' || xm.code == '3' || xm.code == '9'}">
+                    self.subInfoStatusData.push({value: "${xm.code}", name: "${xm.desc}"});
+                </c:if>
                 </c:forEach>
                 this.subInfoStatus = layui.xmSelect.render({
                     el: "#subInfoStatus",
@@ -887,69 +878,15 @@
                 param.pageSize = this.pageSize;
                 param.orderBy = this.sort.field;
                 param.orderType = this.sort.type || "asc";
-                // 查询 table 数据列表
-                // App.postJson("/api/subInfo/query/all", param, function (res) {
-                //     self.dataList = res.rows;
-                //     self.loadPage(res.total);
-                //     self.loadTable();
-                // });
-
+                if (param.statusList == null || param.statusList.length === 0){
+                    param.statusList = ["1","2","3","9"]
+                }
                 // 表格分页数据
                 App.postJson("/api/subInfo/query/queryPage", param, function (res) {
                     self.dataList = res.rows;
                     self.loadPage(res.total);
                     self.loadTable();
                 });
-
-                // 统计数据
-                // App.postJson("/api/subInfo/query/statistics", param, function (res) {
-                //     if (res.success) {
-                //         self.beginRate = res.data;
-                //         self.beginRate.hyflList = self.beginRate.hyflData;
-                //         self.beginRate.jsddList = self.beginRate.jsddData;
-                //     }
-                // });
-
-                /*App.postJson("/api/subInfo/query/beginRate", 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(";");
-                        if (res.data.total != 0) {
-                            self.beginRate.beginRate = (res.data.beginNum * 100 / res.data.total).toFixed(2);
-                        } else {
-                            self.beginRate.beginRate = 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) + '%';
-                            self.beginRate.aRate = (res.data.aNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.bRate = (res.data.bNum * 100 / res.data.total).toFixed(2) + '%';
-                            self.beginRate.cRate = (res.data.cNum * 100 / res.data.total).toFixed(2) + '%';
-                        } else {
-                            self.beginRate.noRate = "0%";
-                            self.beginRate.beginRate = "0%";
-                            self.beginRate.endRate = "0%";
-                            self.beginRate.stopRate = "0%";
-                            self.beginRate.aRate = "0%";
-                            self.beginRate.bRate = "0%";
-                            self.beginRate.cRate = "0%";
-                        }
-                    } else {
-                        self.beginRate.beginRate = 0;
-                        self.beginRate.amtRate = 0;
-                    }
-                });*/
             },
             getStatusName: function (status) {
                 const statusMap = {
@@ -993,14 +930,8 @@
                             width: 100,
                             templet: d => `<span class="new-roman">` + (d.amtTotal / 10000).toFixed(2) + `</span>` + "亿元",
                         },
-                        {field: 'statusName', title: '状态', width: 60},
-                        {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: '操作', width: 160, toolbar: '#toolBar', fixed: 'right'},
+                        {field: 'lastUpdateTime', title: '填写时间', width: 140},
+                        {title: '操作', width: 120, toolbar: '#toolBar', fixed: 'right'},
                     ]],
                     fixed: true,
                     height: $(window).height() - $('#table1').offset().top - 50,
@@ -1257,9 +1188,6 @@
             print: function (obj) {
                 window.open(App.getUrl("/subject/apply/downPdf?subId=" + obj.data.id));
             },
-            toEditSubInfo: function (obj) {
-                window.location.href = App.getUrl("/subject/subInfo/editSubInfo2?subId=" + obj.data.id + "&queryType=3");
-            },
             preNew: function (obj) {
                 window.location.href = App.getUrl("/subPreNew/todo?subId=" + obj.data.id);
             },