Browse Source

Merge branch 'test2' of jishutao/kede-server into prod

anderx 1 year ago
parent
commit
9b1adfcf01
33 changed files with 6229 additions and 2822 deletions
  1. 1 1
      src/main/java/com/goafanti/common/dao/ExpenseAccountExamineMapper.java
  2. 0 88
      src/main/java/com/goafanti/common/dao/TaskAnnualReportMapper.java
  3. 18 18
      src/main/java/com/goafanti/common/dao/TaskDetailsExtendMapper.java
  4. 1 0
      src/main/java/com/goafanti/common/dao/TaskDetailsMapper.java
  5. 0 85
      src/main/java/com/goafanti/common/dao/TaskDetailsSupplementMapper.java
  6. 86 0
      src/main/java/com/goafanti/common/dao/TaskFeatureLogMapper.java
  7. 86 0
      src/main/java/com/goafanti/common/dao/TaskFeatureMapper.java
  8. 4 2
      src/main/java/com/goafanti/common/mapper/ExpenseAccountExamineMapper.xml
  9. 0 181
      src/main/java/com/goafanti/common/mapper/TaskAnnualReportMapper.xml
  10. 0 374
      src/main/java/com/goafanti/common/mapper/TaskDetailsExtendMapper.xml
  11. 1042 0
      src/main/java/com/goafanti/common/mapper/TaskDetailsLogMapper.xml
  12. 695 85
      src/main/java/com/goafanti/common/mapper/TaskDetailsMapper.xml
  13. 0 414
      src/main/java/com/goafanti/common/mapper/TaskDetailsSupplementMapper.xml
  14. 239 0
      src/main/java/com/goafanti/common/mapper/TaskFeatureLogMapper.xml
  15. 217 0
      src/main/java/com/goafanti/common/mapper/TaskFeatureMapper.xml
  16. 1 1
      src/main/java/com/goafanti/common/mapper/UserLockReleaseMapper.xml
  17. 735 38
      src/main/java/com/goafanti/common/model/TaskDetails.java
  18. 0 304
      src/main/java/com/goafanti/common/model/TaskDetailsExtend.java
  19. 1073 0
      src/main/java/com/goafanti/common/model/TaskDetailsLog.java
  20. 0 351
      src/main/java/com/goafanti/common/model/TaskDetailsSupplement.java
  21. 172 0
      src/main/java/com/goafanti/common/model/TaskFeature.java
  22. 196 0
      src/main/java/com/goafanti/common/model/TaskFeatureLog.java
  23. 7 19
      src/main/java/com/goafanti/common/task/ReleaseUserTask.java
  24. 233 0
      src/main/java/com/goafanti/common/utils/excel/NewExcelUtil.java
  25. 2 1
      src/main/java/com/goafanti/organization/service/impl/OrganizationServiceImpl.java
  26. 1171 0
      src/main/java/com/goafanti/techproject/bo/OutTaskDetailsBo.java
  27. 34 569
      src/main/java/com/goafanti/techproject/bo/TaskDetailsBo.java
  28. 0 15
      src/main/java/com/goafanti/techproject/controller/AdminTaskDetailsController.java
  29. 0 88
      src/main/java/com/goafanti/techproject/controller/TaskAnnualReportController.java
  30. 32 7
      src/main/java/com/goafanti/techproject/controller/TaskDetailsController.java
  31. 15 5
      src/main/java/com/goafanti/techproject/service/TaskDetailsService.java
  32. 0 96
      src/main/java/com/goafanti/techproject/service/impl/TaskAnnualReportServiceImpl.java
  33. 169 80
      src/main/java/com/goafanti/techproject/service/impl/TaskDetailsServiceImpl.java

+ 1 - 1
src/main/java/com/goafanti/common/dao/ExpenseAccountExamineMapper.java

@@ -44,5 +44,5 @@ public interface ExpenseAccountExamineMapper {
 
     Integer selectYesByParam(@Param("id") Integer id, @Param("aid") String aid);
 
-    void updateExamine(@Param("managerId") String managerId, @Param("useId") String useId);
+    void updateExamine(@Param("managerId") String managerId, @Param("useId") String useId,@Param("depId") String depId);
 }

+ 0 - 88
src/main/java/com/goafanti/common/dao/TaskAnnualReportMapper.java

@@ -1,88 +0,0 @@
-package com.goafanti.common.dao;
-
-import com.goafanti.common.model.TaskAnnualReport;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.data.domain.Pageable;
-
-import java.util.List;
-
-/**
- * 项目年报(TaskAnnualReport)表数据库访问层
- *
- * @author makejava
- * @since 2024-12-26 13:45:50
- */
-public interface TaskAnnualReportMapper {
-
-    /**
-     * 通过ID查询单条数据
-     *
-     * @param id 主键
-     * @return 实例对象
-     */
-    TaskAnnualReport queryById(Integer id);
-
-
-    /**
-     * 查询指定行数据
-     *
-     * @param taskAnnualReport 查询条件
-     * @param pageable         分页对象
-     * @return 对象列表
-     */
-    List<TaskAnnualReport> findTaskAnnualReportList(TaskAnnualReport taskAnnualReport, @Param("pageable") Pageable pageable);
-
-    /**
-     * 统计总行数
-     *
-     * @param taskAnnualReport 查询条件
-     * @return 总行数
-     */
-    int findTaskAnnualReportCount(TaskAnnualReport taskAnnualReport);
-
-    /**
-     * 新增数据
-     *
-     * @param taskAnnualReport 实例对象
-     * @return 影响行数
-     */
-    int insert(TaskAnnualReport taskAnnualReport);
-
-    /**
-     * 批量新增数据(MyBatis原生foreach方法)
-     *
-     * @param entities List<TaskAnnualReport> 实例对象列表
-     * @return 影响行数
-     */
-    int insertBatch(@Param("entities") List<TaskAnnualReport> entities);
-
-    /**
-     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
-     *
-     * @param entities List<TaskAnnualReport> 实例对象列表
-     * @return 影响行数
-     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
-     */
-    int insertOrUpdateBatch(@Param("entities") List<TaskAnnualReport> entities);
-
-    /**
-     * 修改数据
-     *
-     * @param taskAnnualReport 实例对象
-     * @return 影响行数
-     */
-    int update(TaskAnnualReport taskAnnualReport);
-
-    /**
-     * 通过主键删除数据
-     *
-     * @param id 主键
-     * @return 影响行数
-     */
-    int deleteById(Integer id);
-
-    TaskAnnualReport selectByTidAndYear(@Param("tid") Integer tid, @Param("year") Integer year);
-
-    List<TaskAnnualReport> selectThreeYear(@Param("tid") Integer tid, @Param("year") int year);
-}
-

+ 18 - 18
src/main/java/com/goafanti/common/dao/TaskDetailsExtendMapper.java

@@ -1,18 +1,18 @@
 package com.goafanti.common.dao;
 
-import com.goafanti.common.model.TaskDetailsExtend;
+import com.goafanti.common.model.TaskDetailsLog;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.data.domain.Pageable;
 
 import java.util.List;
 
 /**
- * 项目申报详情扩展表(TaskDetailsExtend)表数据库访问层
+ * 项目申报详情日志(TaskDetailsLog)表数据库访问层
  *
  * @author makejava
- * @since 2024-12-26 17:12:02
+ * @since 2024-12-30 10:07:23
  */
-public interface TaskDetailsExtendMapper {
+public interface TaskDetailsLogMapper {
 
     /**
      * 通过ID查询单条数据
@@ -20,58 +20,58 @@ public interface TaskDetailsExtendMapper {
      * @param id 主键
      * @return 实例对象
      */
-    TaskDetailsExtend selectById(Integer id);
+    TaskDetailsLog selectById(Integer id);
 
 
     /**
      * 查询指定行数据
      *
-     * @param taskDetailsExtend 查询条件
-     * @param pageable          分页对象
+     * @param taskDetailsLog 查询条件
+     * @param pageable       分页对象
      * @return 对象列表
      */
-    List<TaskDetailsExtend> findTaskDetailsExtendList(TaskDetailsExtend taskDetailsExtend, @Param("pageable") Pageable pageable);
+    List<TaskDetailsLog> findTaskDetailsLogList(TaskDetailsLog taskDetailsLog, @Param("pageable") Pageable pageable);
 
     /**
      * 统计总行数
      *
-     * @param taskDetailsExtend 查询条件
+     * @param taskDetailsLog 查询条件
      * @return 总行数
      */
-    int findTaskDetailsExtendCount(TaskDetailsExtend taskDetailsExtend);
+    int findTaskDetailsLogCount(TaskDetailsLog taskDetailsLog);
 
     /**
      * 新增数据
      *
-     * @param taskDetailsExtend 实例对象
+     * @param taskDetailsLog 实例对象
      * @return 影响行数
      */
-    int insert(TaskDetailsExtend taskDetailsExtend);
+    int insert(TaskDetailsLog taskDetailsLog);
 
     /**
      * 批量新增数据(MyBatis原生foreach方法)
      *
-     * @param entities List<TaskDetailsExtend> 实例对象列表
+     * @param entities List<TaskDetailsLog> 实例对象列表
      * @return 影响行数
      */
-    int insertBatch(@Param("entities") List<TaskDetailsExtend> entities);
+    int insertBatch(@Param("entities") List<TaskDetailsLog> entities);
 
     /**
      * 批量新增或按主键更新数据(MyBatis原生foreach方法)
      *
-     * @param entities List<TaskDetailsExtend> 实例对象列表
+     * @param entities List<TaskDetailsLog> 实例对象列表
      * @return 影响行数
      * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
      */
-    int insertOrUpdateBatch(@Param("entities") List<TaskDetailsExtend> entities);
+    int insertOrUpdateBatch(@Param("entities") List<TaskDetailsLog> entities);
 
     /**
      * 修改数据
      *
-     * @param taskDetailsExtend 实例对象
+     * @param taskDetailsLog 实例对象
      * @return 影响行数
      */
-    int update(TaskDetailsExtend taskDetailsExtend);
+    int update(TaskDetailsLog taskDetailsLog);
 
     /**
      * 通过主键删除数据

+ 1 - 0
src/main/java/com/goafanti/common/dao/TaskDetailsMapper.java

@@ -81,5 +81,6 @@ public interface TaskDetailsMapper {
      */
     int deleteById(Integer id);
 
+    TaskDetails selectByTid(Integer id);
 }
 

+ 0 - 85
src/main/java/com/goafanti/common/dao/TaskDetailsSupplementMapper.java

@@ -1,85 +0,0 @@
-package com.goafanti.common.dao;
-
-import com.goafanti.common.model.TaskDetailsSupplement;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.data.domain.Pageable;
-
-import java.util.List;
-
-/**
- * 项目申报详情补充表(TaskDetailsSupplement)表数据库访问层
- *
- * @author makejava
- * @since 2024-12-26 17:12:11
- */
-public interface TaskDetailsSupplementMapper {
-
-    /**
-     * 通过ID查询单条数据
-     *
-     * @param id 主键
-     * @return 实例对象
-     */
-    TaskDetailsSupplement selectById(Integer id);
-
-
-    /**
-     * 查询指定行数据
-     *
-     * @param taskDetailsSupplement 查询条件
-     * @param pageable              分页对象
-     * @return 对象列表
-     */
-    List<TaskDetailsSupplement> findTaskDetailsSupplementList(TaskDetailsSupplement taskDetailsSupplement, @Param("pageable") Pageable pageable);
-
-    /**
-     * 统计总行数
-     *
-     * @param taskDetailsSupplement 查询条件
-     * @return 总行数
-     */
-    int findTaskDetailsSupplementCount(TaskDetailsSupplement taskDetailsSupplement);
-
-    /**
-     * 新增数据
-     *
-     * @param taskDetailsSupplement 实例对象
-     * @return 影响行数
-     */
-    int insert(TaskDetailsSupplement taskDetailsSupplement);
-
-    /**
-     * 批量新增数据(MyBatis原生foreach方法)
-     *
-     * @param entities List<TaskDetailsSupplement> 实例对象列表
-     * @return 影响行数
-     */
-    int insertBatch(@Param("entities") List<TaskDetailsSupplement> entities);
-
-    /**
-     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
-     *
-     * @param entities List<TaskDetailsSupplement> 实例对象列表
-     * @return 影响行数
-     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
-     */
-    int insertOrUpdateBatch(@Param("entities") List<TaskDetailsSupplement> entities);
-
-    /**
-     * 修改数据
-     *
-     * @param taskDetailsSupplement 实例对象
-     * @return 影响行数
-     */
-    int update(TaskDetailsSupplement taskDetailsSupplement);
-
-    /**
-     * 通过主键删除数据
-     *
-     * @param id 主键
-     * @return 影响行数
-     */
-    int deleteById(Integer id);
-
-}
-

+ 86 - 0
src/main/java/com/goafanti/common/dao/TaskFeatureLogMapper.java

@@ -0,0 +1,86 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.TaskFeatureLog;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+
+/**
+ * 项目申报详情日志(TaskFeatureLog)表数据库访问层
+ *
+ * @author makejava
+ * @since 2025-01-02 15:36:11
+ */
+public interface TaskFeatureLogMapper {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    TaskFeatureLog selectById(Integer id);
+
+    
+
+    /**
+     * 查询指定行数据
+     *
+     * @param taskFeatureLog 查询条件
+     * @param pageable         分页对象
+     * @return 对象列表
+     */
+    List<TaskFeatureLog> findTaskFeatureLogList(TaskFeatureLog taskFeatureLog, @Param("pageable") Pageable pageable);
+
+    /**
+     * 统计总行数
+     *
+     * @param taskFeatureLog 查询条件
+     * @return 总行数
+     */
+    int findTaskFeatureLogCount(TaskFeatureLog taskFeatureLog);
+
+    /**
+     * 新增数据
+     *
+     * @param taskFeatureLog 实例对象
+     * @return 影响行数
+     */
+    int insert(TaskFeatureLog taskFeatureLog);
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<TaskFeatureLog> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<TaskFeatureLog> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<TaskFeatureLog> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<TaskFeatureLog> entities);
+
+    /**
+     * 修改数据
+     *
+     * @param taskFeatureLog 实例对象
+     * @return 影响行数
+     */
+    int update(TaskFeatureLog taskFeatureLog);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 影响行数
+     */
+    int deleteById(Integer id);
+
+}
+

+ 86 - 0
src/main/java/com/goafanti/common/dao/TaskFeatureMapper.java

@@ -0,0 +1,86 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.TaskFeature;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
+
+/**
+ * 项目申报详情日志(TaskFeature)表数据库访问层
+ *
+ * @author makejava
+ * @since 2025-01-02 15:36:03
+ */
+public interface TaskFeatureMapper {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    TaskFeature selectById(Integer id);
+
+    
+
+    /**
+     * 查询指定行数据
+     *
+     * @param taskFeature 查询条件
+     * @param pageable         分页对象
+     * @return 对象列表
+     */
+    List<TaskFeature> findTaskFeatureList(TaskFeature taskFeature, @Param("pageable") Pageable pageable);
+
+    /**
+     * 统计总行数
+     *
+     * @param taskFeature 查询条件
+     * @return 总行数
+     */
+    int findTaskFeatureCount(TaskFeature taskFeature);
+
+    /**
+     * 新增数据
+     *
+     * @param taskFeature 实例对象
+     * @return 影响行数
+     */
+    int insert(TaskFeature taskFeature);
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<TaskFeature> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<TaskFeature> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<TaskFeature> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<TaskFeature> entities);
+
+    /**
+     * 修改数据
+     *
+     * @param taskFeature 实例对象
+     * @return 影响行数
+     */
+    int update(TaskFeature taskFeature);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 影响行数
+     */
+    int deleteById(Integer id);
+
+}
+

+ 4 - 2
src/main/java/com/goafanti/common/mapper/ExpenseAccountExamineMapper.xml

@@ -164,8 +164,10 @@
       and eaid = #{id}
   </select>
   <update id="updateExamine">
-    update expense_account_examine a ,admin b
+    update expense_account_examine a ,admin b ,expense_account c
     set a.auditor =b.id ,a.auditorName =b.name
-    where a.process_status =2 and a.auditor = #{useId} and b.id = #{managerId}
+    where c.apply_dep=#{depId} and c.id = a.eaid
+    and a.process_status =2 and a.status=0
+      and a.auditor = #{useId} and b.id = #{managerId}
   </update>
 </mapper>

+ 0 - 181
src/main/java/com/goafanti/common/mapper/TaskAnnualReportMapper.xml

@@ -1,181 +0,0 @@
-<?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.goafanti.common.dao.TaskAnnualReportMapper">
-
-    <resultMap type="com.goafanti.common.model.TaskAnnualReport" id="TaskAnnualReportMap">
-        <result property="id" column="id" jdbcType="INTEGER"/>
-        <result property="uid" column="uid" jdbcType="VARCHAR"/>
-        <result property="tid" column="tid" jdbcType="INTEGER"/>
-        <result property="year" column="year" jdbcType="INTEGER"/>
-        <result property="salesAmount" column="sales_amount" jdbcType="VARCHAR"/>
-        <result property="researchAmount" column="research_amount" jdbcType="VARCHAR"/>
-        <result property="aid" column="aid" jdbcType="VARCHAR"/>
-        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
-    </resultMap>
-
-    <sql id="TaskAnnualReportAllSql">
-        id, uid, tid, year, sales_amount, research_amount, aid, create_time
-    </sql>
-
-    <!--查询单个-->
-    <select id="queryById" resultMap="TaskAnnualReportMap">
-        select
-        <include refid="TaskAnnualReportAllSql"/>
-        from task_annual_report
-        where id = #{id}
-    </select>
-
-    <!--查询指定行数据-->
-    <select id="findTaskAnnualReportList" resultMap="TaskAnnualReportMap">
-        select
-        <include refid="TaskAnnualReportAllSql"/>
-
-        from task_annual_report
-        <where>
-            <if test="id != null">
-                and id = #{id}
-            </if>
-            <if test="uid != null and uid != ''">
-                and uid = #{uid}
-            </if>
-            <if test="tid != null">
-                and tid = #{tid}
-            </if>
-            <if test="year != null">
-                and year = #{year}
-            </if>
-            <if test="salesAmount != null">
-                and sales_amount = #{salesAmount}
-            </if>
-            <if test="researchAmount != null">
-                and research_amount = #{researchAmount}
-            </if>
-            <if test="aid != null and aid != ''">
-                and aid = #{aid}
-            </if>
-            <if test="createTime != null">
-                and create_time = #{createTime}
-            </if>
-        </where>
-        <if test="page_sql != null">
-            ${page_sql}
-        </if>
-    </select>
-
-    <!--统计总行数-->
-    <select id="findTaskAnnualReportCount" resultType="java.lang.Integer">
-        select count(1)
-        from task_annual_report
-        <where>
-            <if test="id != null">
-                and id = #{id}
-            </if>
-            <if test="uid != null and uid != ''">
-                and uid = #{uid}
-            </if>
-            <if test="tid != null">
-                and tid = #{tid}
-            </if>
-            <if test="year != null">
-                and year = #{year}
-            </if>
-            <if test="salesAmount != null">
-                and sales_amount = #{salesAmount}
-            </if>
-            <if test="researchAmount != null">
-                and research_amount = #{researchAmount}
-            </if>
-            <if test="aid != null and aid != ''">
-                and aid = #{aid}
-            </if>
-            <if test="createTime != null">
-                and create_time = #{createTime}
-            </if>
-        </where>
-    </select>
-
-
-    <!--新增所有列-->
-    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
-        insert into task_annual_report(uid, tid, year, sales_amount, research_amount, aid, create_time)
-        values (#{uid}, #{tid}, #{year}, #{salesAmount}, #{researchAmount}, #{aid}, #{createTime})
-    </insert>
-
-    <insert id="insertBatch">
-        insert into task_annual_report(uid, tid, year, sales_amount, research_amount, aid, create_time)
-        values
-        <foreach collection="entities" item="entity" separator=",">
-            (#{entity.uid}, #{entity.tid}, #{entity.year}, #{entity.salesAmount}, #{entity.researchAmount},
-            #{entity.aid}, #{entity.createTime})
-        </foreach>
-    </insert>
-
-    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
-        insert into task_annual_report(uid, tid, year, sales_amount, research_amount, aid, create_time)
-        values
-        <foreach collection="entities" item="entity" separator=",">
-            (#{entity.uid}, #{entity.tid}, #{entity.year}, #{entity.salesAmount}, #{entity.researchAmount},
-            #{entity.aid}, #{entity.createTime})
-        </foreach>
-        on duplicate key update
-        uid = values(uid),
-        tid = values(tid),
-        year = values(year),
-        sales_amount = values(sales_amount),
-        research_amount = values(research_amount),
-        aid = values(aid),
-        create_time = values(create_time)
-    </insert>
-
-    <!--通过主键修改数据-->
-    <update id="update">
-        update task_annual_report
-        <set>
-            <if test="uid != null and uid != ''">
-                uid = #{uid},
-            </if>
-            <if test="tid != null">
-                tid = #{tid},
-            </if>
-            <if test="year != null">
-                year = #{year},
-            </if>
-            <if test="salesAmount != null">
-                sales_amount = #{salesAmount},
-            </if>
-            <if test="researchAmount != null">
-                research_amount = #{researchAmount},
-            </if>
-            <if test="aid != null and aid != ''">
-                aid = #{aid},
-            </if>
-            <if test="createTime != null">
-                create_time = #{createTime},
-            </if>
-        </set>
-        where id = #{id}
-    </update>
-
-    <!--通过主键删除-->
-    <delete id="deleteById">
-        delete
-        from task_annual_report
-        where id = #{id}
-    </delete>
-
-    <select id="selectByTidAndYear" resultMap="TaskAnnualReportMap">
-        select
-        <include refid="TaskAnnualReportAllSql"/>
-        from task_annual_report
-        where tid = #{tid} and year = #{year}
-    </select>
-
-    <select id="selectThreeYear" resultMap="TaskAnnualReportMap">
-        select
-        <include refid="TaskAnnualReportAllSql"/>
-        from task_annual_report
-        where tid = #{tid} and year in (#{year}-1,#{year}-2)
-    </select>
-
-</mapper>
-

File diff suppressed because it is too large
+ 0 - 374
src/main/java/com/goafanti/common/mapper/TaskDetailsExtendMapper.xml


File diff suppressed because it is too large
+ 1042 - 0
src/main/java/com/goafanti/common/mapper/TaskDetailsLogMapper.xml


File diff suppressed because it is too large
+ 695 - 85
src/main/java/com/goafanti/common/mapper/TaskDetailsMapper.xml


+ 0 - 414
src/main/java/com/goafanti/common/mapper/TaskDetailsSupplementMapper.xml

@@ -1,414 +0,0 @@
-<?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.goafanti.common.dao.TaskDetailsSupplementMapper">
-
-    <resultMap type="com.goafanti.common.model.TaskDetailsSupplement" id="TaskDetailsSupplementMap">
-        <result property="id" column="id" jdbcType="INTEGER"/>
-        <result property="ipDeclare" column="ip_declare" jdbcType="INTEGER"/>
-        <result property="ipAuthorize" column="ip_authorize" jdbcType="INTEGER"/>
-        <result property="ipHt" column="ip_ht" jdbcType="INTEGER"/>
-        <result property="ipHtI" column="ip_ht_i" jdbcType="INTEGER"/>
-        <result property="ipHtIi" column="ip_ht_ii" jdbcType="INTEGER"/>
-        <result property="outsourcingDev" column="outsourcing_dev" jdbcType="INTEGER"/>
-        <result property="contractRegistration" column="contract_registration" jdbcType="INTEGER"/>
-        <result property="publicReleaseStipulation" column="public_release_stipulation" jdbcType="INTEGER"/>
-        <result property="publicReleaseActual" column="public_release_actual" jdbcType="INTEGER"/>
-        <result property="trainingStipulation" column="training_stipulation" jdbcType="INTEGER"/>
-        <result property="trainingActual" column="training_actual" jdbcType="INTEGER"/>
-        <result property="trainingOther" column="training_other" jdbcType="VARCHAR"/>
-        <result property="specialInspect" column="special_inspect" jdbcType="INTEGER"/>
-        <result property="simulatedAudit" column="simulated_audit" jdbcType="INTEGER"/>
-        <result property="featuredWorkOther" column="featured_work_other" jdbcType="VARCHAR"/>
-        <result property="htScore" column="ht_score" jdbcType="INTEGER"/>
-        <result property="htBatch" column="ht_batch" jdbcType="INTEGER"/>
-        <result property="htFocus" column="ht_focus" jdbcType="INTEGER"/>
-        <result property="webSubmit" column="web_submit" jdbcType="INTEGER"/>
-        <result property="webSubmitOther" column="web_submit_other" jdbcType="VARCHAR"/>
-        <result property="paperSubmit" column="paper_submit" jdbcType="INTEGER"/>
-        <result property="paperSubmitOther" column="paper_submit_other" jdbcType="VARCHAR"/>
-        <result property="reviewProvince" column="review_province" jdbcType="INTEGER"/>
-        <result property="reviewCountry" column="review_country" jdbcType="INTEGER"/>
-        <result property="reviewProvinceNumber" column="review_province_number" jdbcType="INTEGER"/>
-        <result property="reviewCountryNumber" column="review_country_number" jdbcType="INTEGER"/>
-        <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
-    </resultMap>
-
-    <sql id="TaskDetailsSupplementAllSql">
-        id, ip_declare, ip_authorize, ip_ht, ip_ht_i, ip_ht_ii, outsourcing_dev, contract_registration, public_release_stipulation, public_release_actual, training_stipulation, training_actual, training_other, special_inspect, simulated_audit, featured_work_other, ht_score, ht_batch, ht_focus, web_submit, web_submit_other, paper_submit, paper_submit_other, review_province, review_country, review_province_number, review_country_number, remarks
-    </sql>
-
-    <!--查询单个-->
-    <select id="selectById" resultMap="TaskDetailsSupplementMap">
-        select
-        <include refid="TaskDetailsSupplementAllSql"/>
-        from task_details_supplement
-        where id = #{id}
-    </select>
-
-    <!--新增所有列-->
-    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
-        insert into task_details_supplement(id,ip_declare, ip_authorize, ip_ht, ip_ht_i, ip_ht_ii, outsourcing_dev,
-                                            contract_registration, public_release_stipulation, public_release_actual,
-                                            training_stipulation, training_actual, training_other, special_inspect,
-                                            simulated_audit, featured_work_other, ht_score, ht_batch, ht_focus,
-                                            web_submit, web_submit_other, paper_submit, paper_submit_other,
-                                            review_province, review_country, review_province_number,
-                                            review_country_number, remarks)
-        values (#{id},#{ipDeclare}, #{ipAuthorize}, #{ipHt}, #{ipHtI}, #{ipHtIi}, #{outsourcingDev}, #{contractRegistration},
-                #{publicReleaseStipulation}, #{publicReleaseActual}, #{trainingStipulation}, #{trainingActual},
-                #{trainingOther}, #{specialInspect}, #{simulatedAudit}, #{featuredWorkOther}, #{htScore}, #{htBatch},
-                #{htFocus}, #{webSubmit}, #{webSubmitOther}, #{paperSubmit}, #{paperSubmitOther}, #{reviewProvince},
-                #{reviewCountry}, #{reviewProvinceNumber}, #{reviewCountryNumber}, #{remarks})
-    </insert>
-
-    <insert id="insertBatch">
-        insert into task_details_supplement(ip_declare, ip_authorize, ip_ht, ip_ht_i, ip_ht_ii, outsourcing_dev,
-        contract_registration, public_release_stipulation, public_release_actual, training_stipulation, training_actual,
-        training_other, special_inspect, simulated_audit, featured_work_other, ht_score, ht_batch, ht_focus, web_submit,
-        web_submit_other, paper_submit, paper_submit_other, review_province, review_country, review_province_number,
-        review_country_number, remarks)
-        values
-        <foreach collection="entities" item="entity" separator=",">
-            (#{entity.ipDeclare}, #{entity.ipAuthorize}, #{entity.ipHt}, #{entity.ipHtI}, #{entity.ipHtIi},
-            #{entity.outsourcingDev}, #{entity.contractRegistration}, #{entity.publicReleaseStipulation},
-            #{entity.publicReleaseActual}, #{entity.trainingStipulation}, #{entity.trainingActual},
-            #{entity.trainingOther}, #{entity.specialInspect}, #{entity.simulatedAudit}, #{entity.featuredWorkOther},
-            #{entity.htScore}, #{entity.htBatch}, #{entity.htFocus}, #{entity.webSubmit}, #{entity.webSubmitOther},
-            #{entity.paperSubmit}, #{entity.paperSubmitOther}, #{entity.reviewProvince}, #{entity.reviewCountry},
-            #{entity.reviewProvinceNumber}, #{entity.reviewCountryNumber}, #{entity.remarks})
-        </foreach>
-    </insert>
-
-    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
-        insert into task_details_supplement(ip_declare, ip_authorize, ip_ht, ip_ht_i, ip_ht_ii, outsourcing_dev,
-        contract_registration, public_release_stipulation, public_release_actual, training_stipulation, training_actual,
-        training_other, special_inspect, simulated_audit, featured_work_other, ht_score, ht_batch, ht_focus, web_submit,
-        web_submit_other, paper_submit, paper_submit_other, review_province, review_country, review_province_number,
-        review_country_number, remarks)
-        values
-        <foreach collection="entities" item="entity" separator=",">
-            (#{entity.ipDeclare}, #{entity.ipAuthorize}, #{entity.ipHt}, #{entity.ipHtI}, #{entity.ipHtIi},
-            #{entity.outsourcingDev}, #{entity.contractRegistration}, #{entity.publicReleaseStipulation},
-            #{entity.publicReleaseActual}, #{entity.trainingStipulation}, #{entity.trainingActual},
-            #{entity.trainingOther}, #{entity.specialInspect}, #{entity.simulatedAudit}, #{entity.featuredWorkOther},
-            #{entity.htScore}, #{entity.htBatch}, #{entity.htFocus}, #{entity.webSubmit}, #{entity.webSubmitOther},
-            #{entity.paperSubmit}, #{entity.paperSubmitOther}, #{entity.reviewProvince}, #{entity.reviewCountry},
-            #{entity.reviewProvinceNumber}, #{entity.reviewCountryNumber}, #{entity.remarks})
-        </foreach>
-        on duplicate key update
-        ip_declare = values(ip_declare),
-        ip_authorize = values(ip_authorize),
-        ip_ht = values(ip_ht),
-        ip_ht_i = values(ip_ht_i),
-        ip_ht_ii = values(ip_ht_ii),
-        outsourcing_dev = values(outsourcing_dev),
-        contract_registration = values(contract_registration),
-        public_release_stipulation = values(public_release_stipulation),
-        public_release_actual = values(public_release_actual),
-        training_stipulation = values(training_stipulation),
-        training_actual = values(training_actual),
-        training_other = values(training_other),
-        special_inspect = values(special_inspect),
-        simulated_audit = values(simulated_audit),
-        featured_work_other = values(featured_work_other),
-        ht_score = values(ht_score),
-        ht_batch = values(ht_batch),
-        ht_focus = values(ht_focus),
-        web_submit = values(web_submit),
-        web_submit_other = values(web_submit_other),
-        paper_submit = values(paper_submit),
-        paper_submit_other = values(paper_submit_other),
-        review_province = values(review_province),
-        review_country = values(review_country),
-        review_province_number = values(review_province_number),
-        review_country_number = values(review_country_number),
-        remarks = values(remarks)
-    </insert>
-
-    <!--通过主键修改数据-->
-    <update id="update">
-        update task_details_supplement
-        <set>
-            <if test="ipDeclare != null">
-                ip_declare = #{ipDeclare},
-            </if>
-            <if test="ipAuthorize != null">
-                ip_authorize = #{ipAuthorize},
-            </if>
-            <if test="ipHt != null">
-                ip_ht = #{ipHt},
-            </if>
-            <if test="ipHtI != null">
-                ip_ht_i = #{ipHtI},
-            </if>
-            <if test="ipHtIi != null">
-                ip_ht_ii = #{ipHtIi},
-            </if>
-            <if test="outsourcingDev != null">
-                outsourcing_dev = #{outsourcingDev},
-            </if>
-            <if test="contractRegistration != null">
-                contract_registration = #{contractRegistration},
-            </if>
-            <if test="publicReleaseStipulation != null">
-                public_release_stipulation = #{publicReleaseStipulation},
-            </if>
-            <if test="publicReleaseActual != null">
-                public_release_actual = #{publicReleaseActual},
-            </if>
-            <if test="trainingStipulation != null">
-                training_stipulation = #{trainingStipulation},
-            </if>
-            <if test="trainingActual != null">
-                training_actual = #{trainingActual},
-            </if>
-            <if test="trainingOther != null and trainingOther != ''">
-                training_other = #{trainingOther},
-            </if>
-            <if test="specialInspect != null">
-                special_inspect = #{specialInspect},
-            </if>
-            <if test="simulatedAudit != null">
-                simulated_audit = #{simulatedAudit},
-            </if>
-            <if test="featuredWorkOther != null and featuredWorkOther != ''">
-                featured_work_other = #{featuredWorkOther},
-            </if>
-            <if test="htScore != null">
-                ht_score = #{htScore},
-            </if>
-            <if test="htBatch != null">
-                ht_batch = #{htBatch},
-            </if>
-            <if test="htFocus != null">
-                ht_focus = #{htFocus},
-            </if>
-            <if test="webSubmit != null">
-                web_submit = #{webSubmit},
-            </if>
-            <if test="webSubmitOther != null and webSubmitOther != ''">
-                web_submit_other = #{webSubmitOther},
-            </if>
-            <if test="paperSubmit != null">
-                paper_submit = #{paperSubmit},
-            </if>
-            <if test="paperSubmitOther != null and paperSubmitOther != ''">
-                paper_submit_other = #{paperSubmitOther},
-            </if>
-            <if test="reviewProvince != null">
-                review_province = #{reviewProvince},
-            </if>
-            <if test="reviewCountry != null">
-                review_country = #{reviewCountry},
-            </if>
-            <if test="reviewProvinceNumber != null">
-                review_province_number = #{reviewProvinceNumber},
-            </if>
-            <if test="reviewCountryNumber != null">
-                review_country_number = #{reviewCountryNumber},
-            </if>
-            <if test="remarks != null and remarks != ''">
-                remarks = #{remarks},
-            </if>
-        </set>
-        where id = #{id}
-    </update>
-
-    <!--查询指定行数据-->
-    <select id="findTaskDetailsSupplementList" resultMap="TaskDetailsSupplementMap">
-        select
-        <include refid="TaskDetailsSupplementAllSql"/>
-
-        from task_details_supplement
-        <where>
-            <if test="id != null">
-                and id = #{id}
-            </if>
-            <if test="ipDeclare != null">
-                and ip_declare = #{ipDeclare}
-            </if>
-            <if test="ipAuthorize != null">
-                and ip_authorize = #{ipAuthorize}
-            </if>
-            <if test="ipHt != null">
-                and ip_ht = #{ipHt}
-            </if>
-            <if test="ipHtI != null">
-                and ip_ht_i = #{ipHtI}
-            </if>
-            <if test="ipHtIi != null">
-                and ip_ht_ii = #{ipHtIi}
-            </if>
-            <if test="outsourcingDev != null">
-                and outsourcing_dev = #{outsourcingDev}
-            </if>
-            <if test="contractRegistration != null">
-                and contract_registration = #{contractRegistration}
-            </if>
-            <if test="publicReleaseStipulation != null">
-                and public_release_stipulation = #{publicReleaseStipulation}
-            </if>
-            <if test="publicReleaseActual != null">
-                and public_release_actual = #{publicReleaseActual}
-            </if>
-            <if test="trainingStipulation != null">
-                and training_stipulation = #{trainingStipulation}
-            </if>
-            <if test="trainingActual != null">
-                and training_actual = #{trainingActual}
-            </if>
-            <if test="trainingOther != null and trainingOther != ''">
-                and training_other = #{trainingOther}
-            </if>
-            <if test="specialInspect != null">
-                and special_inspect = #{specialInspect}
-            </if>
-            <if test="simulatedAudit != null">
-                and simulated_audit = #{simulatedAudit}
-            </if>
-            <if test="featuredWorkOther != null and featuredWorkOther != ''">
-                and featured_work_other = #{featuredWorkOther}
-            </if>
-            <if test="htScore != null">
-                and ht_score = #{htScore}
-            </if>
-            <if test="htBatch != null">
-                and ht_batch = #{htBatch}
-            </if>
-            <if test="htFocus != null">
-                and ht_focus = #{htFocus}
-            </if>
-            <if test="webSubmit != null">
-                and web_submit = #{webSubmit}
-            </if>
-            <if test="webSubmitOther != null and webSubmitOther != ''">
-                and web_submit_other = #{webSubmitOther}
-            </if>
-            <if test="paperSubmit != null">
-                and paper_submit = #{paperSubmit}
-            </if>
-            <if test="paperSubmitOther != null and paperSubmitOther != ''">
-                and paper_submit_other = #{paperSubmitOther}
-            </if>
-            <if test="reviewProvince != null">
-                and review_province = #{reviewProvince}
-            </if>
-            <if test="reviewCountry != null">
-                and review_country = #{reviewCountry}
-            </if>
-            <if test="reviewProvinceNumber != null">
-                and review_province_number = #{reviewProvinceNumber}
-            </if>
-            <if test="reviewCountryNumber != null">
-                and review_country_number = #{reviewCountryNumber}
-            </if>
-            <if test="remarks != null and remarks != ''">
-                and remarks = #{remarks}
-            </if>
-        </where>
-        <if test="page_sql != null">
-            ${page_sql}
-        </if>
-    </select>
-
-    <!--统计总行数-->
-    <select id="findTaskDetailsSupplementCount" resultType="java.lang.Integer">
-        select count(1)
-        from task_details_supplement
-        <where>
-            <if test="id != null">
-                and id = #{id}
-            </if>
-            <if test="ipDeclare != null">
-                and ip_declare = #{ipDeclare}
-            </if>
-            <if test="ipAuthorize != null">
-                and ip_authorize = #{ipAuthorize}
-            </if>
-            <if test="ipHt != null">
-                and ip_ht = #{ipHt}
-            </if>
-            <if test="ipHtI != null">
-                and ip_ht_i = #{ipHtI}
-            </if>
-            <if test="ipHtIi != null">
-                and ip_ht_ii = #{ipHtIi}
-            </if>
-            <if test="outsourcingDev != null">
-                and outsourcing_dev = #{outsourcingDev}
-            </if>
-            <if test="contractRegistration != null">
-                and contract_registration = #{contractRegistration}
-            </if>
-            <if test="publicReleaseStipulation != null">
-                and public_release_stipulation = #{publicReleaseStipulation}
-            </if>
-            <if test="publicReleaseActual != null">
-                and public_release_actual = #{publicReleaseActual}
-            </if>
-            <if test="trainingStipulation != null">
-                and training_stipulation = #{trainingStipulation}
-            </if>
-            <if test="trainingActual != null">
-                and training_actual = #{trainingActual}
-            </if>
-            <if test="trainingOther != null and trainingOther != ''">
-                and training_other = #{trainingOther}
-            </if>
-            <if test="specialInspect != null">
-                and special_inspect = #{specialInspect}
-            </if>
-            <if test="simulatedAudit != null">
-                and simulated_audit = #{simulatedAudit}
-            </if>
-            <if test="featuredWorkOther != null and featuredWorkOther != ''">
-                and featured_work_other = #{featuredWorkOther}
-            </if>
-            <if test="htScore != null">
-                and ht_score = #{htScore}
-            </if>
-            <if test="htBatch != null">
-                and ht_batch = #{htBatch}
-            </if>
-            <if test="htFocus != null">
-                and ht_focus = #{htFocus}
-            </if>
-            <if test="webSubmit != null">
-                and web_submit = #{webSubmit}
-            </if>
-            <if test="webSubmitOther != null and webSubmitOther != ''">
-                and web_submit_other = #{webSubmitOther}
-            </if>
-            <if test="paperSubmit != null">
-                and paper_submit = #{paperSubmit}
-            </if>
-            <if test="paperSubmitOther != null and paperSubmitOther != ''">
-                and paper_submit_other = #{paperSubmitOther}
-            </if>
-            <if test="reviewProvince != null">
-                and review_province = #{reviewProvince}
-            </if>
-            <if test="reviewCountry != null">
-                and review_country = #{reviewCountry}
-            </if>
-            <if test="reviewProvinceNumber != null">
-                and review_province_number = #{reviewProvinceNumber}
-            </if>
-            <if test="reviewCountryNumber != null">
-                and review_country_number = #{reviewCountryNumber}
-            </if>
-            <if test="remarks != null and remarks != ''">
-                and remarks = #{remarks}
-            </if>
-        </where>
-    </select>
-
-    <!--通过主键删除-->
-    <delete id="deleteById">
-        delete
-        from task_details_supplement
-        where id = #{id}
-    </delete>
-
-</mapper>
-

+ 239 - 0
src/main/java/com/goafanti/common/mapper/TaskFeatureLogMapper.xml

@@ -0,0 +1,239 @@
+<?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.goafanti.common.dao.TaskFeatureLogMapper">
+
+    <resultMap type="com.goafanti.common.model.TaskFeatureLog" id="TaskFeatureLogMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="tdlId" column="tdl_id" jdbcType="INTEGER"/>
+        <result property="startTime" column="start_time" jdbcType="TIMESTAMP"/>
+        <result property="depName" column="dep_name" jdbcType="VARCHAR"/>
+        <result property="yearFeature" column="year_feature" jdbcType="VARCHAR"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="inspectionItems" column="inspection_items" jdbcType="VARCHAR"/>
+        <result property="enterpriseProblems" column="enterprise_problems" jdbcType="VARCHAR"/>
+        <result property="solution" column="solution" jdbcType="VARCHAR"/>
+        <result property="inspectionConclusion" column="inspection_conclusion" jdbcType="VARCHAR"/>
+        <result property="remindFollow" column="remind_follow" jdbcType="VARCHAR"/>
+        <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+        <result property="aid" column="aid" jdbcType="VARCHAR"/>
+        <result property="aname" column="aname" jdbcType="VARCHAR"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+    
+    <sql id="TaskFeatureLogAllSql">
+id, tdl_id, start_time, dep_name, year_feature, type, inspection_items, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, aid, aname, create_time        
+    </sql>
+
+    <!--查询单个-->
+    <select id="selectById" resultMap="TaskFeatureLogMap">
+        select
+          <include refid="TaskFeatureLogAllSql"/>
+        from task_feature_log
+        where id = #{id}
+    </select>
+
+    <!--新增所有列-->
+    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
+        insert into task_feature_log(tdl_id, start_time, dep_name, year_feature, type, inspection_items, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, aid, aname, create_time)
+        values (#{tdlId}, #{startTime}, #{depName}, #{yearFeature}, #{type}, #{inspectionItems}, #{enterpriseProblems}, #{solution}, #{inspectionConclusion}, #{remindFollow}, #{remarks}, #{aid}, #{aname}, #{createTime})
+    </insert>
+
+    <insert id="insertBatch">
+        insert into task_feature_log(tdl_id, start_time, dep_name, year_feature, type, inspection_items, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, aid, aname, create_time)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+        (#{entity.tdlId}, #{entity.startTime}, #{entity.depName}, #{entity.yearFeature}, #{entity.type}, #{entity.inspectionItems}, #{entity.enterpriseProblems}, #{entity.solution}, #{entity.inspectionConclusion}, #{entity.remindFollow}, #{entity.remarks}, #{entity.aid}, #{entity.aname}, #{entity.createTime})
+        </foreach>
+    </insert>
+
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into task_feature_log(tdl_id, start_time, dep_name, year_feature, type, inspection_items, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, aid, aname, create_time)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.tdlId}, #{entity.startTime}, #{entity.depName}, #{entity.yearFeature}, #{entity.type}, #{entity.inspectionItems}, #{entity.enterpriseProblems}, #{entity.solution}, #{entity.inspectionConclusion}, #{entity.remindFollow}, #{entity.remarks}, #{entity.aid}, #{entity.aname}, #{entity.createTime})
+        </foreach>
+        on duplicate key update
+tdl_id = values(tdl_id),
+start_time = values(start_time),
+dep_name = values(dep_name),
+year_feature = values(year_feature),
+type = values(type),
+inspection_items = values(inspection_items),
+enterprise_problems = values(enterprise_problems),
+solution = values(solution),
+inspection_conclusion = values(inspection_conclusion),
+remind_follow = values(remind_follow),
+remarks = values(remarks),
+aid = values(aid),
+aname = values(aname),
+create_time = values(create_time)
+    </insert>
+
+    <!--通过主键修改数据-->
+    <update id="update">
+        update task_feature_log
+        <set>
+            <if test="tdlId != null">
+                tdl_id = #{tdlId},
+            </if>
+            <if test="startTime != null">
+                start_time = #{startTime},
+            </if>
+            <if test="depName != null and depName != ''">
+                dep_name = #{depName},
+            </if>
+            <if test="yearFeature != null and yearFeature != ''">
+                year_feature = #{yearFeature},
+            </if>
+            <if test="type != null">
+                type = #{type},
+            </if>
+            <if test="inspectionItems != null and inspectionItems != ''">
+                inspection_items = #{inspectionItems},
+            </if>
+            <if test="enterpriseProblems != null and enterpriseProblems != ''">
+                enterprise_problems = #{enterpriseProblems},
+            </if>
+            <if test="solution != null and solution != ''">
+                solution = #{solution},
+            </if>
+            <if test="inspectionConclusion != null and inspectionConclusion != ''">
+                inspection_conclusion = #{inspectionConclusion},
+            </if>
+            <if test="remindFollow != null and remindFollow != ''">
+                remind_follow = #{remindFollow},
+            </if>
+            <if test="remarks != null and remarks != ''">
+                remarks = #{remarks},
+            </if>
+            <if test="aid != null and aid != ''">
+                aid = #{aid},
+            </if>
+            <if test="aname != null and aname != ''">
+                aname = #{aname},
+            </if>
+            <if test="createTime != null">
+                create_time = #{createTime},
+            </if>
+        </set>
+        where id = #{id}
+    </update>
+    
+    <!--查询指定行数据-->
+    <select id="findTaskFeatureLogList" resultMap="TaskFeatureLogMap">
+        select
+          <include refid="TaskFeatureLogAllSql"/>
+
+        from task_feature_log
+        <where>
+            <if test="id != null">
+                and id = #{id}
+            </if>
+            <if test="tdlId != null">
+                and tdl_id = #{tdlId}
+            </if>
+            <if test="startTime != null">
+                and start_time = #{startTime}
+            </if>
+            <if test="depName != null and depName != ''">
+                and dep_name = #{depName}
+            </if>
+            <if test="yearFeature != null and yearFeature != ''">
+                and year_feature = #{yearFeature}
+            </if>
+            <if test="type != null">
+                and type = #{type}
+            </if>
+            <if test="inspectionItems != null and inspectionItems != ''">
+                and inspection_items = #{inspectionItems}
+            </if>
+            <if test="enterpriseProblems != null and enterpriseProblems != ''">
+                and enterprise_problems = #{enterpriseProblems}
+            </if>
+            <if test="solution != null and solution != ''">
+                and solution = #{solution}
+            </if>
+            <if test="inspectionConclusion != null and inspectionConclusion != ''">
+                and inspection_conclusion = #{inspectionConclusion}
+            </if>
+            <if test="remindFollow != null and remindFollow != ''">
+                and remind_follow = #{remindFollow}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                and remarks = #{remarks}
+            </if>
+            <if test="aid != null and aid != ''">
+                and aid = #{aid}
+            </if>
+            <if test="aname != null and aname != ''">
+                and aname = #{aname}
+            </if>
+            <if test="createTime != null">
+                and create_time = #{createTime}
+            </if>
+        </where>
+        <if test="page_sql != null">
+    		${page_sql}
+        </if>
+    </select>
+
+    <!--统计总行数-->
+    <select id="findTaskFeatureLogCount" resultType="java.lang.Integer">
+        select count(1)
+        from task_feature_log
+        <where>
+            <if test="id != null">
+                and id = #{id}
+            </if>
+            <if test="tdlId != null">
+                and tdl_id = #{tdlId}
+            </if>
+            <if test="startTime != null">
+                and start_time = #{startTime}
+            </if>
+            <if test="depName != null and depName != ''">
+                and dep_name = #{depName}
+            </if>
+            <if test="yearFeature != null and yearFeature != ''">
+                and year_feature = #{yearFeature}
+            </if>
+            <if test="type != null">
+                and type = #{type}
+            </if>
+            <if test="inspectionItems != null and inspectionItems != ''">
+                and inspection_items = #{inspectionItems}
+            </if>
+            <if test="enterpriseProblems != null and enterpriseProblems != ''">
+                and enterprise_problems = #{enterpriseProblems}
+            </if>
+            <if test="solution != null and solution != ''">
+                and solution = #{solution}
+            </if>
+            <if test="inspectionConclusion != null and inspectionConclusion != ''">
+                and inspection_conclusion = #{inspectionConclusion}
+            </if>
+            <if test="remindFollow != null and remindFollow != ''">
+                and remind_follow = #{remindFollow}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                and remarks = #{remarks}
+            </if>
+            <if test="aid != null and aid != ''">
+                and aid = #{aid}
+            </if>
+            <if test="aname != null and aname != ''">
+                and aname = #{aname}
+            </if>
+            <if test="createTime != null">
+                and create_time = #{createTime}
+            </if>
+        </where>
+    </select>
+
+    <!--通过主键删除-->
+    <delete id="deleteById">
+        delete from task_feature_log where id = #{id}
+    </delete>
+
+</mapper>
+

+ 217 - 0
src/main/java/com/goafanti/common/mapper/TaskFeatureMapper.xml

@@ -0,0 +1,217 @@
+<?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.goafanti.common.dao.TaskFeatureMapper">
+
+    <resultMap type="com.goafanti.common.model.TaskFeature" id="TaskFeatureMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="tdid" column="tdid" jdbcType="INTEGER"/>
+        <result property="startTime" column="start_time" jdbcType="TIMESTAMP"/>
+        <result property="depName" column="dep_name" jdbcType="VARCHAR"/>
+        <result property="yearFeature" column="year_feature" jdbcType="VARCHAR"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="inspectionItems" column="inspection_items" jdbcType="VARCHAR"/>
+        <result property="enterpriseProblems" column="enterprise_problems" jdbcType="VARCHAR"/>
+        <result property="solution" column="solution" jdbcType="VARCHAR"/>
+        <result property="inspectionConclusion" column="inspection_conclusion" jdbcType="VARCHAR"/>
+        <result property="remindFollow" column="remind_follow" jdbcType="VARCHAR"/>
+        <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+    
+    <sql id="TaskFeatureAllSql">
+id, tdid, start_time, dep_name, year_feature, type, inspection_items, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, create_time        
+    </sql>
+
+    <!--查询单个-->
+    <select id="selectById" resultMap="TaskFeatureMap">
+        select
+          <include refid="TaskFeatureAllSql"/>
+        from task_feature
+        where id = #{id}
+    </select>
+
+    <!--新增所有列-->
+    <insert id="insert" keyProperty="id" useGeneratedKeys="true">
+        insert into task_feature(tdid, start_time, dep_name, year_feature, type, inspection_items, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, create_time)
+        values (#{tdid}, #{startTime}, #{depName}, #{yearFeature}, #{type}, #{inspectionItems}, #{enterpriseProblems}, #{solution}, #{inspectionConclusion}, #{remindFollow}, #{remarks}, #{createTime})
+    </insert>
+
+    <insert id="insertBatch">
+        insert into task_feature(tdid, start_time, dep_name, year_feature, type, inspection_items, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, create_time)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+        (#{entity.tdid}, #{entity.startTime}, #{entity.depName}, #{entity.yearFeature}, #{entity.type}, #{entity.inspectionItems}, #{entity.enterpriseProblems}, #{entity.solution}, #{entity.inspectionConclusion}, #{entity.remindFollow}, #{entity.remarks}, #{entity.createTime})
+        </foreach>
+    </insert>
+
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into task_feature(tdid, start_time, dep_name, year_feature, type, inspection_items, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, create_time)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.tdid}, #{entity.startTime}, #{entity.depName}, #{entity.yearFeature}, #{entity.type}, #{entity.inspectionItems}, #{entity.enterpriseProblems}, #{entity.solution}, #{entity.inspectionConclusion}, #{entity.remindFollow}, #{entity.remarks}, #{entity.createTime})
+        </foreach>
+        on duplicate key update
+tdid = values(tdid),
+start_time = values(start_time),
+dep_name = values(dep_name),
+year_feature = values(year_feature),
+type = values(type),
+inspection_items = values(inspection_items),
+enterprise_problems = values(enterprise_problems),
+solution = values(solution),
+inspection_conclusion = values(inspection_conclusion),
+remind_follow = values(remind_follow),
+remarks = values(remarks),
+create_time = values(create_time)
+    </insert>
+
+    <!--通过主键修改数据-->
+    <update id="update">
+        update task_feature
+        <set>
+            <if test="tdid != null">
+                tdid = #{tdid},
+            </if>
+            <if test="startTime != null">
+                start_time = #{startTime},
+            </if>
+            <if test="depName != null and depName != ''">
+                dep_name = #{depName},
+            </if>
+            <if test="yearFeature != null and yearFeature != ''">
+                year_feature = #{yearFeature},
+            </if>
+            <if test="type != null">
+                type = #{type},
+            </if>
+            <if test="inspectionItems != null and inspectionItems != ''">
+                inspection_items = #{inspectionItems},
+            </if>
+            <if test="enterpriseProblems != null and enterpriseProblems != ''">
+                enterprise_problems = #{enterpriseProblems},
+            </if>
+            <if test="solution != null and solution != ''">
+                solution = #{solution},
+            </if>
+            <if test="inspectionConclusion != null and inspectionConclusion != ''">
+                inspection_conclusion = #{inspectionConclusion},
+            </if>
+            <if test="remindFollow != null and remindFollow != ''">
+                remind_follow = #{remindFollow},
+            </if>
+            <if test="remarks != null and remarks != ''">
+                remarks = #{remarks},
+            </if>
+            <if test="createTime != null">
+                create_time = #{createTime},
+            </if>
+        </set>
+        where id = #{id}
+    </update>
+    
+    <!--查询指定行数据-->
+    <select id="findTaskFeatureList" resultMap="TaskFeatureMap">
+        select
+          <include refid="TaskFeatureAllSql"/>
+
+        from task_feature
+        <where>
+            <if test="id != null">
+                and id = #{id}
+            </if>
+            <if test="tdid != null">
+                and tdid = #{tdid}
+            </if>
+            <if test="startTime != null">
+                and start_time = #{startTime}
+            </if>
+            <if test="depName != null and depName != ''">
+                and dep_name = #{depName}
+            </if>
+            <if test="yearFeature != null and yearFeature != ''">
+                and year_feature = #{yearFeature}
+            </if>
+            <if test="type != null">
+                and type = #{type}
+            </if>
+            <if test="inspectionItems != null and inspectionItems != ''">
+                and inspection_items = #{inspectionItems}
+            </if>
+            <if test="enterpriseProblems != null and enterpriseProblems != ''">
+                and enterprise_problems = #{enterpriseProblems}
+            </if>
+            <if test="solution != null and solution != ''">
+                and solution = #{solution}
+            </if>
+            <if test="inspectionConclusion != null and inspectionConclusion != ''">
+                and inspection_conclusion = #{inspectionConclusion}
+            </if>
+            <if test="remindFollow != null and remindFollow != ''">
+                and remind_follow = #{remindFollow}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                and remarks = #{remarks}
+            </if>
+            <if test="createTime != null">
+                and create_time = #{createTime}
+            </if>
+        </where>
+        <if test="page_sql != null">
+    		${page_sql}
+        </if>
+    </select>
+
+    <!--统计总行数-->
+    <select id="findTaskFeatureCount" resultType="java.lang.Integer">
+        select count(1)
+        from task_feature
+        <where>
+            <if test="id != null">
+                and id = #{id}
+            </if>
+            <if test="tdid != null">
+                and tdid = #{tdid}
+            </if>
+            <if test="startTime != null">
+                and start_time = #{startTime}
+            </if>
+            <if test="depName != null and depName != ''">
+                and dep_name = #{depName}
+            </if>
+            <if test="yearFeature != null and yearFeature != ''">
+                and year_feature = #{yearFeature}
+            </if>
+            <if test="type != null">
+                and type = #{type}
+            </if>
+            <if test="inspectionItems != null and inspectionItems != ''">
+                and inspection_items = #{inspectionItems}
+            </if>
+            <if test="enterpriseProblems != null and enterpriseProblems != ''">
+                and enterprise_problems = #{enterpriseProblems}
+            </if>
+            <if test="solution != null and solution != ''">
+                and solution = #{solution}
+            </if>
+            <if test="inspectionConclusion != null and inspectionConclusion != ''">
+                and inspection_conclusion = #{inspectionConclusion}
+            </if>
+            <if test="remindFollow != null and remindFollow != ''">
+                and remind_follow = #{remindFollow}
+            </if>
+            <if test="remarks != null and remarks != ''">
+                and remarks = #{remarks}
+            </if>
+            <if test="createTime != null">
+                and create_time = #{createTime}
+            </if>
+        </where>
+    </select>
+
+    <!--通过主键删除-->
+    <delete id="deleteById">
+        delete from task_feature where id = #{id}
+    </delete>
+
+</mapper>
+

+ 1 - 1
src/main/java/com/goafanti/common/mapper/UserLockReleaseMapper.xml

@@ -383,7 +383,7 @@
 	from
 		(select id,uid,aid,lock_time from user_lock_release where aid = #{aid} and type = 0 and status = 0)t0
 	 left join user u on t0.uid=u.id  left join user_mid um on t0.uid=um.uid
-	where u.channel=0
+	where u.channel=0 and u.share_type=0
 	 and datediff(now(),if(t0.lock_time &lt; um.last_follow_time,um.last_follow_time,t0.lock_time))>30
     UNION
     SELECT t0.id, t0.uid, t0.aid, DATE_FORMAT(t0.lock_time , '%Y-%m-%d') lockTime,u.new_channel newChannel, 1 type,

+ 735 - 38
src/main/java/com/goafanti/common/model/TaskDetails.java

@@ -11,129 +11,361 @@ import java.util.Date;
  * 项目申报详情(TaskDetails)实体类
  *
  * @author makejava
- * @since 2024-12-27 13:49:02
+ * @since 2025-01-02 10:56:06
  */
 public class TaskDetails implements Serializable {
-    private static final long serialVersionUID = 979884539912577184L;
+    private static final long serialVersionUID = -39418349733711770L;
 
     private Integer id;
-    /**
+/**
      * 用户ID
      */
     private String uid;
-    /**
+/**
      * 项目编号
      */
     private Integer tid;
-    /**
+/**
+     * 业务负责人
+     */
+    private String taskName;
+/**
+     * 项目负责人
+     */
+    private String projectName;
+/**
+     * 技术咨询师
+     */
+    private String technologyName;
+/**
+     * 财税咨询师
+     */
+    private String financeTaxationName;
+/**
+     * 上年度年份
+     */
+    private Integer lastYear;
+/**
+     * 上年度年度销售额
+     */
+    private BigDecimal lastRdSalesAmount;
+/**
+     * 上年度高新研发预算
+     */
+    private BigDecimal lastRdBudget;
+/**
+     * 上年度年份
+     */
+    private Integer beforeLastYear;
+/**
+     * 上年度年度销售额
+     */
+    private BigDecimal beforeLastRdSalesAmount;
+/**
+     * 上年度高新研发预算
+     */
+    private BigDecimal beforeLastRdBudget;
+/**
      * 职工人数
      */
     private Integer workersNumber;
-    /**
+/**
      * 科技人员数
      */
     private Integer technologyNumber;
-    /**
+/**
      * 科技人员占比
      */
     private Double workersRate;
-    /**
+/**
      * 研发立项数
      */
-    private Integer prjectApprovalNumber;
-    /**
+    private Integer projectApprovalNumber;
+/**
      * 年度研发预算
      */
     private BigDecimal rdBudget;
-    /**
+/**
      * 年度研发预算占比
      */
     private Double rdBudgetRate;
-    /**
+/**
      * 三年研发预算占比
      */
     private Double threeYearsRdBudgetRate;
-    /**
+/**
      * 年度销售额
      */
     private BigDecimal rdSalesAmount;
-    /**
+/**
      * 数据周期 0=第一季度,1=上半年,2=前三季度,3=全年
      */
     private String dataCycle;
-    /**
+/**
      * 实际销售额
      */
     private BigDecimal actualSalesAmount;
-    /**
+/**
      * 实际立项RD数
      */
     private Integer actualRdNumber;
-    /**
+/**
      * 实际归集研发费用
      */
     private BigDecimal actualRdAmount;
-    /**
+/**
      * 年度研发预算占比
      */
     private Double actualRdRate;
-    /**
+/**
      * 三年研发预算占比
      */
     private Double threeYearsActualRdRate;
-    /**
+/**
      * 火炬统计 0=其他,1=待完成,2=已完成,3=合同无此项
      */
     private Integer torchStatus;
-    /**
+/**
      * 高企年报火炬统计 0=其他,1=待完成,2=已完成,3=合同无此项
      */
     private Integer chStatus;
-    /**
+/**
      * 统计年报 0=其他,1=待完成,2=已完成,3=合同无此项
      */
     private Integer statisticsStatus;
-    /**
+/**
      * 汇算清缴 0=其他,1=待完成,2=已完成,3=合同无此项
      */
     private Integer finalSettlementStatus;
-    /**
+/**
      * 火炬统计其他说明
      */
     private String torchOther;
-    /**
+/**
      * 高企年报火炬统计其他说明
      */
     private String chOther;
-    /**
+/**
      * 统计年报其他说明
      */
     private String statisticsOther;
-    /**
+/**
      * 汇算清缴其他说明
      */
     private String finalSettlementOther;
-    /**
+/**
      * 报表加扣数
      */
     private Integer reportFormsRdNumber;
-    /**
+/**
      * 知识产权加扣费用
      */
     private BigDecimal intellectualPropertyAmount;
-    /**
+/**
      * 报表扣研发金额
      */
     private BigDecimal reportRdAmount;
-    /**
+/**
+     * 研发准备金备案 0=其他,1=待完成,2=已完成,3=合同无此项
+     */
+    private Integer rdReservesStatus;
+/**
+     * 研发准备金备其他说明
+     */
+    private String rdReservesOther;
+/**
+     * 研发奖补申请 0=其他,1=待完成,2=已完成,3=合同无此项
+     */
+    private Integer rdAwardCompensationStatus;
+/**
+     * 研发准备金备其他说明
+     */
+    private String rdAwardCompensationOther;
+/**
+     * 研发奖补-申请金额
+     */
+    private BigDecimal rdApplicationFee;
+/**
+     * 研发奖补-公示金额
+     */
+    private BigDecimal rdAnnouncementAmount;
+/**
+     * 研发奖补-公示金额-其他
+     */
+    private String rdAnnouncementOther;
+/**
+     * 加扣备查交付 0=其他,1=待完成,2=已完成,3=合同无此项
+     */
+    private Integer adDeliverStatus;
+/**
+     * 加扣备查交付其他说明
+     */
+    private String adDeliverOther;
+/**
+     * 加扣备查交付归档 0=否,1=是
+     */
+    private Integer adDeliverFinish;
+/**
+     * 高新备查交付 0=其他,1=待完成,2=已完成,3=合同无此项
+     */
+    private Integer htDeliverStatus;
+/**
+     * 高新加扣备查交付其他说明
+     */
+    private String htDeliverOther;
+/**
+     * 高新加扣备查交付归档 0=否,1=是
+     */
+    private Integer htDeliverFinish;
+/**
+     * 召开上年度总结与本年工作计划会议 0=其他,1=待完成,2=已完成,3=合同无此项
+     */
+    private Integer closeMeetingStatus;
+/**
+     * 召开上年度总结与本年工作计划会议其他说明
+     */
+    private String closeMeetingOther;
+/**
+     * 阶段性汇报 1=月度,2=季度
+     */
+    private Integer phasedType;
+/**
+     * 阶段性汇报 1,2,3=选取1月到3月
+     */
+    private String phasedContent;
+/**
+     * 立项资料编写数
+     */
+    private Integer projectApprovalWriteNumber;
+/**
+     * 立项资料编写完成率
+     */
+    private Double projectApprovalWriteRate;
+/**
+     * 加扣预申报七月 0=其他,1=待完成,2=已完成,3=合同无此项
+     */
+    private Integer adPrepareJulyStatus;
+/**
+     * 加扣预申报七月其他说明
+     */
+    private String adPrepareJulyOther;
+/**
+     * 加扣预申报七月 0=其他,1=待完成,2=已完成,3=合同无此项
+     */
+    private Integer adPrepareOctoberStatus;
+/**
+     * 加扣预申报十月其他说明
+     */
+    private String adPrepareOctoberOther;
+/**
+     * 知识产权申报数
+     */
+    private Integer ipDeclare;
+/**
+     * 知识产权授权数
+     */
+    private Integer ipAuthorize;
+/**
+     * 知识产权高新数
+     */
+    private Integer ipHt;
+/**
+     * 知识产权高新I数
+     */
+    private Integer ipHtI;
+/**
+     * 知识产权高新II数
+     */
+    private Integer ipHtIi;
+/**
+     * 委外开发项目数
+     */
+    private Integer outsourcingDev;
+/**
+     * 技术开发合同登记数
+     */
+    private Integer contractRegistration;
+/**
+     * 公出约定次数
+     */
+    private Integer publicReleaseStipulation;
+/**
+     * 公出实际次数
+     */
+    private Integer publicReleaseActual;
+/**
+     * 培训约定次数
+     */
+    private Integer trainingStipulation;
+/**
+     * 培训实际次数
+     */
+    private Integer trainingActual;
+/**
+     * 培训其他说明
+     */
+    private String trainingOther;
+/**
+     * 特色工作-其他
+     */
+    private String featuredWorkOther;
+/**
+     * 高新认定评价估分
+     */
+    private Integer htScore;
+/**
+     * 高新认定评申报批次
+     */
+    private Integer htBatch;
+/**
+     * 高新认定重点关注 0=否,1=是
+     */
+    private Integer htFocus;
+/**
+     * 网上系统提交 0=其他,1=待完成,2=已完成,3=合同无此项
+     */
+    private Integer webSubmit;
+/**
+     * 网上系统提交其他说明
+     */
+    private String webSubmitOther;
+/**
+     * 纸质材料提交 0=其他,1=待完成,2=已完成,3=合同无此项
+     */
+    private Integer paperSubmit;
+/**
+     * 纸质材料提交其他说明
+     */
+    private String paperSubmitOther;
+/**
+     * 评审省级 0=淘汰,1=公示
+     */
+    private Integer reviewProvince;
+/**
+     * 评审国家级 0=淘汰,1=公示
+     */
+    private Integer reviewCountry;
+/**
+     * 评审省级序号
+     */
+    private Integer reviewProvinceNumber;
+/**
+     * 评审国家级高企编号
+     */
+    private Integer reviewCountryNumber;
+/**
+     * 备注说明
+     */
+    private String remarks;
+/**
      * 更新时间
      */
     private Date updateTime;
-    /**
+/**
      * 下载/打印时间
      */
     private Date downloadTime;
-    /**
+/**
      * 创建时间
      */
     private Date createTime;
@@ -163,6 +395,86 @@ public class TaskDetails implements Serializable {
         this.tid = tid;
     }
 
+    public String getTaskName() {
+        return taskName;
+    }
+
+    public void setTaskName(String taskName) {
+        this.taskName = taskName;
+    }
+
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public String getTechnologyName() {
+        return technologyName;
+    }
+
+    public void setTechnologyName(String technologyName) {
+        this.technologyName = technologyName;
+    }
+
+    public String getFinanceTaxationName() {
+        return financeTaxationName;
+    }
+
+    public void setFinanceTaxationName(String financeTaxationName) {
+        this.financeTaxationName = financeTaxationName;
+    }
+
+    public Integer getLastYear() {
+        return lastYear;
+    }
+
+    public void setLastYear(Integer lastYear) {
+        this.lastYear = lastYear;
+    }
+
+    public BigDecimal getLastRdSalesAmount() {
+        return lastRdSalesAmount;
+    }
+
+    public void setLastRdSalesAmount(BigDecimal lastRdSalesAmount) {
+        this.lastRdSalesAmount = lastRdSalesAmount;
+    }
+
+    public BigDecimal getLastRdBudget() {
+        return lastRdBudget;
+    }
+
+    public void setLastRdBudget(BigDecimal lastRdBudget) {
+        this.lastRdBudget = lastRdBudget;
+    }
+
+    public Integer getBeforeLastYear() {
+        return beforeLastYear;
+    }
+
+    public void setBeforeLastYear(Integer beforeLastYear) {
+        this.beforeLastYear = beforeLastYear;
+    }
+
+    public BigDecimal getBeforeLastRdSalesAmount() {
+        return beforeLastRdSalesAmount;
+    }
+
+    public void setBeforeLastRdSalesAmount(BigDecimal beforeLastRdSalesAmount) {
+        this.beforeLastRdSalesAmount = beforeLastRdSalesAmount;
+    }
+
+    public BigDecimal getBeforeLastRdBudget() {
+        return beforeLastRdBudget;
+    }
+
+    public void setBeforeLastRdBudget(BigDecimal beforeLastRdBudget) {
+        this.beforeLastRdBudget = beforeLastRdBudget;
+    }
+
     public Integer getWorkersNumber() {
         return workersNumber;
     }
@@ -187,12 +499,12 @@ public class TaskDetails implements Serializable {
         this.workersRate = workersRate;
     }
 
-    public Integer getPrjectApprovalNumber() {
-        return prjectApprovalNumber;
+    public Integer getProjectApprovalNumber() {
+        return projectApprovalNumber;
     }
 
-    public void setPrjectApprovalNumber(Integer prjectApprovalNumber) {
-        this.prjectApprovalNumber = prjectApprovalNumber;
+    public void setProjectApprovalNumber(Integer projectApprovalNumber) {
+        this.projectApprovalNumber = projectApprovalNumber;
     }
 
     public BigDecimal getRdBudget() {
@@ -362,6 +674,390 @@ public class TaskDetails implements Serializable {
     public void setReportRdAmount(BigDecimal reportRdAmount) {
         this.reportRdAmount = reportRdAmount;
     }
+
+    public Integer getRdReservesStatus() {
+        return rdReservesStatus;
+    }
+
+    public void setRdReservesStatus(Integer rdReservesStatus) {
+        this.rdReservesStatus = rdReservesStatus;
+    }
+
+    public String getRdReservesOther() {
+        return rdReservesOther;
+    }
+
+    public void setRdReservesOther(String rdReservesOther) {
+        this.rdReservesOther = rdReservesOther;
+    }
+
+    public Integer getRdAwardCompensationStatus() {
+        return rdAwardCompensationStatus;
+    }
+
+    public void setRdAwardCompensationStatus(Integer rdAwardCompensationStatus) {
+        this.rdAwardCompensationStatus = rdAwardCompensationStatus;
+    }
+
+    public String getRdAwardCompensationOther() {
+        return rdAwardCompensationOther;
+    }
+
+    public void setRdAwardCompensationOther(String rdAwardCompensationOther) {
+        this.rdAwardCompensationOther = rdAwardCompensationOther;
+    }
+
+    public BigDecimal getRdApplicationFee() {
+        return rdApplicationFee;
+    }
+
+    public void setRdApplicationFee(BigDecimal rdApplicationFee) {
+        this.rdApplicationFee = rdApplicationFee;
+    }
+
+    public BigDecimal getRdAnnouncementAmount() {
+        return rdAnnouncementAmount;
+    }
+
+    public void setRdAnnouncementAmount(BigDecimal rdAnnouncementAmount) {
+        this.rdAnnouncementAmount = rdAnnouncementAmount;
+    }
+
+    public String getRdAnnouncementOther() {
+        return rdAnnouncementOther;
+    }
+
+    public void setRdAnnouncementOther(String rdAnnouncementOther) {
+        this.rdAnnouncementOther = rdAnnouncementOther;
+    }
+
+    public Integer getAdDeliverStatus() {
+        return adDeliverStatus;
+    }
+
+    public void setAdDeliverStatus(Integer adDeliverStatus) {
+        this.adDeliverStatus = adDeliverStatus;
+    }
+
+    public String getAdDeliverOther() {
+        return adDeliverOther;
+    }
+
+    public void setAdDeliverOther(String adDeliverOther) {
+        this.adDeliverOther = adDeliverOther;
+    }
+
+    public Integer getAdDeliverFinish() {
+        return adDeliverFinish;
+    }
+
+    public void setAdDeliverFinish(Integer adDeliverFinish) {
+        this.adDeliverFinish = adDeliverFinish;
+    }
+
+    public Integer getHtDeliverStatus() {
+        return htDeliverStatus;
+    }
+
+    public void setHtDeliverStatus(Integer htDeliverStatus) {
+        this.htDeliverStatus = htDeliverStatus;
+    }
+
+    public String getHtDeliverOther() {
+        return htDeliverOther;
+    }
+
+    public void setHtDeliverOther(String htDeliverOther) {
+        this.htDeliverOther = htDeliverOther;
+    }
+
+    public Integer getHtDeliverFinish() {
+        return htDeliverFinish;
+    }
+
+    public void setHtDeliverFinish(Integer htDeliverFinish) {
+        this.htDeliverFinish = htDeliverFinish;
+    }
+
+    public Integer getCloseMeetingStatus() {
+        return closeMeetingStatus;
+    }
+
+    public void setCloseMeetingStatus(Integer closeMeetingStatus) {
+        this.closeMeetingStatus = closeMeetingStatus;
+    }
+
+    public String getCloseMeetingOther() {
+        return closeMeetingOther;
+    }
+
+    public void setCloseMeetingOther(String closeMeetingOther) {
+        this.closeMeetingOther = closeMeetingOther;
+    }
+
+    public Integer getPhasedType() {
+        return phasedType;
+    }
+
+    public void setPhasedType(Integer phasedType) {
+        this.phasedType = phasedType;
+    }
+
+    public String getPhasedContent() {
+        return phasedContent;
+    }
+
+    public void setPhasedContent(String phasedContent) {
+        this.phasedContent = phasedContent;
+    }
+
+    public Integer getProjectApprovalWriteNumber() {
+        return projectApprovalWriteNumber;
+    }
+
+    public void setProjectApprovalWriteNumber(Integer projectApprovalWriteNumber) {
+        this.projectApprovalWriteNumber = projectApprovalWriteNumber;
+    }
+
+    public Double getProjectApprovalWriteRate() {
+        return projectApprovalWriteRate;
+    }
+
+    public void setProjectApprovalWriteRate(Double projectApprovalWriteRate) {
+        this.projectApprovalWriteRate = projectApprovalWriteRate;
+    }
+
+    public Integer getAdPrepareJulyStatus() {
+        return adPrepareJulyStatus;
+    }
+
+    public void setAdPrepareJulyStatus(Integer adPrepareJulyStatus) {
+        this.adPrepareJulyStatus = adPrepareJulyStatus;
+    }
+
+    public String getAdPrepareJulyOther() {
+        return adPrepareJulyOther;
+    }
+
+    public void setAdPrepareJulyOther(String adPrepareJulyOther) {
+        this.adPrepareJulyOther = adPrepareJulyOther;
+    }
+
+    public Integer getAdPrepareOctoberStatus() {
+        return adPrepareOctoberStatus;
+    }
+
+    public void setAdPrepareOctoberStatus(Integer adPrepareOctoberStatus) {
+        this.adPrepareOctoberStatus = adPrepareOctoberStatus;
+    }
+
+    public String getAdPrepareOctoberOther() {
+        return adPrepareOctoberOther;
+    }
+
+    public void setAdPrepareOctoberOther(String adPrepareOctoberOther) {
+        this.adPrepareOctoberOther = adPrepareOctoberOther;
+    }
+
+    public Integer getIpDeclare() {
+        return ipDeclare;
+    }
+
+    public void setIpDeclare(Integer ipDeclare) {
+        this.ipDeclare = ipDeclare;
+    }
+
+    public Integer getIpAuthorize() {
+        return ipAuthorize;
+    }
+
+    public void setIpAuthorize(Integer ipAuthorize) {
+        this.ipAuthorize = ipAuthorize;
+    }
+
+    public Integer getIpHt() {
+        return ipHt;
+    }
+
+    public void setIpHt(Integer ipHt) {
+        this.ipHt = ipHt;
+    }
+
+    public Integer getIpHtI() {
+        return ipHtI;
+    }
+
+    public void setIpHtI(Integer ipHtI) {
+        this.ipHtI = ipHtI;
+    }
+
+    public Integer getIpHtIi() {
+        return ipHtIi;
+    }
+
+    public void setIpHtIi(Integer ipHtIi) {
+        this.ipHtIi = ipHtIi;
+    }
+
+    public Integer getOutsourcingDev() {
+        return outsourcingDev;
+    }
+
+    public void setOutsourcingDev(Integer outsourcingDev) {
+        this.outsourcingDev = outsourcingDev;
+    }
+
+    public Integer getContractRegistration() {
+        return contractRegistration;
+    }
+
+    public void setContractRegistration(Integer contractRegistration) {
+        this.contractRegistration = contractRegistration;
+    }
+
+    public Integer getPublicReleaseStipulation() {
+        return publicReleaseStipulation;
+    }
+
+    public void setPublicReleaseStipulation(Integer publicReleaseStipulation) {
+        this.publicReleaseStipulation = publicReleaseStipulation;
+    }
+
+    public Integer getPublicReleaseActual() {
+        return publicReleaseActual;
+    }
+
+    public void setPublicReleaseActual(Integer publicReleaseActual) {
+        this.publicReleaseActual = publicReleaseActual;
+    }
+
+    public Integer getTrainingStipulation() {
+        return trainingStipulation;
+    }
+
+    public void setTrainingStipulation(Integer trainingStipulation) {
+        this.trainingStipulation = trainingStipulation;
+    }
+
+    public Integer getTrainingActual() {
+        return trainingActual;
+    }
+
+    public void setTrainingActual(Integer trainingActual) {
+        this.trainingActual = trainingActual;
+    }
+
+    public String getTrainingOther() {
+        return trainingOther;
+    }
+
+    public void setTrainingOther(String trainingOther) {
+        this.trainingOther = trainingOther;
+    }
+
+    public String getFeaturedWorkOther() {
+        return featuredWorkOther;
+    }
+
+    public void setFeaturedWorkOther(String featuredWorkOther) {
+        this.featuredWorkOther = featuredWorkOther;
+    }
+
+    public Integer getHtScore() {
+        return htScore;
+    }
+
+    public void setHtScore(Integer htScore) {
+        this.htScore = htScore;
+    }
+
+    public Integer getHtBatch() {
+        return htBatch;
+    }
+
+    public void setHtBatch(Integer htBatch) {
+        this.htBatch = htBatch;
+    }
+
+    public Integer getHtFocus() {
+        return htFocus;
+    }
+
+    public void setHtFocus(Integer htFocus) {
+        this.htFocus = htFocus;
+    }
+
+    public Integer getWebSubmit() {
+        return webSubmit;
+    }
+
+    public void setWebSubmit(Integer webSubmit) {
+        this.webSubmit = webSubmit;
+    }
+
+    public String getWebSubmitOther() {
+        return webSubmitOther;
+    }
+
+    public void setWebSubmitOther(String webSubmitOther) {
+        this.webSubmitOther = webSubmitOther;
+    }
+
+    public Integer getPaperSubmit() {
+        return paperSubmit;
+    }
+
+    public void setPaperSubmit(Integer paperSubmit) {
+        this.paperSubmit = paperSubmit;
+    }
+
+    public String getPaperSubmitOther() {
+        return paperSubmitOther;
+    }
+
+    public void setPaperSubmitOther(String paperSubmitOther) {
+        this.paperSubmitOther = paperSubmitOther;
+    }
+
+    public Integer getReviewProvince() {
+        return reviewProvince;
+    }
+
+    public void setReviewProvince(Integer reviewProvince) {
+        this.reviewProvince = reviewProvince;
+    }
+
+    public Integer getReviewCountry() {
+        return reviewCountry;
+    }
+
+    public void setReviewCountry(Integer reviewCountry) {
+        this.reviewCountry = reviewCountry;
+    }
+
+    public Integer getReviewProvinceNumber() {
+        return reviewProvinceNumber;
+    }
+
+    public void setReviewProvinceNumber(Integer reviewProvinceNumber) {
+        this.reviewProvinceNumber = reviewProvinceNumber;
+    }
+
+    public Integer getReviewCountryNumber() {
+        return reviewCountryNumber;
+    }
+
+    public void setReviewCountryNumber(Integer reviewCountryNumber) {
+        this.reviewCountryNumber = reviewCountryNumber;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     public Date getUpdateTime() {
         return updateTime;
@@ -370,7 +1066,7 @@ public class TaskDetails implements Serializable {
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+
     public Date getDownloadTime() {
         return downloadTime;
     }
@@ -378,6 +1074,7 @@ public class TaskDetails implements Serializable {
     public void setDownloadTime(Date downloadTime) {
         this.downloadTime = downloadTime;
     }
+
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     public Date getCreateTime() {
         return createTime;

+ 0 - 304
src/main/java/com/goafanti/common/model/TaskDetailsExtend.java

@@ -1,304 +0,0 @@
-package com.goafanti.common.model;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-
-
-/**
- * 项目申报详情扩展表(TaskDetailsExtend)实体类
- *
- * @author makejava
- * @since 2024-12-27 09:57:05
- */
-public class TaskDetailsExtend implements Serializable {
-    private static final long serialVersionUID = 222104184372571998L;
-
-    private Integer id;
-    /**
-     * 研发准备金备案 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer rdReservesStatus;
-    /**
-     * 研发准备金备其他说明
-     */
-    private String rdReservesOther;
-    /**
-     * 研发奖补申请 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer rdAwardCompensationStatus;
-    /**
-     * 研发准备金备其他说明
-     */
-    private String rdAwardCompensationOther;
-    /**
-     * 研发奖补-申请金额
-     */
-    private BigDecimal rdApplicationFee;
-    /**
-     * 研发奖补-公示金额
-     */
-    private BigDecimal rdAnnouncementAmount;
-    /**
-     * 研发奖补-公示金额-其他
-     */
-    private String rdAnnouncementOther;
-    /**
-     * 加扣备查交付 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer adDeliverStatus;
-    /**
-     * 加扣备查交付其他说明
-     */
-    private String adDeliverOther;
-    /**
-     * 加扣备查交付归档 0=否,1=是
-     */
-    private Integer adDeliverFinish;
-    /**
-     * 高新备查交付 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer htDeliverStatus;
-    /**
-     * 高新加扣备查交付其他说明
-     */
-    private String htDeliverOther;
-    /**
-     * 高新加扣备查交付归档 0=否,1=是
-     */
-    private Integer htDeliverFinish;
-    /**
-     * 召开上年度总结与本年工作计划会议 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer closeMeetingStatus;
-    /**
-     * 召开上年度总结与本年工作计划会议其他说明
-     */
-    private String closeMeeting_Other;
-    /**
-     * 阶段性汇报 1=月度,2=季度
-     */
-    private Integer phasedType;
-    /**
-     * 阶段性汇报 1,2,3=选取1月到3月
-     */
-    private String phasedContent;
-    /**
-     * 立项资料编写数
-     */
-    private Integer projectApprovalWriteNumber;
-    /**
-     * 立项资料编写完成率
-     */
-    private Double projectApprovalWriteRate;
-    /**
-     * 加扣预申报七月 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer adPrepareJulyStatus;
-    /**
-     * 加扣预申报七月其他说明
-     */
-    private String adPrepareJulyOther;
-    /**
-     * 加扣预申报七月 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer adPrepareOctoberStatus;
-    /**
-     * 加扣预申报十月其他说明
-     */
-    private String adPrepareOctoberOther;
-
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public Integer getRdReservesStatus() {
-        return rdReservesStatus;
-    }
-
-    public void setRdReservesStatus(Integer rdReservesStatus) {
-        this.rdReservesStatus = rdReservesStatus;
-    }
-
-    public String getRdReservesOther() {
-        return rdReservesOther;
-    }
-
-    public void setRdReservesOther(String rdReservesOther) {
-        this.rdReservesOther = rdReservesOther;
-    }
-
-    public Integer getRdAwardCompensationStatus() {
-        return rdAwardCompensationStatus;
-    }
-
-    public void setRdAwardCompensationStatus(Integer rdAwardCompensationStatus) {
-        this.rdAwardCompensationStatus = rdAwardCompensationStatus;
-    }
-
-    public String getRdAwardCompensationOther() {
-        return rdAwardCompensationOther;
-    }
-
-    public void setRdAwardCompensationOther(String rdAwardCompensationOther) {
-        this.rdAwardCompensationOther = rdAwardCompensationOther;
-    }
-
-    public BigDecimal getRdApplicationFee() {
-        return rdApplicationFee;
-    }
-
-    public void setRdApplicationFee(BigDecimal rdApplicationFee) {
-        this.rdApplicationFee = rdApplicationFee;
-    }
-
-    public BigDecimal getRdAnnouncementAmount() {
-        return rdAnnouncementAmount;
-    }
-
-    public void setRdAnnouncementAmount(BigDecimal rdAnnouncementAmount) {
-        this.rdAnnouncementAmount = rdAnnouncementAmount;
-    }
-
-    public String getRdAnnouncementOther() {
-        return rdAnnouncementOther;
-    }
-
-    public void setRdAnnouncementOther(String rdAnnouncementOther) {
-        this.rdAnnouncementOther = rdAnnouncementOther;
-    }
-
-    public Integer getAdDeliverStatus() {
-        return adDeliverStatus;
-    }
-
-    public void setAdDeliverStatus(Integer adDeliverStatus) {
-        this.adDeliverStatus = adDeliverStatus;
-    }
-
-    public String getAdDeliverOther() {
-        return adDeliverOther;
-    }
-
-    public void setAdDeliverOther(String adDeliverOther) {
-        this.adDeliverOther = adDeliverOther;
-    }
-
-    public Integer getAdDeliverFinish() {
-        return adDeliverFinish;
-    }
-
-    public void setAdDeliverFinish(Integer adDeliverFinish) {
-        this.adDeliverFinish = adDeliverFinish;
-    }
-
-    public Integer getHtDeliverStatus() {
-        return htDeliverStatus;
-    }
-
-    public void setHtDeliverStatus(Integer htDeliverStatus) {
-        this.htDeliverStatus = htDeliverStatus;
-    }
-
-    public String getHtDeliverOther() {
-        return htDeliverOther;
-    }
-
-    public void setHtDeliverOther(String htDeliverOther) {
-        this.htDeliverOther = htDeliverOther;
-    }
-
-    public Integer getHtDeliverFinish() {
-        return htDeliverFinish;
-    }
-
-    public void setHtDeliverFinish(Integer htDeliverFinish) {
-        this.htDeliverFinish = htDeliverFinish;
-    }
-
-    public Integer getCloseMeetingStatus() {
-        return closeMeetingStatus;
-    }
-
-    public void setCloseMeetingStatus(Integer closeMeetingStatus) {
-        this.closeMeetingStatus = closeMeetingStatus;
-    }
-
-    public String getCloseMeeting_Other() {
-        return closeMeeting_Other;
-    }
-
-    public void setCloseMeeting_Other(String closeMeeting_Other) {
-        this.closeMeeting_Other = closeMeeting_Other;
-    }
-
-    public Integer getPhasedType() {
-        return phasedType;
-    }
-
-    public void setPhasedType(Integer phasedType) {
-        this.phasedType = phasedType;
-    }
-
-    public String getPhasedContent() {
-        return phasedContent;
-    }
-
-    public void setPhasedContent(String phasedContent) {
-        this.phasedContent = phasedContent;
-    }
-
-    public Integer getProjectApprovalWriteNumber() {
-        return projectApprovalWriteNumber;
-    }
-
-    public void setProjectApprovalWriteNumber(Integer projectApprovalWriteNumber) {
-        this.projectApprovalWriteNumber = projectApprovalWriteNumber;
-    }
-
-    public Double getProjectApprovalWriteRate() {
-        return projectApprovalWriteRate;
-    }
-
-    public void setProjectApprovalWriteRate(Double projectApprovalWriteRate) {
-        this.projectApprovalWriteRate = projectApprovalWriteRate;
-    }
-
-    public Integer getAdPrepareJulyStatus() {
-        return adPrepareJulyStatus;
-    }
-
-    public void setAdPrepareJulyStatus(Integer adPrepareJulyStatus) {
-        this.adPrepareJulyStatus = adPrepareJulyStatus;
-    }
-
-    public String getAdPrepareJulyOther() {
-        return adPrepareJulyOther;
-    }
-
-    public void setAdPrepareJulyOther(String adPrepareJulyOther) {
-        this.adPrepareJulyOther = adPrepareJulyOther;
-    }
-
-    public Integer getAdPrepareOctoberStatus() {
-        return adPrepareOctoberStatus;
-    }
-
-    public void setAdPrepareOctoberStatus(Integer adPrepareOctoberStatus) {
-        this.adPrepareOctoberStatus = adPrepareOctoberStatus;
-    }
-
-    public String getAdPrepareOctoberOther() {
-        return adPrepareOctoberOther;
-    }
-
-    public void setAdPrepareOctoberOther(String adPrepareOctoberOther) {
-        this.adPrepareOctoberOther = adPrepareOctoberOther;
-    }
-
-}
-

File diff suppressed because it is too large
+ 1073 - 0
src/main/java/com/goafanti/common/model/TaskDetailsLog.java


+ 0 - 351
src/main/java/com/goafanti/common/model/TaskDetailsSupplement.java

@@ -1,351 +0,0 @@
-package com.goafanti.common.model;
-
-import java.io.Serializable;
-
-
-/**
- * 项目申报详情补充表(TaskDetailsSupplement)实体类
- *
- * @author makejava
- * @since 2024-12-27 10:11:14
- */
-public class TaskDetailsSupplement implements Serializable {
-    private static final long serialVersionUID = 628044648930394619L;
-
-    private Integer id;
-    /**
-     * 知识产权申报数
-     */
-    private Integer ipDeclare;
-    /**
-     * 知识产权授权数
-     */
-    private Integer ipAuthorize;
-    /**
-     * 知识产权高新数
-     */
-    private Integer ipHt;
-    /**
-     * 知识产权高新I数
-     */
-    private Integer ipHtI;
-    /**
-     * 知识产权高新II数
-     */
-    private Integer ipHtIi;
-    /**
-     * 委外开发项目数
-     */
-    private Integer outsourcingDev;
-    /**
-     * 技术开发合同登记数
-     */
-    private Integer contractRegistration;
-    /**
-     * 公出约定次数
-     */
-    private Integer publicReleaseStipulation;
-    /**
-     * 公出实际次数
-     */
-    private Integer publicReleaseActual;
-    /**
-     * 培训约定次数
-     */
-    private Integer trainingStipulation;
-    /**
-     * 培训实际次数
-     */
-    private Integer trainingActual;
-    /**
-     * 培训其他说明
-     */
-    private String trainingOther;
-    /**
-     * 专项检查数
-     */
-    private Integer specialInspect;
-    /**
-     * 模拟稽查数
-     */
-    private Integer simulatedAudit;
-    /**
-     * 特色工作-其他
-     */
-    private String featuredWorkOther;
-    /**
-     * 高新认定评价估分
-     */
-    private Integer htScore;
-    /**
-     * 高新认定评申报批次
-     */
-    private Integer htBatch;
-    /**
-     * 高新认定重点关注 0=否,1=是
-     */
-    private Integer htFocus;
-    /**
-     * 网上系统提交 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer webSubmit;
-    /**
-     * 网上系统提交其他说明
-     */
-    private String webSubmitOther;
-    /**
-     * 纸质材料提交 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer paperSubmit;
-    /**
-     * 纸质材料提交其他说明
-     */
-    private String paperSubmitOther;
-    /**
-     * 评审省级 0=淘汰,1=公示
-     */
-    private Integer reviewProvince;
-    /**
-     * 评审国家级 0=淘汰,1=公示
-     */
-    private Integer reviewCountry;
-    /**
-     * 评审省级序号
-     */
-    private Integer reviewProvinceNumber;
-    /**
-     * 评审国家级高企编号
-     */
-    private Integer reviewCountryNumber;
-    /**
-     * 备注说明
-     */
-    private String remarks;
-
-
-    public Integer getId() {
-        return id;
-    }
-
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    public Integer getIpDeclare() {
-        return ipDeclare;
-    }
-
-    public void setIpDeclare(Integer ipDeclare) {
-        this.ipDeclare = ipDeclare;
-    }
-
-    public Integer getIpAuthorize() {
-        return ipAuthorize;
-    }
-
-    public void setIpAuthorize(Integer ipAuthorize) {
-        this.ipAuthorize = ipAuthorize;
-    }
-
-    public Integer getIpHt() {
-        return ipHt;
-    }
-
-    public void setIpHt(Integer ipHt) {
-        this.ipHt = ipHt;
-    }
-
-    public Integer getIpHtI() {
-        return ipHtI;
-    }
-
-    public void setIpHtI(Integer ipHtI) {
-        this.ipHtI = ipHtI;
-    }
-
-    public Integer getIpHtIi() {
-        return ipHtIi;
-    }
-
-    public void setIpHtIi(Integer ipHtIi) {
-        this.ipHtIi = ipHtIi;
-    }
-
-    public Integer getOutsourcingDev() {
-        return outsourcingDev;
-    }
-
-    public void setOutsourcingDev(Integer outsourcingDev) {
-        this.outsourcingDev = outsourcingDev;
-    }
-
-    public Integer getContractRegistration() {
-        return contractRegistration;
-    }
-
-    public void setContractRegistration(Integer contractRegistration) {
-        this.contractRegistration = contractRegistration;
-    }
-
-    public Integer getPublicReleaseStipulation() {
-        return publicReleaseStipulation;
-    }
-
-    public void setPublicReleaseStipulation(Integer publicReleaseStipulation) {
-        this.publicReleaseStipulation = publicReleaseStipulation;
-    }
-
-    public Integer getPublicReleaseActual() {
-        return publicReleaseActual;
-    }
-
-    public void setPublicReleaseActual(Integer publicReleaseActual) {
-        this.publicReleaseActual = publicReleaseActual;
-    }
-
-    public Integer getTrainingStipulation() {
-        return trainingStipulation;
-    }
-
-    public void setTrainingStipulation(Integer trainingStipulation) {
-        this.trainingStipulation = trainingStipulation;
-    }
-
-    public Integer getTrainingActual() {
-        return trainingActual;
-    }
-
-    public void setTrainingActual(Integer trainingActual) {
-        this.trainingActual = trainingActual;
-    }
-
-    public String getTrainingOther() {
-        return trainingOther;
-    }
-
-    public void setTrainingOther(String trainingOther) {
-        this.trainingOther = trainingOther;
-    }
-
-    public Integer getSpecialInspect() {
-        return specialInspect;
-    }
-
-    public void setSpecialInspect(Integer specialInspect) {
-        this.specialInspect = specialInspect;
-    }
-
-    public Integer getSimulatedAudit() {
-        return simulatedAudit;
-    }
-
-    public void setSimulatedAudit(Integer simulatedAudit) {
-        this.simulatedAudit = simulatedAudit;
-    }
-
-    public String getFeaturedWorkOther() {
-        return featuredWorkOther;
-    }
-
-    public void setFeaturedWorkOther(String featuredWorkOther) {
-        this.featuredWorkOther = featuredWorkOther;
-    }
-
-    public Integer getHtScore() {
-        return htScore;
-    }
-
-    public void setHtScore(Integer htScore) {
-        this.htScore = htScore;
-    }
-
-    public Integer getHtBatch() {
-        return htBatch;
-    }
-
-    public void setHtBatch(Integer htBatch) {
-        this.htBatch = htBatch;
-    }
-
-    public Integer getHtFocus() {
-        return htFocus;
-    }
-
-    public void setHtFocus(Integer htFocus) {
-        this.htFocus = htFocus;
-    }
-
-    public Integer getWebSubmit() {
-        return webSubmit;
-    }
-
-    public void setWebSubmit(Integer webSubmit) {
-        this.webSubmit = webSubmit;
-    }
-
-    public String getWebSubmitOther() {
-        return webSubmitOther;
-    }
-
-    public void setWebSubmitOther(String webSubmitOther) {
-        this.webSubmitOther = webSubmitOther;
-    }
-
-    public Integer getPaperSubmit() {
-        return paperSubmit;
-    }
-
-    public void setPaperSubmit(Integer paperSubmit) {
-        this.paperSubmit = paperSubmit;
-    }
-
-    public String getPaperSubmitOther() {
-        return paperSubmitOther;
-    }
-
-    public void setPaperSubmitOther(String paperSubmitOther) {
-        this.paperSubmitOther = paperSubmitOther;
-    }
-
-    public Integer getReviewProvince() {
-        return reviewProvince;
-    }
-
-    public void setReviewProvince(Integer reviewProvince) {
-        this.reviewProvince = reviewProvince;
-    }
-
-    public Integer getReviewCountry() {
-        return reviewCountry;
-    }
-
-    public void setReviewCountry(Integer reviewCountry) {
-        this.reviewCountry = reviewCountry;
-    }
-
-    public Integer getReviewProvinceNumber() {
-        return reviewProvinceNumber;
-    }
-
-    public void setReviewProvinceNumber(Integer reviewProvinceNumber) {
-        this.reviewProvinceNumber = reviewProvinceNumber;
-    }
-
-    public Integer getReviewCountryNumber() {
-        return reviewCountryNumber;
-    }
-
-    public void setReviewCountryNumber(Integer reviewCountryNumber) {
-        this.reviewCountryNumber = reviewCountryNumber;
-    }
-
-    public String getRemarks() {
-        return remarks;
-    }
-
-    public void setRemarks(String remarks) {
-        this.remarks = remarks;
-    }
-
-}
-

+ 172 - 0
src/main/java/com/goafanti/common/model/TaskFeature.java

@@ -0,0 +1,172 @@
+package com.goafanti.common.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 项目申报详情日志(TaskFeature)实体类
+ *
+ * @author makejava
+ * @since 2025-01-02 15:36:03
+ */
+public class TaskFeature implements Serializable {
+    private static final long serialVersionUID = 475737003772588398L;
+
+    private Integer id;
+/**
+     * 项目进度编号
+     */
+    private Integer tdid;
+/**
+     * 检查开始时间
+     */
+    private Date startTime;
+/**
+     * 检查部门
+     */
+    private String depName;
+/**
+     * 被检查年度
+     */
+    private String yearFeature;
+/**
+     * 检查类别
+     */
+    private Integer type;
+/**
+     * 检查事项
+     */
+    private String inspectionItems;
+/**
+     * 企业问题点
+     */
+    private String enterpriseProblems;
+/**
+     * 解决方式
+     */
+    private String solution;
+/**
+     * 检查后结论
+     */
+    private String inspectionConclusion;
+/**
+     * 是否提醒企业专业人员跟进事宜
+     */
+    private String remindFollow;
+/**
+     * 备注说明
+     */
+    private String remarks;
+/**
+     * 创建时间
+     */
+    private Date createTime;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getTdid() {
+        return tdid;
+    }
+
+    public void setTdid(Integer tdid) {
+        this.tdid = tdid;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getDepName() {
+        return depName;
+    }
+
+    public void setDepName(String depName) {
+        this.depName = depName;
+    }
+
+    public String getYearFeature() {
+        return yearFeature;
+    }
+
+    public void setYearFeature(String yearFeature) {
+        this.yearFeature = yearFeature;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getInspectionItems() {
+        return inspectionItems;
+    }
+
+    public void setInspectionItems(String inspectionItems) {
+        this.inspectionItems = inspectionItems;
+    }
+
+    public String getEnterpriseProblems() {
+        return enterpriseProblems;
+    }
+
+    public void setEnterpriseProblems(String enterpriseProblems) {
+        this.enterpriseProblems = enterpriseProblems;
+    }
+
+    public String getSolution() {
+        return solution;
+    }
+
+    public void setSolution(String solution) {
+        this.solution = solution;
+    }
+
+    public String getInspectionConclusion() {
+        return inspectionConclusion;
+    }
+
+    public void setInspectionConclusion(String inspectionConclusion) {
+        this.inspectionConclusion = inspectionConclusion;
+    }
+
+    public String getRemindFollow() {
+        return remindFollow;
+    }
+
+    public void setRemindFollow(String remindFollow) {
+        this.remindFollow = remindFollow;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+}
+

+ 196 - 0
src/main/java/com/goafanti/common/model/TaskFeatureLog.java

@@ -0,0 +1,196 @@
+package com.goafanti.common.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 项目申报详情日志(TaskFeatureLog)实体类
+ *
+ * @author makejava
+ * @since 2025-01-02 15:36:11
+ */
+public class TaskFeatureLog implements Serializable {
+    private static final long serialVersionUID = 547666453731683831L;
+
+    private Integer id;
+/**
+     * 项目进度编号
+     */
+    private Integer tdlId;
+/**
+     * 检查开始时间
+     */
+    private Date startTime;
+/**
+     * 检查部门
+     */
+    private String depName;
+/**
+     * 被检查年度
+     */
+    private String yearFeature;
+/**
+     * 检查类别
+     */
+    private Integer type;
+/**
+     * 检查事项
+     */
+    private String inspectionItems;
+/**
+     * 企业问题点
+     */
+    private String enterpriseProblems;
+/**
+     * 解决方式
+     */
+    private String solution;
+/**
+     * 检查后结论
+     */
+    private String inspectionConclusion;
+/**
+     * 是否提醒企业专业人员跟进事宜
+     */
+    private String remindFollow;
+/**
+     * 备注说明
+     */
+    private String remarks;
+/**
+     * 修改人
+     */
+    private String aid;
+/**
+     * 修改人名称
+     */
+    private String aname;
+/**
+     * 创建时间
+     */
+    private Date createTime;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getTdlId() {
+        return tdlId;
+    }
+
+    public void setTdlId(Integer tdlId) {
+        this.tdlId = tdlId;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getDepName() {
+        return depName;
+    }
+
+    public void setDepName(String depName) {
+        this.depName = depName;
+    }
+
+    public String getYearFeature() {
+        return yearFeature;
+    }
+
+    public void setYearFeature(String yearFeature) {
+        this.yearFeature = yearFeature;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getInspectionItems() {
+        return inspectionItems;
+    }
+
+    public void setInspectionItems(String inspectionItems) {
+        this.inspectionItems = inspectionItems;
+    }
+
+    public String getEnterpriseProblems() {
+        return enterpriseProblems;
+    }
+
+    public void setEnterpriseProblems(String enterpriseProblems) {
+        this.enterpriseProblems = enterpriseProblems;
+    }
+
+    public String getSolution() {
+        return solution;
+    }
+
+    public void setSolution(String solution) {
+        this.solution = solution;
+    }
+
+    public String getInspectionConclusion() {
+        return inspectionConclusion;
+    }
+
+    public void setInspectionConclusion(String inspectionConclusion) {
+        this.inspectionConclusion = inspectionConclusion;
+    }
+
+    public String getRemindFollow() {
+        return remindFollow;
+    }
+
+    public void setRemindFollow(String remindFollow) {
+        this.remindFollow = remindFollow;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public String getAid() {
+        return aid;
+    }
+
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
+    public String getAname() {
+        return aname;
+    }
+
+    public void setAname(String aname) {
+        this.aname = aname;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+}
+

+ 7 - 19
src/main/java/com/goafanti/common/task/ReleaseUserTask.java

@@ -285,7 +285,6 @@ public class ReleaseUserTask {
 		Date releaseTime = new Date();
 		try {
 			List<LockingReleaseBo> lockUserList = new ArrayList<>();
-			List<LockingReleaseBo> users=new ArrayList<>();
 			if (userList != null && !userList.isEmpty()) {
 				for (User u : userList) {
 					System.out.println(u.getId());
@@ -302,7 +301,7 @@ public class ReleaseUserTask {
 						customerService.pushReleaseLog(users1);
 						addUserNotice(users1);
 						if (!users1.isEmpty()){
-							users.addAll(users1);
+							lockUserList.addAll(users1);
 						}
 
 					}
@@ -321,23 +320,14 @@ public class ReleaseUserTask {
 
 				}
 			}
-
-			//新增客户丢失
-			if (!users.isEmpty()) {
-				List<LockingReleaseBo> releaseList = new ArrayList<>();
-				for (int i = 0; i < users.size(); i++) {
-					releaseList.add(users.get(i));
-					if (pointsDataLimit == releaseList.size() || i == users.size() - 1) {
-						userService.updateUserShareType(releaseList);
-						newList.clear();
-						Thread.sleep(2000);
-					}
-
-				}
-			}
 			//处理每个人重复的天数
 			pushSalesmanCount(lockUserList);
 			pushChannel(releaseTime, userList);
+			//客户释放
+			List<LockingReleaseBo> lockList = customerService.selectPendinglockUserList();
+			if (!lockList.isEmpty()){
+				customerService.updateReleaseLock(releaseTime);
+			}
 		} catch (Exception e) {
 			Notice n = new Notice(UUID.randomUUID().toString(), new Date(), 0, "1",
 					NoticeStatus.TASK_PATENT_ERROR.getCode(), "==============客户释放失败================",null);
@@ -402,9 +392,7 @@ public class ReleaseUserTask {
 				}
 			}
 		}
-		List<LockingReleaseBo> lockList = customerService.selectPendinglockUserList();
-		if (!lockList.isEmpty())
-			customerService.updateReleaseLock(releaseTime);
+
 	}
 
 	public void addNotice(Notice n ) {

+ 233 - 0
src/main/java/com/goafanti/common/utils/excel/NewExcelUtil.java

@@ -7,6 +7,7 @@ import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.common.utils.excel.Excel.ColumnType;
 import com.goafanti.common.utils.excel.Excel.Type;
+import com.goafanti.techproject.bo.OutTaskDetailsBo;
 import org.apache.poi.POIXMLDocumentPart;
 import org.apache.poi.hssf.usermodel.*;
 import org.apache.poi.ss.usermodel.*;
@@ -1904,5 +1905,237 @@ public class NewExcelUtil<T> {
 	}
 
 
+	public Result exportTaskDetailsExcel(OutTaskDetailsBo byTid, String sheetName, String uploadPath) {
+		OutputStream out = null;
+		String filename="";
+		downloadPath=uploadPath;
+		uploadPath=uploadPath+"/"+"tmp/member_progress.xls";
+        try {
+            FileInputStream fileInputStream = new FileInputStream(uploadPath);
+			wb = new HSSFWorkbook(fileInputStream);
+			styles=createStyles(wb);
+			sheet = wb.getSheetAt(0);
+			Row row = sheet.createRow(5);
+
+			filename = encodingFilename(sheetName);
+			out = Files.newOutputStream(Paths.get(getAbsoluteFile(filename)));
+			addCell( row,byTid);
+			wb.write(out);
+			return new Result().data(filename);
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw new BusinessException("导出Excel失败,请联系网站管理员!");
+		} finally {
+			if (wb != null) {
+				try {
+					wb.close();
+				} catch (IOException e1) {
+					e1.printStackTrace();
+				}
+			}
+			if (out != null) {
+				try {
+					out.close();
+				} catch (IOException e1) {
+					e1.printStackTrace();
+				}
+			}
+		}
+    }
+
+	private void addCell(Row row,OutTaskDetailsBo o) {
+		for (int i = 0; i < 51; i++) {
+			Cell cell = row.createCell(i);
+			cell.setCellStyle(styles.get("data4"));
+			if (i==0)cell.setCellValue(1);
+			else if(i==1)cell.setCellValue(o.getUserName());
+			else if(i==2)cell.setCellValue(o.getServiceProject());
+			else if(i==3)cell.setCellValue(o.getServiceyear());
+			else if(i==4)cell.setCellValue("");
+			else if(i==5)cell.setCellValue(o.getMemberLvl());
+			else if(i==6){
+				if (o.getBeforeLastSalesAmount()!=null){
+					cell.setCellValue(o.getBeforeLastSalesAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==7){
+				if (o.getBeforeLastRdBudget()!=null){
+					cell.setCellValue(o.getBeforeLastRdBudget().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==8){
+				if(o.getLastSalesAmount()!=null){
+					cell.setCellValue(o.getLastSalesAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==9){
+				if(o.getLastRdBudget()!=null){
+					cell.setCellValue(o.getLastRdBudget().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==10){
+				addParam(cell,o.getCloseMeetingStatus(),o.getCloseMeetingOther());
+			}else if(i==11){
+				cell.setCellValue(o.getProjectApprovalNumber());
+			}else if(i==12){
+				if (o.getRdBudget() !=null){
+					cell.setCellValue(o.getRdBudget().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==13){
+				if (o.getRdSalesAmount() !=null){
+					cell.setCellValue(o.getRdSalesAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==14)cell.setCellValue(o.getRdBudgetRate());
+			else if(i==15)cell.setCellValue(o.getThreeYearsRdBudgetRate());
+			else if(i==16){
+				switch (o.getDataCycle())
+				{
+					case "0":
+						cell.setCellValue("第一季度");
+						break;
+					case "1": cell.setCellValue("上半年"); break;
+					case "2": cell.setCellValue("前三季度"); break;
+					case "3": cell.setCellValue("全年"); break;
+
+				}
+			}
+			else if(i==17)cell.setCellValue(o.getActualRdNumber());
+			else if(i==18){
+				if (o.getActualRdAmount() !=null){
+					cell.setCellValue(o.getActualRdAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==19){
+				if (o.getActualSalesAmount() !=null){
+					cell.setCellValue(o.getActualSalesAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==20)cell.setCellValue(o.getActualRdRate());
+			else if(i==21)cell.setCellValue(o.getThreeYearsActualRdRate());
+			else if(i==22) {
+				addParam(cell,o.getTorchStatus(),o.getTorchOther());
+			}
+			else if(i==23){
+				addParam(cell,o.getStatisticsStatus(),o.getStatisticsOther());
+			}
+			else if(i==24){
+				addParam(cell,o.getChStatus(),o.getChOther());
+			}
+			else if(i==25){
+				addParam(cell,o.getFinalSettlementStatus(),o.getFinalSettlementOther());
+			}
+			else if(i==26){
+				if (o.getReportRdAmount() !=null){
+					cell.setCellValue(o.getReportRdAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==27){
+				addParam(cell,o.getRdReservesStatus(),o.getRdReservesOther());
+			}
+			else if(i==28){
+				addParam(cell,o.getRdAwardCompensationStatus(),o.getRdAwardCompensationOther());
+			}
+			else if(i==29){
+				if (o.getRdAnnouncementAmount() !=null){
+					cell.setCellValue(o.getRdAnnouncementAmount().stripTrailingZeros().toPlainString());
+				}else cell.setCellValue("");
+			}
+			else if(i==30){
+				addParam(cell,o.getAdDeliverStatus(),o.getAdDeliverOther());
+			}
+			else if(i==31){
+				addParam(cell,o.getHtDeliverStatus(),o.getHtDeliverOther());
+			}
+			else if(i==32){
+				StringBuilder res= new StringBuilder();
+				if (o.getPhasedType()==1){
+					res.append("月度- ");
+				}else if (o.getPhasedType()==2){
+					res.append("季度- ");
+				}
+				String[] split = o.getPhasedContent().split(",");
+                for (String s : split) {
+                    res.append(s).append("月 ,");
+                }
+				if(res.toString().contains(",")){
+					cell.setCellValue(res.substring(0,res.length()-1));
+				}else {
+					cell.setCellValue("");
+				}
+			}
+			else if(i==33){
+				cell.setCellValue(o.getProjectApprovalWriteNumber());
+			}
+			else if(i==34){
+				cell.setCellValue(o.getProjectApprovalWriteRate());
+			}
+			else if(i==35){
+				addParam(cell,o.getAdPrepareJulyStatus(),o.getAdPrepareJulyOther());
+			}
+			else if(i==36){
+				addParam(cell,o.getAdPrepareOctoberStatus(),o.getAdPrepareOctoberOther());
+			}
+			else if(i==37){
+				cell.setCellValue(o.getIpDeclare());
+			}
+			else if(i==38){
+				cell.setCellValue(o.getIpAuthorize());
+			}
+			else if(i==39){
+				cell.setCellValue(o.getPublicReleaseStipulation());
+			}
+			else if(i==40){
+				cell.setCellValue(o.getPublicReleaseActual());
+			}
+			else if(i==41){
+				cell.setCellValue(o.getTrainingStipulation());
+			}
+			else if(i==42){
+				cell.setCellValue(o.getTrainingActual());
+			}
+			else if(i==43){
+				cell.setCellValue(o.getSpecialInspect());
+			}
+			else if(i==44){
+				cell.setCellValue(o.getSimulatedAudit());
+			}
+			else if(i==45){
+				cell.setCellValue(o.getFeaturedWorkOther());
+			}
+			else if(i==46){
+				addParam(cell,o.getWebSubmit(),o.getWebSubmitOther());
+			}
+			else if(i==47){
+				addParam(cell,o.getPaperSubmit(),o.getPaperSubmitOther());
+			}
+			else if(i==48){
+				cell.setCellValue(o.getReviewProvinceNumber());
+			}
+			else if(i==49){
+				cell.setCellValue(o.getReviewCountryNumber());
+			}
+			else if(i==50){
+				cell.setCellValue(DateUtils.formatDateYYYYMMddHHmm(o.getUpdateTime()));
+			}else {
+				cell.setCellValue("");
+			}
+		}
 
+
+	}
+
+	private void addParam(Cell cell, Integer code, String desc) {
+		switch (code)
+		{
+			case 0:
+				String res="其他:"+desc;
+				cell.setCellValue(res);
+				break;
+			case 1: cell.setCellValue("待完成"); break;
+			case 2: cell.setCellValue("已完成"); break;
+			case 3: cell.setCellValue("合同无此项"); break;
+		}
+	}
 }

+ 2 - 1
src/main/java/com/goafanti/organization/service/impl/OrganizationServiceImpl.java

@@ -259,7 +259,8 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 			addExamine(useDep, in.getFinanceId(),orderS);
 		}
 		if(in.getManagerId()!=null&&useDep.getManagerId()!=null&&!in.getManagerId().equals(useDep.getManagerId())){
-			expenseAccountExamineMapper.updateExamine(in.getManagerId(),useDep.getManagerId());
+
+			expenseAccountExamineMapper.updateExamine(in.getManagerId(),useDep.getManagerId(),useDep.getId());
 		}
 
 		//财务复审

File diff suppressed because it is too large
+ 1171 - 0
src/main/java/com/goafanti/techproject/bo/OutTaskDetailsBo.java


+ 34 - 569
src/main/java/com/goafanti/techproject/bo/TaskDetailsBo.java

@@ -2,609 +2,74 @@ package com.goafanti.techproject.bo;
 
 import com.goafanti.common.model.TaskDetails;
 
-import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
 
 public class TaskDetailsBo extends TaskDetails {
+    private String orderNo;
+    private String contractNo;
 
+    private String userName;
     /**
-     * 研发准备金备案 0=其他,1=待完成,2=已完成,3=合同无此项
+     * 会员  0否 1是
      */
-    private Integer rdReservesStatus;
+    private Integer memberStatus;
     /**
-     * 研发准备金备其他说明
+     * 会员等级
      */
-    private String rdReservesOther;
-    /**
-     * 研发奖补申请 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer rdAwardCompensationStatus;
-    /**
-     * 研发准备金备其他说明
-     */
-    private String rdAwardCompensationOther;
-    /**
-     * 研发奖补-申请金额
-     */
-    private BigDecimal rdApplicationFee;
-    /**
-     * 研发奖补-公示金额
-     */
-    private BigDecimal rdAnnouncementAmount;
-    /**
-     * 研发奖补-公示金额-其他
-     */
-    private String rdAnnouncementOther;
-    /**
-     * 加扣备查交付 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer adDeliverStatus;
-    /**
-     * 加扣备查交付其他说明
-     */
-    private String adDeliverOther;
-    /**
-     * 加扣备查交付归档 0=否,1=是
-     */
-    private Integer adDeliverFinish;
-    /**
-     * 高新备查交付 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer htDeliverStatus;
-    /**
-     * 高新加扣备查交付其他说明
-     */
-    private String htDeliverOther;
-    /**
-     * 高新加扣备查交付归档 0=否,1=是
-     */
-    private Integer htDeliverFinish;
-    /**
-     * 召开上年度总结与本年工作计划会议 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer closeMeetingStatus;
-    /**
-     * 召开上年度总结与本年工作计划会议其他说明
-     */
-    private String closeMeeting_Other;
-    /**
-     * 阶段性汇报 1=月度,2=季度
-     */
-    private Integer phasedType;
-    /**
-     * 阶段性汇报 1,2,3=选取1月到3月
-     */
-    private String phasedContent;
-    /**
-     * 立项资料编写数
-     */
-    private Integer projectApprovalWriteNumber;
-    /**
-     * 立项资料编写完成率
-     */
-    private Double projectApprovalWriteRate;
-    /**
-     * 加扣预申报七月 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer adPrepareJulyStatus;
-    /**
-     * 加扣预申报七月其他说明
-     */
-    private String adPrepareJulyOther;
-    /**
-     * 加扣预申报七月 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer adPrepareOctoberStatus;
-    /**
-     * 加扣预申报十月其他说明
-     */
-    private String adPrepareOctoberOther;
-    /**
-     * 知识产权申报数
-     */
-    private Integer ipDeclare;
-    /**
-     * 知识产权授权数
-     */
-    private Integer ipAuthorize;
-    /**
-     * 知识产权高新数
-     */
-    private Integer ipHt;
-    /**
-     * 知识产权高新I数
-     */
-    private Integer ipHtI;
-    /**
-     * 知识产权高新II数
-     */
-    private Integer ipHtIi;
-    /**
-     * 委外开发项目数
-     */
-    private Integer outsourcingDev;
-    /**
-     * 技术开发合同登记数
-     */
-    private Integer contractRegistration;
-    /**
-     * 公出约定次数
-     */
-    private Integer publicReleaseStipulation;
-    /**
-     * 公出实际次数
-     */
-    private Integer publicReleaseActual;
-    /**
-     * 培训约定次数
-     */
-    private Integer trainingStipulation;
-    /**
-     * 培训实际次数
-     */
-    private Integer trainingActual;
-    /**
-     * 培训其他说明
-     */
-    private String trainingOther;
-    /**
-     * 专项检查数
-     */
-    private Integer specialInspect;
-    /**
-     * 模拟稽查数
-     */
-    private Integer simulatedAudit;
-    /**
-     * 特色工作-其他
-     */
-    private String featuredWorkOther;
-    /**
-     * 高新认定评价估分
-     */
-    private Integer htScore;
-    /**
-     * 高新认定评申报批次
-     */
-    private Integer htBatch;
-    /**
-     * 高新认定重点关注 0=否,1=是
-     */
-    private Integer htFocus;
-    /**
-     * 网上系统提交 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer webSubmit;
-    /**
-     * 网上系统提交其他说明
-     */
-    private String webSubmitOther;
-    /**
-     * 纸质材料提交 0=其他,1=待完成,2=已完成,3=合同无此项
-     */
-    private Integer paperSubmit;
-    /**
-     * 纸质材料提交其他说明
-     */
-    private String paperSubmitOther;
-    /**
-     * 评审省级 0=淘汰,1=公示
-     */
-    private Integer reviewProvince;
-    /**
-     * 评审国家级 0=淘汰,1=公示
-     */
-    private Integer reviewCountry;
-    /**
-     * 评审省级序号
-     */
-    private Integer reviewProvinceNumber;
-    /**
-     * 评审国家级高企编号
-     */
-    private Integer reviewCountryNumber;
-    /**
-     * 备注说明
-     */
-    private String remarks;
-
-
-    public Integer getRdReservesStatus() {
-        return rdReservesStatus;
-    }
-
-    public void setRdReservesStatus(Integer rdReservesStatus) {
-        this.rdReservesStatus = rdReservesStatus;
-    }
-
-    public String getRdReservesOther() {
-        return rdReservesOther;
-    }
-
-    public void setRdReservesOther(String rdReservesOther) {
-        this.rdReservesOther = rdReservesOther;
-    }
-
-    public Integer getRdAwardCompensationStatus() {
-        return rdAwardCompensationStatus;
-    }
-
-    public void setRdAwardCompensationStatus(Integer rdAwardCompensationStatus) {
-        this.rdAwardCompensationStatus = rdAwardCompensationStatus;
-    }
-
-    public String getRdAwardCompensationOther() {
-        return rdAwardCompensationOther;
-    }
-
-    public void setRdAwardCompensationOther(String rdAwardCompensationOther) {
-        this.rdAwardCompensationOther = rdAwardCompensationOther;
-    }
-
-    public BigDecimal getRdApplicationFee() {
-        return rdApplicationFee;
-    }
-
-    public void setRdApplicationFee(BigDecimal rdApplicationFee) {
-        this.rdApplicationFee = rdApplicationFee;
-    }
-
-    public BigDecimal getRdAnnouncementAmount() {
-        return rdAnnouncementAmount;
-    }
-
-    public void setRdAnnouncementAmount(BigDecimal rdAnnouncementAmount) {
-        this.rdAnnouncementAmount = rdAnnouncementAmount;
-    }
-
-    public Integer getAdDeliverStatus() {
-        return adDeliverStatus;
-    }
-
-    public void setAdDeliverStatus(Integer adDeliverStatus) {
-        this.adDeliverStatus = adDeliverStatus;
-    }
-
-    public String getAdDeliverOther() {
-        return adDeliverOther;
-    }
-
-    public void setAdDeliverOther(String adDeliverOther) {
-        this.adDeliverOther = adDeliverOther;
-    }
-
-    public Integer getAdDeliverFinish() {
-        return adDeliverFinish;
-    }
-
-    public void setAdDeliverFinish(Integer adDeliverFinish) {
-        this.adDeliverFinish = adDeliverFinish;
-    }
-
-    public Integer getHtDeliverStatus() {
-        return htDeliverStatus;
-    }
-
-    public void setHtDeliverStatus(Integer htDeliverStatus) {
-        this.htDeliverStatus = htDeliverStatus;
-    }
-
-    public String getHtDeliverOther() {
-        return htDeliverOther;
-    }
-
-    public void setHtDeliverOther(String htDeliverOther) {
-        this.htDeliverOther = htDeliverOther;
-    }
-
-    public Integer getHtDeliverFinish() {
-        return htDeliverFinish;
-    }
-
-    public void setHtDeliverFinish(Integer htDeliverFinish) {
-        this.htDeliverFinish = htDeliverFinish;
-    }
-
-    public Integer getCloseMeetingStatus() {
-        return closeMeetingStatus;
-    }
-
-    public void setCloseMeetingStatus(Integer closeMeetingStatus) {
-        this.closeMeetingStatus = closeMeetingStatus;
-    }
-
-    public String getCloseMeeting_Other() {
-        return closeMeeting_Other;
-    }
-
-    public void setCloseMeeting_Other(String closeMeeting_Other) {
-        this.closeMeeting_Other = closeMeeting_Other;
-    }
-
-    public Integer getPhasedType() {
-        return phasedType;
-    }
-
-    public void setPhasedType(Integer phasedType) {
-        this.phasedType = phasedType;
-    }
-
-    public String getPhasedContent() {
-        return phasedContent;
-    }
-
-    public void setPhasedContent(String phasedContent) {
-        this.phasedContent = phasedContent;
-    }
-
-    public Integer getAdPrepareJulyStatus() {
-        return adPrepareJulyStatus;
-    }
-
-    public void setAdPrepareJulyStatus(Integer adPrepareJulyStatus) {
-        this.adPrepareJulyStatus = adPrepareJulyStatus;
-    }
-
-    public String getAdPrepareJulyOther() {
-        return adPrepareJulyOther;
-    }
-
-    public void setAdPrepareJulyOther(String adPrepareJulyOther) {
-        this.adPrepareJulyOther = adPrepareJulyOther;
-    }
-
-    public Integer getAdPrepareOctoberStatus() {
-        return adPrepareOctoberStatus;
-    }
-
-    public void setAdPrepareOctoberStatus(Integer adPrepareOctoberStatus) {
-        this.adPrepareOctoberStatus = adPrepareOctoberStatus;
-    }
-
-    public String getAdPrepareOctoberOther() {
-        return adPrepareOctoberOther;
-    }
-
-    public void setAdPrepareOctoberOther(String adPrepareOctoberOther) {
-        this.adPrepareOctoberOther = adPrepareOctoberOther;
-    }
-
-    public Integer getIpDeclare() {
-        return ipDeclare;
-    }
-
-    public void setIpDeclare(Integer ipDeclare) {
-        this.ipDeclare = ipDeclare;
-    }
-
-    public Integer getIpAuthorize() {
-        return ipAuthorize;
-    }
-
-    public void setIpAuthorize(Integer ipAuthorize) {
-        this.ipAuthorize = ipAuthorize;
-    }
-
-    public Integer getIpHt() {
-        return ipHt;
-    }
-
-    public void setIpHt(Integer ipHt) {
-        this.ipHt = ipHt;
-    }
-
-    public Integer getIpHtI() {
-        return ipHtI;
-    }
-
-    public void setIpHtI(Integer ipHtI) {
-        this.ipHtI = ipHtI;
-    }
-
-    public Integer getIpHtIi() {
-        return ipHtIi;
-    }
-
-    public void setIpHtIi(Integer ipHtIi) {
-        this.ipHtIi = ipHtIi;
-    }
-
-    public Integer getOutsourcingDev() {
-        return outsourcingDev;
-    }
-
-    public void setOutsourcingDev(Integer outsourcingDev) {
-        this.outsourcingDev = outsourcingDev;
-    }
+    private String memberLvl;
 
-    public Integer getContractRegistration() {
-        return contractRegistration;
-    }
-
-    public void setContractRegistration(Integer contractRegistration) {
-        this.contractRegistration = contractRegistration;
-    }
-
-    public Integer getPublicReleaseStipulation() {
-        return publicReleaseStipulation;
-    }
-
-    public void setPublicReleaseStipulation(Integer publicReleaseStipulation) {
-        this.publicReleaseStipulation = publicReleaseStipulation;
-    }
-
-    public Integer getPublicReleaseActual() {
-        return publicReleaseActual;
-    }
-
-    public void setPublicReleaseActual(Integer publicReleaseActual) {
-        this.publicReleaseActual = publicReleaseActual;
-    }
-
-    public Integer getTrainingStipulation() {
-        return trainingStipulation;
-    }
-
-    public void setTrainingStipulation(Integer trainingStipulation) {
-        this.trainingStipulation = trainingStipulation;
-    }
-
-    public Integer getTrainingActual() {
-        return trainingActual;
-    }
 
-    public void setTrainingActual(Integer trainingActual) {
-        this.trainingActual = trainingActual;
-    }
 
-    public String getTrainingOther() {
-        return trainingOther;
-    }
+    List<Map<String,Object >> taskList;
 
-    public void setTrainingOther(String trainingOther) {
-        this.trainingOther = trainingOther;
-    }
-
-    public Integer getSpecialInspect() {
-        return specialInspect;
-    }
-
-    public void setSpecialInspect(Integer specialInspect) {
-        this.specialInspect = specialInspect;
-    }
-
-    public Integer getSimulatedAudit() {
-        return simulatedAudit;
-    }
-
-    public void setSimulatedAudit(Integer simulatedAudit) {
-        this.simulatedAudit = simulatedAudit;
-    }
-
-    public Integer getHtScore() {
-        return htScore;
-    }
-
-    public void setHtScore(Integer htScore) {
-        this.htScore = htScore;
-    }
-
-    public Integer getHtBatch() {
-        return htBatch;
-    }
 
-    public void setHtBatch(Integer htBatch) {
-        this.htBatch = htBatch;
-    }
-
-    public Integer getHtFocus() {
-        return htFocus;
-    }
-
-    public void setHtFocus(Integer htFocus) {
-        this.htFocus = htFocus;
-    }
-
-    public Integer getWebSubmit() {
-        return webSubmit;
-    }
-
-    public void setWebSubmit(Integer webSubmit) {
-        this.webSubmit = webSubmit;
-    }
-
-    public String getWebSubmitOther() {
-        return webSubmitOther;
-    }
-
-    public void setWebSubmitOther(String webSubmitOther) {
-        this.webSubmitOther = webSubmitOther;
-    }
-
-    public Integer getPaperSubmit() {
-        return paperSubmit;
-    }
-
-    public void setPaperSubmit(Integer paperSubmit) {
-        this.paperSubmit = paperSubmit;
-    }
-
-    public String getPaperSubmitOther() {
-        return paperSubmitOther;
-    }
-
-    public void setPaperSubmitOther(String paperSubmitOther) {
-        this.paperSubmitOther = paperSubmitOther;
-    }
-
-    public Integer getReviewProvince() {
-        return reviewProvince;
-    }
-
-    public void setReviewProvince(Integer reviewProvince) {
-        this.reviewProvince = reviewProvince;
-    }
-
-    public Integer getReviewCountry() {
-        return reviewCountry;
-    }
-
-    public void setReviewCountry(Integer reviewCountry) {
-        this.reviewCountry = reviewCountry;
-    }
-
-    public Integer getReviewProvinceNumber() {
-        return reviewProvinceNumber;
-    }
-
-    public void setReviewProvinceNumber(Integer reviewProvinceNumber) {
-        this.reviewProvinceNumber = reviewProvinceNumber;
-    }
 
-    public Integer getReviewCountryNumber() {
-        return reviewCountryNumber;
+    public String getUserName() {
+        return userName;
     }
 
-    public void setReviewCountryNumber(Integer reviewCountryNumber) {
-        this.reviewCountryNumber = reviewCountryNumber;
+    public void setUserName(String userName) {
+        this.userName = userName;
     }
 
-    public String getRdAnnouncementOther() {
-        return rdAnnouncementOther;
+    public List<Map<String, Object>> getTaskList() {
+        return taskList;
     }
 
-    public void setRdAnnouncementOther(String rdAnnouncementOther) {
-        this.rdAnnouncementOther = rdAnnouncementOther;
+    public void setTaskList(List<Map<String, Object>> taskList) {
+        this.taskList = taskList;
     }
 
-    public Integer getProjectApprovalWriteNumber() {
-        return projectApprovalWriteNumber;
+    public Integer getMemberStatus() {
+        return memberStatus;
     }
 
-    public void setProjectApprovalWriteNumber(Integer projectApprovalWriteNumber) {
-        this.projectApprovalWriteNumber = projectApprovalWriteNumber;
+    public void setMemberStatus(Integer memberStatus) {
+        this.memberStatus = memberStatus;
     }
 
-    public Double getProjectApprovalWriteRate() {
-        return projectApprovalWriteRate;
+    public String getMemberLvl() {
+        return memberLvl;
     }
 
-    public void setProjectApprovalWriteRate(Double projectApprovalWriteRate) {
-        this.projectApprovalWriteRate = projectApprovalWriteRate;
+    public void setMemberLvl(String memberLvl) {
+        this.memberLvl = memberLvl;
     }
 
-    public String getFeaturedWorkOther() {
-        return featuredWorkOther;
+    public String getOrderNo() {
+        return orderNo;
     }
 
-    public void setFeaturedWorkOther(String featuredWorkOther) {
-        this.featuredWorkOther = featuredWorkOther;
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
     }
 
-    public String getRemarks() {
-        return remarks;
+    public String getContractNo() {
+        return contractNo;
     }
 
-    public void setRemarks(String remarks) {
-        this.remarks = remarks;
+    public void setContractNo(String contractNo) {
+        this.contractNo = contractNo;
     }
 }

+ 0 - 15
src/main/java/com/goafanti/techproject/controller/AdminTaskDetailsController.java

@@ -1,15 +0,0 @@
-package com.goafanti.techproject.controller;
-
-import com.goafanti.common.controller.CertifyApiController;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-@RequestMapping(value = "/api/admin/taskDetails")
-public class AdminTaskDetailsController extends CertifyApiController {
-
-
-
-
-
-}

+ 0 - 88
src/main/java/com/goafanti/techproject/controller/TaskAnnualReportController.java

@@ -1,88 +0,0 @@
-package com.goafanti.techproject.controller;
-
-import com.goafanti.common.bo.Result;
-import com.goafanti.common.controller.BaseController;
-import com.goafanti.common.model.TaskAnnualReport;
-import com.goafanti.techproject.service.TaskAnnualReportService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * 项目年报(TaskAnnualReport)表控制层
- *
- * @author makejava
- * @since 2024-12-26 10:55:04
- */
-@RestController
-@RequestMapping("/api/admin/taskAnnualReport")
-public class TaskAnnualReportController extends BaseController {
-    /**
-     * 服务对象
-     */
-    @Resource
-    private TaskAnnualReportService taskAnnualReportService;
-
-
-    /**
-     * 新增数据
-     *
-     * @param taskAnnualReport 实体
-     * @return 新增结果
-     */
-    @PostMapping("/add")
-    public Result add(TaskAnnualReport taskAnnualReport) {
-        return new Result<>().data(this.taskAnnualReportService.insert(taskAnnualReport));
-    }
-
-
-    /**
-     * 通过主键查询单条数据
-     *
-     * @param id 主键
-     * @return 单条数据
-     */
-    @GetMapping("/get")
-    public Result<TaskAnnualReport> queryById(Integer id) {
-        return new Result<>().data(this.taskAnnualReportService.queryById(id));
-    }
-
-
-    /**
-     * 编辑数据
-     *
-     * @param taskAnnualReport 实体
-     * @return 编辑结果
-     */
-    @PostMapping("/update")
-    public Result edit(TaskAnnualReport taskAnnualReport) {
-        return new Result<>().data(this.taskAnnualReportService.update(taskAnnualReport));
-    }
-
-    /**
-     * 删除数据
-     *
-     * @param id 主键
-     * @return 删除是否成功
-     */
-    @GetMapping("/delete")
-    public Result deleteById(Integer id) {
-        return new Result<>().data(this.taskAnnualReportService.deleteById(id));
-    }
-
-    /**
-     * 列表查询
-     *
-     * @param in 参数
-     * @return
-     */
-    @GetMapping("/list")
-    public Result<TaskAnnualReport> list(TaskAnnualReport in, Integer pageNo, Integer pageSize) {
-        return new Result<>().data(this.taskAnnualReportService.list(in, pageNo, pageSize));
-    }
-
-}
-

+ 32 - 7
src/main/java/com/goafanti/techproject/controller/TaskDetailsController.java

@@ -1,11 +1,10 @@
 package com.goafanti.techproject.controller;
 
 import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.BaseController;
 import com.goafanti.common.model.TaskDetails;
-import com.goafanti.common.model.TaskDetailsExtend;
-import com.goafanti.common.model.TaskDetailsSupplement;
-import com.goafanti.techproject.bo.TaskDetailsBo;
+import com.goafanti.common.model.TaskFeature;
 import com.goafanti.techproject.service.TaskDetailsService;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -37,8 +36,13 @@ public class TaskDetailsController extends BaseController {
      * @return 新增结果
      */
     @PostMapping("/add")
-    public Result<TaskDetailsBo> add(TaskDetails taskDetails, TaskDetailsExtend taskDetailsExtend, TaskDetailsSupplement taskDetailsSupp) {
-        return new Result<>().data(this.taskDetailsService.insert(taskDetails,taskDetailsExtend,taskDetailsSupp));
+    public Result<TaskDetails> add(TaskDetails taskDetails, TaskFeature taskFeature) {
+        Result<TaskDetails> res = new Result<>();
+        if (taskDetailsService.checkTid(taskDetails)){
+            res.getError().add(buildError("项目进度与年份", ErrorConstants.PARAM_BEING_ERROR));
+            return res;
+        }
+        return res.data(this.taskDetailsService.insert(taskDetails,taskFeature));
     }
 
 
@@ -53,6 +57,17 @@ public class TaskDetailsController extends BaseController {
         return new Result<>().data(this.taskDetailsService.queryById(id));
     }
 
+    /**
+     * 查询项目进度页面
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/getByTid")
+    public Result<TaskDetails> getByTid(Integer id) {
+        return new Result<>().data(this.taskDetailsService.getByTid(id));
+    }
+
 
     /**
      * 编辑项目进度数据
@@ -61,8 +76,8 @@ public class TaskDetailsController extends BaseController {
      * @return 编辑结果
      */
     @PostMapping("/update")
-    public Result edit(TaskDetails taskDetails, TaskDetailsExtend taskDetailsExtend, TaskDetailsSupplement taskDetailsSupp) {
-        return new Result<>().data(this.taskDetailsService.update(taskDetails, taskDetailsExtend, taskDetailsSupp));
+    public Result edit(TaskDetails taskDetails, TaskFeature taskFeature) {
+        return new Result<>().data(this.taskDetailsService.update(taskDetails,  taskFeature));
     }
 
     /**
@@ -87,5 +102,15 @@ public class TaskDetailsController extends BaseController {
         return new Result<>().data(this.taskDetailsService.list(in, pageNo, pageSize));
     }
 
+    /**
+     * 导出数据
+     *
+     * @return
+     */
+    @GetMapping("/export")
+    public Result export(Integer id) {
+        return this.taskDetailsService.export(id);
+    }
+
 }
 

+ 15 - 5
src/main/java/com/goafanti/techproject/service/TaskDetailsService.java

@@ -1,8 +1,8 @@
 package com.goafanti.techproject.service;
 
+import com.goafanti.common.bo.Result;
 import com.goafanti.common.model.TaskDetails;
-import com.goafanti.common.model.TaskDetailsExtend;
-import com.goafanti.common.model.TaskDetailsSupplement;
+import com.goafanti.common.model.TaskFeature;
 import com.goafanti.techproject.bo.TaskDetailsBo;
 
 /**
@@ -19,7 +19,7 @@ public interface TaskDetailsService {
      * @param id 主键
      * @return 实例对象
      */
-    TaskDetailsBo queryById(Integer id);
+    TaskDetails queryById(Integer id);
 
 
     /**
@@ -28,15 +28,16 @@ public interface TaskDetailsService {
      * @param taskDetails 实例对象
      * @return 实例对象
      */
-    TaskDetailsBo insert(TaskDetails taskDetails, TaskDetailsExtend taskDetailsExtend, TaskDetailsSupplement taskDetailsSupp);
+    TaskDetails insert(TaskDetails taskDetails,TaskFeature taskFeature);
 
     /**
      * 修改数据
      *
      * @param taskDetails 实例对象
+     * @param taskFeature
      * @return 实例对象
      */
-    TaskDetailsBo update(TaskDetails taskDetails, TaskDetailsExtend taskDetailsExtend, TaskDetailsSupplement taskDetailsSupp);
+    TaskDetails update(TaskDetails taskDetails, TaskFeature taskFeature);
 
     /**
      * 通过主键删除数据
@@ -54,4 +55,13 @@ public interface TaskDetailsService {
      */
     Object list(TaskDetails in, Integer pageNo, Integer pageSize);
 
+    TaskDetailsBo getByTid(Integer id);
+
+    Result export(Integer id);
+
+    boolean checkTid(TaskDetails taskDetails);
+
+    TaskFeature addFeature(TaskFeature in);
+
+    TaskFeature updateFeature(TaskFeature in);
 }

+ 0 - 96
src/main/java/com/goafanti/techproject/service/impl/TaskAnnualReportServiceImpl.java

@@ -1,96 +0,0 @@
-package com.goafanti.techproject.service.impl;
-
-import com.goafanti.common.dao.TOrderNewMapper;
-import com.goafanti.common.dao.TaskAnnualReportMapper;
-import com.goafanti.common.model.TOrderNew;
-import com.goafanti.common.model.TaskAnnualReport;
-import com.goafanti.core.mybatis.BaseMybatisDao;
-import com.goafanti.core.mybatis.page.Pagination;
-import com.goafanti.core.shiro.token.TokenManager;
-import com.goafanti.techproject.service.TaskAnnualReportService;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 项目年报(TaskAnnualReport)表服务实现类
- *
- * @author makejava
- * @since 2024-12-26 10:55:04
- */
-@Service("taskAnnualReportService")
-public class TaskAnnualReportServiceImpl extends BaseMybatisDao<TaskAnnualReportMapper> implements TaskAnnualReportService {
-    @Resource
-    private TaskAnnualReportMapper taskAnnualReportMapper;
-    @Resource
-    private TOrderNewMapper tOrderNewMapper;
-
-
-    @Override
-    public Pagination<TaskAnnualReport> list(TaskAnnualReport taskAnnualReport, Integer pageNo, Integer pageSize) {
-        Map<String, Object> params = new HashMap<>();
-        params.put("in", taskAnnualReport);
-        return (Pagination<TaskAnnualReport>) findPage("findTaskAnnualReportList",
-                "findTaskAnnualReportCount", params, pageNo, pageSize);
-    }
-
-    /**
-     * 通过ID查询单条数据
-     *
-     * @param id 主键
-     * @return 实例对象
-     */
-    @Override
-    public TaskAnnualReport queryById(Integer id) {
-        return this.taskAnnualReportMapper.queryById(id);
-    }
-
-
-    /**
-     * 新增数据
-     *
-     * @param taskAnnualReport 实例对象
-     * @return 实例对象
-     */
-    @Override
-    public TaskAnnualReport insert(TaskAnnualReport taskAnnualReport) {
-        TOrderNew tOrderNew =tOrderNewMapper.selectByTid(taskAnnualReport.getTid());
-        taskAnnualReport.setAid(TokenManager.getAdminId());
-        taskAnnualReport.setUid(tOrderNew.getBuyerId());
-        taskAnnualReport.setCreateTime(new Date());
-        TaskAnnualReport use = taskAnnualReportMapper.selectByTidAndYear(taskAnnualReport.getTid(), taskAnnualReport.getYear());
-        if (use !=null){
-            taskAnnualReport.setId(use.getId());
-            return update(taskAnnualReport);
-        }else {
-            this.taskAnnualReportMapper.insert(taskAnnualReport);
-            return taskAnnualReport;
-        }
-    }
-
-    /**
-     * 修改数据
-     *
-     * @param taskAnnualReport 实例对象
-     * @return 实例对象
-     */
-    @Override
-    public TaskAnnualReport update(TaskAnnualReport taskAnnualReport) {
-        this.taskAnnualReportMapper.update(taskAnnualReport);
-        return this.queryById(taskAnnualReport.getId());
-    }
-
-    /**
-     * 通过主键删除数据
-     *
-     * @param id 主键
-     * @return 是否成功
-     */
-    @Override
-    public boolean deleteById(Integer id) {
-        return this.taskAnnualReportMapper.deleteById(id) > 0;
-    }
-}

+ 169 - 80
src/main/java/com/goafanti/techproject/service/impl/TaskDetailsServiceImpl.java

@@ -1,22 +1,25 @@
 package com.goafanti.techproject.service.impl;
 
+import com.goafanti.common.bo.Result;
 import com.goafanti.common.dao.*;
 import com.goafanti.common.model.*;
+import com.goafanti.common.utils.excel.NewExcelUtil;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.order.bo.TOrderTaskBo;
+import com.goafanti.techproject.bo.OutTaskDetailsBo;
 import com.goafanti.techproject.bo.TaskDetailsBo;
 import com.goafanti.techproject.service.TaskDetailsService;
-import org.apache.commons.beanutils.BeanUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDate;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 项目申报详情(TaskDetails)表服务实现类
@@ -28,14 +31,25 @@ import java.util.Map;
 public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> implements TaskDetailsService {
     @Resource
     private TaskDetailsMapper taskDetailsMapper;
+
     @Resource
-    private TaskDetailsExtendMapper taskDetailsExtendMapper;
-    @Resource
-    private TaskDetailsSupplementMapper taskDetailsSupplementMapper;
+    private TaskDetailsLogMapper taskDetailsLogMapper;
+
     @Resource
     private TOrderNewMapper tOrderNewMapper;
     @Resource
-    private TaskAnnualReportMapper taskAnnualReportMapper;
+    private TOrderMidMapper tOrderMidMapper;
+    @Resource
+    private TOrderTaskMapper tOrderTaskMapper;
+    @Resource
+    private TaskFeatureMapper taskFeatureMapper;
+    @Resource
+    private TaskFeatureLogMapper taskFeatureLogMapper;
+
+
+
+    @Value(value = "${upload.path}")
+    private final String	uploadPath			= null;
 
 
     @Override
@@ -46,6 +60,63 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
                 "findTaskDetailsCount", params, pageNo, pageSize);
     }
 
+    @Override
+    public TaskDetailsBo getByTid(Integer id) {
+        TaskDetailsBo res = new TaskDetailsBo();
+        TOrderNew tOrderNew = tOrderNewMapper.selectByTid(id);
+        TOrderMid mid = tOrderMidMapper.selectByOrderNo(tOrderNew.getOrderNo());
+        List<TOrderTaskBo> tOrderTaskBos = tOrderTaskMapper.selectOrderTaskAll(tOrderNew.getOrderNo(), 4);
+        List<Map<String,Object >> list=new ArrayList<>();
+        TaskDetails taskDetails=taskDetailsMapper.selectByTid(id);
+        LocalDate now = LocalDate.now();
+
+        //如果是会员
+        TOrderTaskBo thisTask = null;
+        for (TOrderTaskBo e : tOrderTaskBos) {
+            if (e.getId().equals(id)){
+                thisTask=e;
+                break;
+            }
+        }
+        String serviceYear = thisTask.getServiceYear();
+        if (serviceYear.contains("(赠)")){
+            serviceYear=serviceYear.replace("(赠)", "");
+        }
+        for (TOrderTaskBo e : tOrderTaskBos) {
+            if (e.getServiceYear().equals(serviceYear)){
+                Map<String,Object> map=new HashMap<>();
+                map.put("serviceYear", e.getServiceYear());
+                map.put("taskName", e.getCommodityName());
+                map.put("id",e.getId());
+                //如果没有项目进度,查询同年份的项目进度
+                if (taskDetails==null&&!e.getId().equals(id)&&e.getcSort()==6){
+                    taskDetails=taskDetailsMapper.selectByTid(e.getId());
+                }
+                list.add(map);
+            }
+        }
+
+        BigDecimal totalAmount = tOrderNew.getTotalAmount();
+        String lvl=null;
+        if (totalAmount.compareTo(new BigDecimal("3"))<0){
+            lvl="A";
+        }else if (totalAmount.compareTo(new BigDecimal("8"))<1){
+            lvl="AA";
+        }else if (totalAmount.compareTo(new BigDecimal("8"))>0){
+            lvl="AAA";
+        }
+        res.setUserName(mid.getBuyerName());
+        res.setOrderNo(tOrderNew.getOrderNo());
+        res.setContractNo(tOrderNew.getContractNo());
+        res.setMemberStatus(mid.getProjectType());
+        res.setMemberLvl(lvl);
+        res.setTaskList(list);
+        return res;
+    }
+
+
+
+
     /**
      * 通过ID查询单条数据
      *
@@ -53,21 +124,8 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
      * @return 实例对象
      */
     @Override
-    public TaskDetailsBo queryById(Integer id) {
-        TaskDetailsBo taskDetailsBo = new TaskDetailsBo();
-        TaskDetails taskDetails = this.taskDetailsMapper.selectById(id);
-        TaskDetailsExtend taskDetailsExtend = taskDetailsExtendMapper.selectById(id);
-        TaskDetailsSupplement taskDetailsSupplement = taskDetailsSupplementMapper.selectById(id);
-        if (taskDetails != null){
-            try {
-                BeanUtils.copyProperties(taskDetailsBo,taskDetails );
-                BeanUtils.copyProperties( taskDetailsBo,taskDetailsExtend);
-                BeanUtils.copyProperties( taskDetailsBo,taskDetailsSupplement);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-        return taskDetailsBo;
+    public TaskDetails queryById(Integer id) {
+        return this.taskDetailsMapper.selectById(id);
     }
 
 
@@ -78,30 +136,36 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
      * @return 实例对象
      */
     @Override
-    public TaskDetailsBo insert(TaskDetails taskDetails, TaskDetailsExtend taskDetailsExtend, TaskDetailsSupplement taskDetailsSupp) {
+    public TaskDetails insert(TaskDetails taskDetails,TaskFeature taskFeature) {
         TOrderNew tOrderNew =tOrderNewMapper.selectByTid(taskDetails.getTid());
         taskDetails.setUid(tOrderNew.getBuyerId());
-        Date date = new Date();
-        taskDetails.setCreateTime(date);
-        taskDetails.setUpdateTime(date);
+        taskDetails.setCreateTime(new Date());
+        taskDetails.setUpdateTime(new Date());
         //数据计算
         countTaskDetails(taskDetails);
         this.taskDetailsMapper.insert(taskDetails);
-        if (taskDetails.getId() != null) {
-            taskDetailsExtend.setId(taskDetails.getId());
-            taskDetailsSupp.setId(taskDetails.getId());
-            taskDetailsExtendMapper.insert(taskDetailsExtend);
-            taskDetailsSupplementMapper.insert(taskDetailsSupp);
-        }
-        TaskDetailsBo taskDetailsBo = new TaskDetailsBo();
-        try {
-            BeanUtils.copyProperties(taskDetailsBo,taskDetails );
-            BeanUtils.copyProperties(taskDetailsBo,taskDetailsExtend);
-            BeanUtils.copyProperties(taskDetailsBo,taskDetailsSupp);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return taskDetailsBo;
+        taskFeature.setId(taskDetails.getId());
+        this.taskFeatureMapper.insert(taskFeature);
+        addTaskDetailsLog(taskDetails,taskFeature);
+        return taskDetails;
+    }
+
+    private void addTaskDetailsLog(TaskDetails taskDetails,TaskFeature taskFeature) {
+        Admin adminToken = TokenManager.getAdminToken();
+        TaskDetailsLog log=new TaskDetailsLog();
+        BeanUtils.copyProperties(taskDetails, log);
+        log.setTdid(taskDetails.getId());
+        log.setId(null);
+        log.setAid(adminToken.getId());
+        log.setAname(adminToken.getName());
+        taskDetailsLogMapper.insert(log);
+        TaskFeatureLog tfLog = new TaskFeatureLog();
+        BeanUtils.copyProperties(taskFeature, tfLog);
+        tfLog.setTdlId(log.getId());
+        tfLog.setId(null);
+        tfLog.setAid(adminToken.getId());
+        tfLog.setAname(adminToken.getName());
+        taskFeatureLogMapper.insert(tfLog);
     }
 
     private void countTaskDetails(TaskDetails taskDetails) {
@@ -115,46 +179,37 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
         }
         //计算年度研发占比
         //计算三年度的研发占比
-        LocalDate now = LocalDate.now();
-        int year = now.getYear();
-        List<TaskAnnualReport> taskAnnualReports = taskAnnualReportMapper.selectThreeYear(taskDetails.getTid(), year);
-
-        if(taskDetails.getRdBudget() !=null ||
-                taskDetails.getRdSalesAmount() !=null){
             BigDecimal rdBudget = taskDetails.getRdBudget();
             BigDecimal rdSalesAmount = taskDetails.getRdSalesAmount();
             BigDecimal res = rdBudget.divide(rdSalesAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
             taskDetails.setRdBudgetRate(res.doubleValue());
             //计算三年度的研发占比
-            if (taskAnnualReports.size()==2){
-                BigDecimal res2 = getBigDecimal(rdSalesAmount, rdBudget, taskAnnualReports);
-                taskDetails.setThreeYearsRdBudgetRate(res2.doubleValue());
-            }
-
-
-        }
+            BigDecimal res2 = getBigDecimal(rdSalesAmount, rdBudget, taskDetails);
+            taskDetails.setThreeYearsRdBudgetRate(res2.doubleValue());
         //计算实际研发占比
-        if(taskDetails.getActualRdNumber() !=null ||
+        if(taskDetails.getActualRdNumber() !=null &&
                 taskDetails.getActualRdAmount() !=null){
             BigDecimal actualRdNumber = BigDecimal.valueOf(taskDetails.getActualRdNumber());
             BigDecimal actualRdAmount = taskDetails.getActualRdAmount();
-            BigDecimal res = actualRdNumber.divide(actualRdAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
-            taskDetails.setActualRdRate(res.doubleValue());
-            if (taskAnnualReports.size()==2){
-                BigDecimal res2 = getBigDecimal(actualRdAmount, actualRdNumber, taskAnnualReports);
-                taskDetails.setThreeYearsActualRdRate(res2.doubleValue());
-            }
-        }
+            BigDecimal res3 = actualRdNumber.divide(actualRdAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+            taskDetails.setActualRdRate(res3.doubleValue());
+            BigDecimal res4 = getBigDecimal(actualRdAmount, actualRdNumber, taskDetails);
+                taskDetails.setThreeYearsActualRdRate(res4.doubleValue());
 
+        }
+        //计算立项资料占比
+        if (taskDetails.getProjectApprovalWriteNumber()!=null){
+            BigDecimal projectApprovalWriteNumber = BigDecimal.valueOf(taskDetails.getProjectApprovalWriteNumber());
+            BigDecimal res5 = projectApprovalWriteNumber.divide(new BigDecimal(taskDetails.getProjectApprovalNumber()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+            taskDetails.setProjectApprovalWriteRate(res5.doubleValue());
+        }
     }
 
-    private BigDecimal getBigDecimal(BigDecimal rdSalesAmount, BigDecimal rdBudget, List<TaskAnnualReport> taskAnnualReports) {
+    private BigDecimal getBigDecimal(BigDecimal rdSalesAmount, BigDecimal rdBudget, TaskDetails taskDetails) {
         BigDecimal threeYearsRdSalesAmount = rdSalesAmount;
         BigDecimal threeYearsRdBudget = rdBudget;
-        for (TaskAnnualReport e : taskAnnualReports) {
-            threeYearsRdBudget=threeYearsRdBudget.add(e.getResearchAmount());
-            threeYearsRdSalesAmount=threeYearsRdSalesAmount.add(e.getSalesAmount());
-        }
+        threeYearsRdSalesAmount = threeYearsRdSalesAmount.add(taskDetails.getLastRdSalesAmount()).add(taskDetails.getBeforeLastRdSalesAmount());
+        threeYearsRdBudget = threeYearsRdBudget.add(taskDetails.getLastRdBudget()).add(taskDetails.getBeforeLastRdBudget());
         return threeYearsRdBudget.divide(threeYearsRdSalesAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
     }
 
@@ -162,18 +217,17 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
      * 修改数据
      *
      * @param taskDetails 实例对象
+     * @param taskFeature
      * @return 实例对象
      */
     @Override
-    public TaskDetailsBo update(TaskDetails taskDetails, TaskDetailsExtend taskDetailsExtend, TaskDetailsSupplement taskDetailsSupp) {
-        if (taskDetails.getId()!=null){
-            taskDetailsExtend.setId(taskDetails.getId());
-            taskDetailsSupp.setId(taskDetails.getId());
-            this.taskDetailsMapper.update(taskDetails);
-            taskDetailsExtendMapper.update(taskDetailsExtend);
-            taskDetailsSupplementMapper.update(taskDetailsSupp);
-        }
-        return this.queryById(taskDetails.getId());
+    public TaskDetails update(TaskDetails taskDetails, TaskFeature taskFeature) {
+        taskDetails.setUpdateTime(new Date());
+        this.taskDetailsMapper.update(taskDetails);
+        countTaskDetails(taskDetails);
+        TaskDetails res = this.queryById(taskDetails.getId());
+        addTaskDetailsLog(res,taskFeature);
+        return res;
     }
 
     /**
@@ -185,8 +239,43 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
     @Override
     public boolean deleteById(Integer id) {
         this.taskDetailsMapper.deleteById(id);
-        taskDetailsExtendMapper.deleteById(id);
-        taskDetailsSupplementMapper.deleteById(id);
         return true;
     }
+
+
+    @Override
+    public Result export(Integer id) {
+        OutTaskDetailsBo res = new OutTaskDetailsBo();
+        NewExcelUtil<OutTaskDetailsBo> excel=new NewExcelUtil<>(OutTaskDetailsBo.class);
+        TaskDetailsBo byTid = getByTid(id);
+        BeanUtils.copyProperties(byTid,res);
+        StringBuffer sb = new StringBuffer();
+        byTid.getTaskList().forEach(e->{
+            if (res.getServiceyear()==null){
+                res.setServiceyear((String) e.get("serviceYear"));
+            }
+            sb.append(e.get("taskName")).append("; ");
+        });
+        res.setServiceProject(sb.toString());
+        return excel.exportTaskDetailsExcel(res,"项目进度表",uploadPath);
+    }
+
+    @Override
+    public boolean checkTid(TaskDetails taskDetails) {
+        TaskDetails res = taskDetailsMapper.selectByTid(taskDetails.getTid());
+        return res != null;
+    }
+
+    @Override
+    public TaskFeature addFeature(TaskFeature in) {
+        in.setCreateTime(new Date());
+        taskFeatureMapper.insert(in);
+        return in;
+    }
+
+    @Override
+    public TaskFeature updateFeature(TaskFeature in) {
+        taskFeatureMapper.update(in);
+        return taskFeatureMapper.selectById(in.getId());
+    }
 }