瀏覽代碼

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

anderx 1 年之前
父節點
當前提交
7496066254
共有 36 個文件被更改,包括 3304 次插入1481 次删除
  1. 6 6
      src/main/java/com/goafanti/business/service/impl/BusinessProjectServiceImpl.java
  2. 1 1
      src/main/java/com/goafanti/business/service/impl/RestrictProjectServiceImpl.java
  3. 1 1
      src/main/java/com/goafanti/common/dao/BusinessProjectMapper.java
  4. 73 9
      src/main/java/com/goafanti/common/dao/TChangeTaskMapper.java
  5. 0 1
      src/main/java/com/goafanti/common/dao/TOrderTaskMapper.java
  6. 2 0
      src/main/java/com/goafanti/common/dao/TaskFeatureLogMapper.java
  7. 2 0
      src/main/java/com/goafanti/common/dao/TaskFeatureMapper.java
  8. 153 138
      src/main/java/com/goafanti/common/mapper/BusinessProjectMapper.xml
  9. 804 476
      src/main/java/com/goafanti/common/mapper/TChangeTaskMapper.xml
  10. 436 345
      src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml
  11. 159 38
      src/main/java/com/goafanti/common/mapper/TaskDetailsLogMapper.xml
  12. 174 49
      src/main/java/com/goafanti/common/mapper/TaskDetailsMapper.xml
  13. 72 19
      src/main/java/com/goafanti/common/mapper/TaskFeatureLogMapper.xml
  14. 70 19
      src/main/java/com/goafanti/common/mapper/TaskFeatureMapper.xml
  15. 14 2
      src/main/java/com/goafanti/common/model/BusinessProject.java
  16. 144 57
      src/main/java/com/goafanti/common/model/TChangeTask.java
  17. 194 74
      src/main/java/com/goafanti/common/model/TOrderTask.java
  18. 162 43
      src/main/java/com/goafanti/common/model/TaskDetails.java
  19. 164 29
      src/main/java/com/goafanti/common/model/TaskDetailsLog.java
  20. 66 15
      src/main/java/com/goafanti/common/model/TaskFeature.java
  21. 67 15
      src/main/java/com/goafanti/common/model/TaskFeatureLog.java
  22. 9 9
      src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java
  23. 12 3
      src/main/java/com/goafanti/order/bo/TChangeTaskOut.java
  24. 8 0
      src/main/java/com/goafanti/order/bo/TOrderTaskBo.java
  25. 11 2
      src/main/java/com/goafanti/order/bo/TOrderTaskDetailBo.java
  26. 35 22
      src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java
  27. 2 2
      src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java
  28. 25 20
      src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java
  29. 25 0
      src/main/java/com/goafanti/techproject/bo/InputTaskFeature.java
  30. 53 0
      src/main/java/com/goafanti/techproject/bo/OutTaskDetailsLog.java
  31. 9 0
      src/main/java/com/goafanti/techproject/bo/TaskDetailsBo.java
  32. 78 6
      src/main/java/com/goafanti/techproject/controller/TaskDetailsController.java
  33. 17 6
      src/main/java/com/goafanti/techproject/service/TaskDetailsService.java
  34. 253 71
      src/main/java/com/goafanti/techproject/service/impl/TaskDetailsServiceImpl.java
  35. 2 2
      src/main/resources/props/config_local.properties
  36. 1 1
      src/main/resources/props/config_test.properties

+ 6 - 6
src/main/java/com/goafanti/business/service/impl/BusinessProjectServiceImpl.java

@@ -111,7 +111,7 @@ public class BusinessProjectServiceImpl extends BaseMybatisDao<BusinessProjectMa
 	}
 	@Override
 	public int deleteProject(String id) {
-		BusinessProject bp=businessProjectMapper.queryById(id);
+		BusinessProject bp=businessProjectMapper.selectById(id);
 		if (bp.getDeleteSign()==0) {
 			bp.setDeleteSign(1);
 		}else {
@@ -122,7 +122,7 @@ public class BusinessProjectServiceImpl extends BaseMybatisDao<BusinessProjectMa
 	}
 	@Override
 	public int updateStopProject(String id) {
-		BusinessProject bp=businessProjectMapper.queryById(id);
+		BusinessProject bp=businessProjectMapper.selectById(id);
 		if (Integer.valueOf(bp.getStatus())==0) {
 			bp.setStatus("1");
 		}else {
@@ -133,7 +133,7 @@ public class BusinessProjectServiceImpl extends BaseMybatisDao<BusinessProjectMa
 	}
 	@Override
 	public BusinessProjectBo orgProjects(String id) {
-		BusinessProject bp=businessProjectMapper.queryById(id);
+		BusinessProject bp=businessProjectMapper.selectById(id);
 		BusinessProjectBo bpo=new BusinessProjectBo();
 		BeanUtils.copyProperties(bp,bpo);
 		String cname=getAllCname(bpo.getCid());
@@ -208,7 +208,7 @@ public class BusinessProjectServiceImpl extends BaseMybatisDao<BusinessProjectMa
 
 	@Override
 	public int updateProject(BusinessProject s) {
-		BusinessProject bp=businessProjectMapper.queryById(s.getId());
+		BusinessProject bp=businessProjectMapper.selectById(s.getId());
 		BeanUtils.copyProperties(s, bp);
 		return businessProjectMapper.update(bp);
 	}
@@ -307,7 +307,7 @@ public class BusinessProjectServiceImpl extends BaseMybatisDao<BusinessProjectMa
 	}
 	@Override
 	public boolean judgeStatus(BusinessProjectModel ps) {
-		 BusinessProject bp=businessProjectMapper.queryById(ps.getPid());
+		 BusinessProject bp=businessProjectMapper.selectById(ps.getPid());
 		if (Integer.valueOf(bp.getStatus())==1) {
 			return true;
 		}else {
@@ -317,7 +317,7 @@ public class BusinessProjectServiceImpl extends BaseMybatisDao<BusinessProjectMa
 	}
 	@Override
 	public boolean judgeBeing(BusinessProject s) {
-		BusinessProject bp=businessProjectMapper.queryById(s.getId());
+		BusinessProject bp=businessProjectMapper.selectById(s.getId());
 		BusinessProject bp1=businessProjectMapper.selectByPrimaryBname(s.getBname());
 		if (null==bp||null==bp1||bp.getId().equals(bp1.getId())) {
 			return false;

+ 1 - 1
src/main/java/com/goafanti/business/service/impl/RestrictProjectServiceImpl.java

@@ -89,7 +89,7 @@ public class RestrictProjectServiceImpl extends BaseMybatisDao<RestrictProjectMa
         }
         addUserLog(in,0);
         User user = userMapper.queryById(in.getUid());
-        BusinessProject businessProject = businessProjectMapper.queryById(in.getPid());
+        BusinessProject businessProject = businessProjectMapper.selectById(in.getPid());
         String str =String.format("客户:%s,已被营销员%s领取了【限定项目:%s】",user.getNickname(),TokenManager.getAdminToken().getName(),businessProject.getBname());
         //如果客户是当事人的不提示消息
         if (user.getAid()!=null&&!user.getAid().equals(aid)){

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

@@ -25,7 +25,7 @@ public interface BusinessProjectMapper {
      * @param id 主键
      * @return 实例对象
      */
-    BusinessProject queryById(String id);
+    BusinessProject selectById(String id);
 
     
 

+ 73 - 9
src/main/java/com/goafanti/common/dao/TChangeTaskMapper.java

@@ -1,27 +1,87 @@
 package com.goafanti.common.dao;
 
 import com.goafanti.common.model.TChangeTask;
-import com.goafanti.common.model.TChangeTaskExample;
 import com.goafanti.order.bo.TChangeTaskOut;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.Pageable;
 
 import java.util.List;
-import org.apache.ibatis.annotations.Param;
 
+/**
+ * 变更任务表(TChangeTask)表数据库访问层
+ *
+ * @author makejava
+ * @since 2025-01-07 10:29:38
+ */
 public interface TChangeTaskMapper {
-    int deleteByPrimaryKey(Integer id);
 
-    int insert(TChangeTask record);
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    TChangeTask selectById(Integer id);
 
-    int insertSelective(TChangeTask record);
+    
 
-    TChangeTask selectByPrimaryKey(Integer id);
+    /**
+     * 查询指定行数据
+     *
+     * @param tChangeTask 查询条件
+     * @param pageable         分页对象
+     * @return 对象列表
+     */
+    List<TChangeTask> findTChangeTaskList(TChangeTask tChangeTask, @Param("pageable") Pageable pageable);
 
-    int updateByPrimaryKeySelective(TChangeTask record);
+    /**
+     * 统计总行数
+     *
+     * @param tChangeTask 查询条件
+     * @return 总行数
+     */
+    int findTChangeTaskCount(TChangeTask tChangeTask);
 
-    int updateByPrimaryKey(TChangeTask record);
+    /**
+     * 新增数据
+     *
+     * @param tChangeTask 实例对象
+     * @return 影响行数
+     */
+    int insert(TChangeTask tChangeTask);
 
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<TChangeTask> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<TChangeTask> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<TChangeTask> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<TChangeTask> entities);
 
-    void insertSelectiveList(@Param("list")List<TChangeTask> list);
+    /**
+     * 修改数据
+     *
+     * @param tChangeTask 实例对象
+     * @return 影响行数
+     */
+    int update(TChangeTask tChangeTask);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 影响行数
+     */
+    int deleteById(Integer id);
 
     List<TChangeTaskOut> selectByCid(@Param("id")Integer id, @Param("splitStatus")Integer splitStatus);
 
@@ -58,4 +118,8 @@ public interface TChangeTaskMapper {
     void updateChangeSuperServiceYear(TChangeTask tChangeTask);
 
 
+
+    void insertSelective(TChangeTask t);
 }
+
+

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

@@ -87,7 +87,6 @@ public interface TOrderTaskMapper {
      */
     int deleteById(Integer id);
 
-    int updateByPrimaryKeySelective(TOrderTask record);
 
     int insertSelective(TOrderTask record);
 

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

@@ -1,5 +1,6 @@
 package com.goafanti.common.dao;
 
+import com.goafanti.common.model.TaskFeature;
 import com.goafanti.common.model.TaskFeatureLog;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.data.domain.Pageable;
@@ -82,5 +83,6 @@ public interface TaskFeatureLogMapper {
      */
     int deleteById(Integer id);
 
+    List<TaskFeature> selectByTdlid(Integer tdlId);
 }
 

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

@@ -82,5 +82,7 @@ public interface TaskFeatureMapper {
      */
     int deleteById(Integer id);
 
+
+    List<TaskFeature> selectByTdId(Integer id);
 }
 

File diff suppressed because it is too large
+ 153 - 138
src/main/java/com/goafanti/common/mapper/BusinessProjectMapper.xml


File diff suppressed because it is too large
+ 804 - 476
src/main/java/com/goafanti/common/mapper/TChangeTaskMapper.xml


File diff suppressed because it is too large
+ 436 - 345
src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml


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


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


+ 72 - 19
src/main/java/com/goafanti/common/mapper/TaskFeatureLogMapper.xml

@@ -6,14 +6,18 @@
         <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="endTime" column="end_time" jdbcType="TIMESTAMP"/>
         <result property="depName" column="dep_name" jdbcType="VARCHAR"/>
         <result property="yearFeature" column="year_feature" jdbcType="VARCHAR"/>
+        <result property="inspectWay" column="inspect_way" jdbcType="INTEGER"/>
         <result property="type" column="type" jdbcType="INTEGER"/>
-        <result property="inspectionItems" column="inspection_items" jdbcType="VARCHAR"/>
+        <result property="typeOther" column="type_other" jdbcType="VARCHAR"/>
+        <result property="inspectionItems" column="inspection_items" jdbcType="INTEGER"/>
+        <result property="inspectionItemsOther" column="inspection_items_other" 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="inspectionConclusion" column="inspection_conclusion" jdbcType="INTEGER"/>
+        <result property="remindFollow" column="remind_follow" jdbcType="INTEGER"/>
         <result property="remarks" column="remarks" jdbcType="VARCHAR"/>
         <result property="aid" column="aid" jdbcType="VARCHAR"/>
         <result property="aname" column="aname" jdbcType="VARCHAR"/>
@@ -21,7 +25,7 @@
     </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        
+id, tdl_id, start_time, end_time, dep_name, year_feature, inspect_way, type, type_other, inspection_items, inspection_items_other, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, aid, aname, create_time        
     </sql>
 
     <!--查询单个-->
@@ -34,31 +38,35 @@ id, tdl_id, start_time, dep_name, year_feature, type, inspection_items, enterpri
 
     <!--新增所有列-->
     <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 into task_feature_log(tdl_id, start_time, end_time, dep_name, year_feature, inspect_way, type, type_other, inspection_items, inspection_items_other, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, aid, aname, create_time)
+        values (#{tdlId}, #{startTime}, #{endTime}, #{depName}, #{yearFeature}, #{inspectWay}, #{type}, #{typeOther}, #{inspectionItems}, #{inspectionItemsOther}, #{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)
+        insert into task_feature_log(tdl_id, start_time, end_time, dep_name, year_feature, inspect_way, type, type_other, inspection_items, inspection_items_other, 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})
+        (#{entity.tdlId}, #{entity.startTime}, #{entity.endTime}, #{entity.depName}, #{entity.yearFeature}, #{entity.inspectWay}, #{entity.type}, #{entity.typeOther}, #{entity.inspectionItems}, #{entity.inspectionItemsOther}, #{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)
+        insert into task_feature_log(tdl_id, start_time, end_time, dep_name, year_feature, inspect_way, type, type_other, inspection_items, inspection_items_other, 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})
+            (#{entity.tdlId}, #{entity.startTime}, #{entity.endTime}, #{entity.depName}, #{entity.yearFeature}, #{entity.inspectWay}, #{entity.type}, #{entity.typeOther}, #{entity.inspectionItems}, #{entity.inspectionItemsOther}, #{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),
+end_time = values(end_time),
 dep_name = values(dep_name),
 year_feature = values(year_feature),
+inspect_way = values(inspect_way),
 type = values(type),
+type_other = values(type_other),
 inspection_items = values(inspection_items),
+inspection_items_other = values(inspection_items_other),
 enterprise_problems = values(enterprise_problems),
 solution = values(solution),
 inspection_conclusion = values(inspection_conclusion),
@@ -79,28 +87,40 @@ create_time = values(create_time)
             <if test="startTime != null">
                 start_time = #{startTime},
             </if>
+            <if test="endTime != null">
+                end_time = #{endTime},
+            </if>
             <if test="depName != null and depName != ''">
                 dep_name = #{depName},
             </if>
             <if test="yearFeature != null and yearFeature != ''">
                 year_feature = #{yearFeature},
             </if>
+            <if test="inspectWay != null">
+                inspect_way = #{inspectWay},
+            </if>
             <if test="type != null">
                 type = #{type},
             </if>
-            <if test="inspectionItems != null and inspectionItems != ''">
+            <if test="typeOther != null and typeOther != ''">
+                type_other = #{typeOther},
+            </if>
+            <if test="inspectionItems != null">
                 inspection_items = #{inspectionItems},
             </if>
+            <if test="inspectionItemsOther != null and inspectionItemsOther != ''">
+                inspection_items_other = #{inspectionItemsOther},
+            </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 != ''">
+            <if test="inspectionConclusion != null">
                 inspection_conclusion = #{inspectionConclusion},
             </if>
-            <if test="remindFollow != null and remindFollow != ''">
+            <if test="remindFollow != null">
                 remind_follow = #{remindFollow},
             </if>
             <if test="remarks != null and remarks != ''">
@@ -135,28 +155,40 @@ create_time = values(create_time)
             <if test="startTime != null">
                 and start_time = #{startTime}
             </if>
+            <if test="endTime != null">
+                and end_time = #{endTime}
+            </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="inspectWay != null">
+                and inspect_way = #{inspectWay}
+            </if>
             <if test="type != null">
                 and type = #{type}
             </if>
-            <if test="inspectionItems != null and inspectionItems != ''">
+            <if test="typeOther != null and typeOther != ''">
+                and type_other = #{typeOther}
+            </if>
+            <if test="inspectionItems != null">
                 and inspection_items = #{inspectionItems}
             </if>
+            <if test="inspectionItemsOther != null and inspectionItemsOther != ''">
+                and inspection_items_other = #{inspectionItemsOther}
+            </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 != ''">
+            <if test="inspectionConclusion != null">
                 and inspection_conclusion = #{inspectionConclusion}
             </if>
-            <if test="remindFollow != null and remindFollow != ''">
+            <if test="remindFollow != null">
                 and remind_follow = #{remindFollow}
             </if>
             <if test="remarks != null and remarks != ''">
@@ -191,28 +223,40 @@ create_time = values(create_time)
             <if test="startTime != null">
                 and start_time = #{startTime}
             </if>
+            <if test="endTime != null">
+                and end_time = #{endTime}
+            </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="inspectWay != null">
+                and inspect_way = #{inspectWay}
+            </if>
             <if test="type != null">
                 and type = #{type}
             </if>
-            <if test="inspectionItems != null and inspectionItems != ''">
+            <if test="typeOther != null and typeOther != ''">
+                and type_other = #{typeOther}
+            </if>
+            <if test="inspectionItems != null">
                 and inspection_items = #{inspectionItems}
             </if>
+            <if test="inspectionItemsOther != null and inspectionItemsOther != ''">
+                and inspection_items_other = #{inspectionItemsOther}
+            </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 != ''">
+            <if test="inspectionConclusion != null">
                 and inspection_conclusion = #{inspectionConclusion}
             </if>
-            <if test="remindFollow != null and remindFollow != ''">
+            <if test="remindFollow != null">
                 and remind_follow = #{remindFollow}
             </if>
             <if test="remarks != null and remarks != ''">
@@ -230,10 +274,19 @@ create_time = values(create_time)
         </where>
     </select>
 
+
     <!--通过主键删除-->
     <delete id="deleteById">
         delete from task_feature_log where id = #{id}
     </delete>
 
+
+
+    <select id="selectByTdlid" resultMap="TaskFeatureLogMap">
+        select
+            <include refid="TaskFeatureLogAllSql"/>
+            from task_feature_log
+        where tdl_id = #{tdlId}
+    </select>
 </mapper>
 

+ 70 - 19
src/main/java/com/goafanti/common/mapper/TaskFeatureMapper.xml

@@ -6,20 +6,24 @@
         <result property="id" column="id" jdbcType="INTEGER"/>
         <result property="tdid" column="tdid" jdbcType="INTEGER"/>
         <result property="startTime" column="start_time" jdbcType="TIMESTAMP"/>
+        <result property="endTime" column="end_time" jdbcType="TIMESTAMP"/>
         <result property="depName" column="dep_name" jdbcType="VARCHAR"/>
         <result property="yearFeature" column="year_feature" jdbcType="VARCHAR"/>
+        <result property="inspectWay" column="inspect_way" jdbcType="INTEGER"/>
         <result property="type" column="type" jdbcType="INTEGER"/>
-        <result property="inspectionItems" column="inspection_items" jdbcType="VARCHAR"/>
+        <result property="typeOther" column="type_other" jdbcType="VARCHAR"/>
+        <result property="inspectionItems" column="inspection_items" jdbcType="INTEGER"/>
+        <result property="inspectionItemsOther" column="inspection_items_other" 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="inspectionConclusion" column="inspection_conclusion" jdbcType="INTEGER"/>
+        <result property="remindFollow" column="remind_follow" jdbcType="INTEGER"/>
         <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        
+id, tdid, start_time, end_time, dep_name, year_feature, inspect_way, type, type_other, inspection_items, inspection_items_other, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, create_time        
     </sql>
 
     <!--查询单个-->
@@ -32,31 +36,35 @@ id, tdid, start_time, dep_name, year_feature, type, inspection_items, enterprise
 
     <!--新增所有列-->
     <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 into task_feature(tdid, start_time, end_time, dep_name, year_feature, inspect_way, type, type_other, inspection_items, inspection_items_other, enterprise_problems, solution, inspection_conclusion, remind_follow, remarks, create_time)
+        values (#{tdid}, #{startTime}, #{endTime}, #{depName}, #{yearFeature}, #{inspectWay}, #{type}, #{typeOther}, #{inspectionItems}, #{inspectionItemsOther}, #{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)
+        insert into task_feature(tdid, start_time, end_time, dep_name, year_feature, inspect_way, type, type_other, inspection_items, inspection_items_other, 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})
+        (#{entity.tdid}, #{entity.startTime}, #{entity.endTime}, #{entity.depName}, #{entity.yearFeature}, #{entity.inspectWay}, #{entity.type}, #{entity.typeOther}, #{entity.inspectionItems}, #{entity.inspectionItemsOther}, #{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)
+        insert into task_feature(tdid, start_time, end_time, dep_name, year_feature, inspect_way, type, type_other, inspection_items, inspection_items_other, 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})
+            (#{entity.tdid}, #{entity.startTime}, #{entity.endTime}, #{entity.depName}, #{entity.yearFeature}, #{entity.inspectWay}, #{entity.type}, #{entity.typeOther}, #{entity.inspectionItems}, #{entity.inspectionItemsOther}, #{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),
+end_time = values(end_time),
 dep_name = values(dep_name),
 year_feature = values(year_feature),
+inspect_way = values(inspect_way),
 type = values(type),
+type_other = values(type_other),
 inspection_items = values(inspection_items),
+inspection_items_other = values(inspection_items_other),
 enterprise_problems = values(enterprise_problems),
 solution = values(solution),
 inspection_conclusion = values(inspection_conclusion),
@@ -75,28 +83,40 @@ create_time = values(create_time)
             <if test="startTime != null">
                 start_time = #{startTime},
             </if>
+            <if test="endTime != null">
+                end_time = #{endTime},
+            </if>
             <if test="depName != null and depName != ''">
                 dep_name = #{depName},
             </if>
             <if test="yearFeature != null and yearFeature != ''">
                 year_feature = #{yearFeature},
             </if>
+            <if test="inspectWay != null">
+                inspect_way = #{inspectWay},
+            </if>
             <if test="type != null">
                 type = #{type},
             </if>
-            <if test="inspectionItems != null and inspectionItems != ''">
+            <if test="typeOther != null and typeOther != ''">
+                type_other = #{typeOther},
+            </if>
+            <if test="inspectionItems != null">
                 inspection_items = #{inspectionItems},
             </if>
+            <if test="inspectionItemsOther != null and inspectionItemsOther != ''">
+                inspection_items_other = #{inspectionItemsOther},
+            </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 != ''">
+            <if test="inspectionConclusion != null">
                 inspection_conclusion = #{inspectionConclusion},
             </if>
-            <if test="remindFollow != null and remindFollow != ''">
+            <if test="remindFollow != null">
                 remind_follow = #{remindFollow},
             </if>
             <if test="remarks != null and remarks != ''">
@@ -125,28 +145,40 @@ create_time = values(create_time)
             <if test="startTime != null">
                 and start_time = #{startTime}
             </if>
+            <if test="endTime != null">
+                and end_time = #{endTime}
+            </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="inspectWay != null">
+                and inspect_way = #{inspectWay}
+            </if>
             <if test="type != null">
                 and type = #{type}
             </if>
-            <if test="inspectionItems != null and inspectionItems != ''">
+            <if test="typeOther != null and typeOther != ''">
+                and type_other = #{typeOther}
+            </if>
+            <if test="inspectionItems != null">
                 and inspection_items = #{inspectionItems}
             </if>
+            <if test="inspectionItemsOther != null and inspectionItemsOther != ''">
+                and inspection_items_other = #{inspectionItemsOther}
+            </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 != ''">
+            <if test="inspectionConclusion != null">
                 and inspection_conclusion = #{inspectionConclusion}
             </if>
-            <if test="remindFollow != null and remindFollow != ''">
+            <if test="remindFollow != null">
                 and remind_follow = #{remindFollow}
             </if>
             <if test="remarks != null and remarks != ''">
@@ -175,28 +207,40 @@ create_time = values(create_time)
             <if test="startTime != null">
                 and start_time = #{startTime}
             </if>
+            <if test="endTime != null">
+                and end_time = #{endTime}
+            </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="inspectWay != null">
+                and inspect_way = #{inspectWay}
+            </if>
             <if test="type != null">
                 and type = #{type}
             </if>
-            <if test="inspectionItems != null and inspectionItems != ''">
+            <if test="typeOther != null and typeOther != ''">
+                and type_other = #{typeOther}
+            </if>
+            <if test="inspectionItems != null">
                 and inspection_items = #{inspectionItems}
             </if>
+            <if test="inspectionItemsOther != null and inspectionItemsOther != ''">
+                and inspection_items_other = #{inspectionItemsOther}
+            </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 != ''">
+            <if test="inspectionConclusion != null">
                 and inspection_conclusion = #{inspectionConclusion}
             </if>
-            <if test="remindFollow != null and remindFollow != ''">
+            <if test="remindFollow != null">
                 and remind_follow = #{remindFollow}
             </if>
             <if test="remarks != null and remarks != ''">
@@ -213,5 +257,12 @@ create_time = values(create_time)
         delete from task_feature where id = #{id}
     </delete>
 
+
+    <select id="selectByTdId" resultMap="TaskFeatureMap">
+        select
+        <include refid="TaskFeatureAllSql"/>
+        from task_feature
+        where tdid = #{id}
+    </select>
 </mapper>
 

+ 14 - 2
src/main/java/com/goafanti/common/model/BusinessProject.java

@@ -9,10 +9,10 @@ import java.util.Date;
  * (BusinessProject)实体类
  *
  * @author makejava
- * @since 2024-09-19 14:54:12
+ * @since 2025-01-03 10:53:15
  */
 public class BusinessProject implements Serializable {
-    private static final long serialVersionUID = -25621623846487956L;
+    private static final long serialVersionUID = -22679541116946568L;
 /**
      * 业务项目ID
      */
@@ -133,6 +133,10 @@ public class BusinessProject implements Serializable {
      * 完成状态 0否 1国家级,2=省级,3=市级
      */
     private Integer lvlType;
+/**
+     * 项目类型 0=其他,1=高新会员,2=简单会员,3=单边会员
+     */
+    private Integer projectType;
 
 
     public String getId() {
@@ -375,5 +379,13 @@ public class BusinessProject implements Serializable {
         this.lvlType = lvlType;
     }
 
+    public Integer getProjectType() {
+        return projectType;
+    }
+
+    public void setProjectType(Integer projectType) {
+        this.projectType = projectType;
+    }
+
 }
 

+ 144 - 57
src/main/java/com/goafanti/common/model/TChangeTask.java

@@ -4,147 +4,160 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
+
 /**
- * t_change_task
- * @author 
+ * 变更任务表(TChangeTask)实体类
+ *
+ * @author makejava
+ * @since 2025-01-07 10:29:38
  */
 public class TChangeTask implements Serializable {
-    /**
+    private static final long serialVersionUID = -85255234572445566L;
+/**
      * 任务编号
      */
     private Integer id;
-
-    /**
+/**
      * 订单任务编号
      */
     private Integer tid;
-
-    /**
+/**
      * 变更编号
      */
     private Integer cid;
-
-    /**
+/**
      * 订单编号
      */
     private String orderNo;
-
-    /**
+/**
      * 是否为主要任务 0-否,1-是
      */
     private Integer main;
-
-    /**
+/**
      * 商品id
      */
     private String commodityId;
-
-    /**
+/**
      * 商品名称(冗余)
      */
     private String commodityName;
-
-    /**
+/**
      * 商品数量
      */
     private Integer commodityQuantity;
-
-    /**
+/**
      * 合同商品价格
      */
     private BigDecimal commodityPrice;
-
-    /**
+/**
      * 任务说明
      */
     private String taskComment;
-
-    /**
+/**
      * 状态 0正常 1新增 2修改 3删除 
      */
     private Integer type;
-
-    /**
+/**
      * 创建时间
      */
     private Date createTime;
-
-    /**
+/**
      * 0否 1父拆分 2子拆分
      */
     private Integer splitStatus;
-
-    /**
+/**
      * 拆分父id
      */
     private Integer splitSuper;
-
-    /**
+/**
      * 负责人
      */
     private String receiverName;
-
-    /**
+/**
      * 官费 0否 1有
      */
     private Integer officialCost;
-
-    /**
+/**
      * 费减 0否 1有 
      */
     private Integer costReduction;
-
-    /**
+/**
      * 服务年限
      */
     private String serviceLife;
-
-    /**
+/**
      * 本次年份
      */
     private String serviceYear;
-
-    /**
+/**
      * 服务年限计数
      */
     private Integer yearSum;
-
-    /**
+/**
      * 合同期限
      */
     private String contractTerm;
-
-    /**
+/**
      * 申报批次
      */
     private Integer declarationBatch;
-
-    /**
+/**
      * 专利分类 0申请 1变更 2复审 3优先权 4恢复请求权 5无效宣告请求费 6强制许可请求费 7 强制许可使用裁决请求费 8登录、印刷费、印花税
      */
     private Integer patentType;
-
-    /**
+/**
      * 变更拆分父id
      */
     private Integer changeSplitSuper;
-
-    /**
+/**
      * 上年度年份
      */
     private String lastYear;
-
-    /**
+/**
      * 上年度总资本
      */
     private BigDecimal lastYearCapital;
-
-    /**
+/**
      * 上年度总收入
      */
     private BigDecimal lastYearIncome;
+/**
+     * 高新会员 0=否,1=是
+     */
+    private Integer htMember;
+/**
+     * 加急扣除 0=否,1=是
+     */
+    private Integer additionalDeduction;
+/**
+     * 研发奖补 0=否,1=是
+     */
+    private Integer rdAwardsubsidy;
+/**
+     * 仅做报表,不出备查资料 0=否,1=是
+     */
+    private Integer justForms;
+/**
+     * 科技项目等级 0=简易项目,1=市区级,2=省级,3=国家级
+     */
+    private Integer technologyProjectType;
+/**
+     * 申请类型 0=普通申请,1=风险代理
+     */
+    private Integer ordinaryRisk;
+/**
+     * 天数 0=普通,1=加急
+     */
+    private Integer days;
+/**
+     * 方案 0=无,1=有
+     */
+    private Integer scheme;
+/**
+     * 仅提供单边会员服务 0=否,1=是
+     */
+    private Integer unilateralService;
 
-    private static final long serialVersionUID = 1L;
 
     public Integer getId() {
         return id;
@@ -361,4 +374,78 @@ public class TChangeTask implements Serializable {
     public void setLastYearIncome(BigDecimal lastYearIncome) {
         this.lastYearIncome = lastYearIncome;
     }
-}
+
+    public Integer getHtMember() {
+        return htMember;
+    }
+
+    public void setHtMember(Integer htMember) {
+        this.htMember = htMember;
+    }
+
+    public Integer getAdditionalDeduction() {
+        return additionalDeduction;
+    }
+
+    public void setAdditionalDeduction(Integer additionalDeduction) {
+        this.additionalDeduction = additionalDeduction;
+    }
+
+    public Integer getRdAwardsubsidy() {
+        return rdAwardsubsidy;
+    }
+
+    public void setRdAwardsubsidy(Integer rdAwardsubsidy) {
+        this.rdAwardsubsidy = rdAwardsubsidy;
+    }
+
+    public Integer getJustForms() {
+        return justForms;
+    }
+
+    public void setJustForms(Integer justForms) {
+        this.justForms = justForms;
+    }
+
+    public Integer getTechnologyProjectType() {
+        return technologyProjectType;
+    }
+
+    public void setTechnologyProjectType(Integer technologyProjectType) {
+        this.technologyProjectType = technologyProjectType;
+    }
+
+    public Integer getOrdinaryRisk() {
+        return ordinaryRisk;
+    }
+
+    public void setOrdinaryRisk(Integer ordinaryRisk) {
+        this.ordinaryRisk = ordinaryRisk;
+    }
+
+    public Integer getDays() {
+        return days;
+    }
+
+    public void setDays(Integer days) {
+        this.days = days;
+    }
+
+    public Integer getScheme() {
+        return scheme;
+    }
+
+    public void setScheme(Integer scheme) {
+        this.scheme = scheme;
+    }
+
+    public Integer getUnilateralService() {
+        return unilateralService;
+    }
+
+    public void setUnilateralService(Integer unilateralService) {
+        this.unilateralService = unilateralService;
+    }
+
+}
+

File diff suppressed because it is too large
+ 194 - 74
src/main/java/com/goafanti/common/model/TOrderTask.java


+ 162 - 43
src/main/java/com/goafanti/common/model/TaskDetails.java

@@ -11,21 +11,21 @@ import java.util.Date;
  * 项目申报详情(TaskDetails)实体类
  *
  * @author makejava
- * @since 2025-01-02 10:56:06
+ * @since 2025-01-09 09:58:37
  */
 public class TaskDetails implements Serializable {
-    private static final long serialVersionUID = -39418349733711770L;
+    private static final long serialVersionUID = -30309793401305115L;
 
     private Integer id;
 /**
-     * 用户ID
-     */
-    private String uid;
-/**
      * 项目编号
      */
     private Integer tid;
 /**
+     * 用户ID
+     */
+    private String uid;
+/**
      * 业务负责人
      */
     private String taskName;
@@ -100,7 +100,7 @@ public class TaskDetails implements Serializable {
 /**
      * 数据周期 0=第一季度,1=上半年,2=前三季度,3=全年
      */
-    private String dataCycle;
+    private Integer dataCycle;
 /**
      * 实际销售额
      */
@@ -110,6 +110,18 @@ public class TaskDetails implements Serializable {
      */
     private Integer actualRdNumber;
 /**
+     * 实际委外数
+     */
+    private Integer actualOutsourcingNumber;
+/**
+     * 实际合作项目数
+     */
+    private Integer actualCooperateNumber;
+/**
+     * 实际技术合同登记数
+     */
+    private Integer actualRegistrationNumber;
+/**
      * 实际归集研发费用
      */
     private BigDecimal actualRdAmount;
@@ -122,6 +134,10 @@ public class TaskDetails implements Serializable {
      */
     private Double threeYearsActualRdRate;
 /**
+     * 研发预算完成进度
+     */
+    private Double rdCompletionProgress;
+/**
      * 火炬统计 0=其他,1=待完成,2=已完成,3=合同无此项
      */
     private Integer torchStatus;
@@ -258,13 +274,41 @@ public class TaskDetails implements Serializable {
      */
     private String adPrepareOctoberOther;
 /**
-     * 知识产权申报数
+     * 知识产权发明专利申报数
+     */
+    private Integer ipInventionPatentDeclare;
+/**
+     * 当年知识产权发明专利授权数
+     */
+    private Integer ipInventionPatentAuthorize;
+/**
+     * 累计知识产权发明专利授权数
+     */
+    private Integer ipInventionPatentAuthorizeCount;
+/**
+     * 知识产权实用新型申报数
+     */
+    private Integer ipUtilityModelDeclare;
+/**
+     * 当年知识产权实用新型授权数
+     */
+    private Integer ipUtilityModelAuthorize;
+/**
+     * 累计知识产权实用新型授权数
+     */
+    private Integer ipUtilityModelAuthorizeCount;
+/**
+     * 知识产权软著申报数
      */
-    private Integer ipDeclare;
+    private Integer ipSoftwareWorksDeclare;
 /**
-     * 知识产权授权数
+     * 当年知识产权软著授权数
      */
-    private Integer ipAuthorize;
+    private Integer ipSoftwareWorksAuthorize;
+/**
+     * 累计知识产权软著授权数
+     */
+    private Integer ipSoftwareWorksAuthorizeCount;
 /**
      * 知识产权高新数
      */
@@ -306,10 +350,6 @@ public class TaskDetails implements Serializable {
      */
     private String trainingOther;
 /**
-     * 特色工作-其他
-     */
-    private String featuredWorkOther;
-/**
      * 高新认定评价估分
      */
     private Integer htScore;
@@ -379,14 +419,6 @@ public class TaskDetails implements Serializable {
         this.id = id;
     }
 
-    public String getUid() {
-        return uid;
-    }
-
-    public void setUid(String uid) {
-        this.uid = uid;
-    }
-
     public Integer getTid() {
         return tid;
     }
@@ -395,6 +427,14 @@ public class TaskDetails implements Serializable {
         this.tid = tid;
     }
 
+    public String getUid() {
+        return uid;
+    }
+
+    public void setUid(String uid) {
+        this.uid = uid;
+    }
+
     public String getTaskName() {
         return taskName;
     }
@@ -539,11 +579,11 @@ public class TaskDetails implements Serializable {
         this.rdSalesAmount = rdSalesAmount;
     }
 
-    public String getDataCycle() {
+    public Integer getDataCycle() {
         return dataCycle;
     }
 
-    public void setDataCycle(String dataCycle) {
+    public void setDataCycle(Integer dataCycle) {
         this.dataCycle = dataCycle;
     }
 
@@ -563,6 +603,30 @@ public class TaskDetails implements Serializable {
         this.actualRdNumber = actualRdNumber;
     }
 
+    public Integer getActualOutsourcingNumber() {
+        return actualOutsourcingNumber;
+    }
+
+    public void setActualOutsourcingNumber(Integer actualOutsourcingNumber) {
+        this.actualOutsourcingNumber = actualOutsourcingNumber;
+    }
+
+    public Integer getActualCooperateNumber() {
+        return actualCooperateNumber;
+    }
+
+    public void setActualCooperateNumber(Integer actualCooperateNumber) {
+        this.actualCooperateNumber = actualCooperateNumber;
+    }
+
+    public Integer getActualRegistrationNumber() {
+        return actualRegistrationNumber;
+    }
+
+    public void setActualRegistrationNumber(Integer actualRegistrationNumber) {
+        this.actualRegistrationNumber = actualRegistrationNumber;
+    }
+
     public BigDecimal getActualRdAmount() {
         return actualRdAmount;
     }
@@ -587,6 +651,14 @@ public class TaskDetails implements Serializable {
         this.threeYearsActualRdRate = threeYearsActualRdRate;
     }
 
+    public Double getRdCompletionProgress() {
+        return rdCompletionProgress;
+    }
+
+    public void setRdCompletionProgress(Double rdCompletionProgress) {
+        this.rdCompletionProgress = rdCompletionProgress;
+    }
+
     public Integer getTorchStatus() {
         return torchStatus;
     }
@@ -859,20 +931,76 @@ public class TaskDetails implements Serializable {
         this.adPrepareOctoberOther = adPrepareOctoberOther;
     }
 
-    public Integer getIpDeclare() {
-        return ipDeclare;
+    public Integer getIpInventionPatentDeclare() {
+        return ipInventionPatentDeclare;
+    }
+
+    public void setIpInventionPatentDeclare(Integer ipInventionPatentDeclare) {
+        this.ipInventionPatentDeclare = ipInventionPatentDeclare;
+    }
+
+    public Integer getIpInventionPatentAuthorize() {
+        return ipInventionPatentAuthorize;
+    }
+
+    public void setIpInventionPatentAuthorize(Integer ipInventionPatentAuthorize) {
+        this.ipInventionPatentAuthorize = ipInventionPatentAuthorize;
+    }
+
+    public Integer getIpInventionPatentAuthorizeCount() {
+        return ipInventionPatentAuthorizeCount;
     }
 
-    public void setIpDeclare(Integer ipDeclare) {
-        this.ipDeclare = ipDeclare;
+    public void setIpInventionPatentAuthorizeCount(Integer ipInventionPatentAuthorizeCount) {
+        this.ipInventionPatentAuthorizeCount = ipInventionPatentAuthorizeCount;
     }
 
-    public Integer getIpAuthorize() {
-        return ipAuthorize;
+    public Integer getIpUtilityModelDeclare() {
+        return ipUtilityModelDeclare;
     }
 
-    public void setIpAuthorize(Integer ipAuthorize) {
-        this.ipAuthorize = ipAuthorize;
+    public void setIpUtilityModelDeclare(Integer ipUtilityModelDeclare) {
+        this.ipUtilityModelDeclare = ipUtilityModelDeclare;
+    }
+
+    public Integer getIpUtilityModelAuthorize() {
+        return ipUtilityModelAuthorize;
+    }
+
+    public void setIpUtilityModelAuthorize(Integer ipUtilityModelAuthorize) {
+        this.ipUtilityModelAuthorize = ipUtilityModelAuthorize;
+    }
+
+    public Integer getIpUtilityModelAuthorizeCount() {
+        return ipUtilityModelAuthorizeCount;
+    }
+
+    public void setIpUtilityModelAuthorizeCount(Integer ipUtilityModelAuthorizeCount) {
+        this.ipUtilityModelAuthorizeCount = ipUtilityModelAuthorizeCount;
+    }
+
+    public Integer getIpSoftwareWorksDeclare() {
+        return ipSoftwareWorksDeclare;
+    }
+
+    public void setIpSoftwareWorksDeclare(Integer ipSoftwareWorksDeclare) {
+        this.ipSoftwareWorksDeclare = ipSoftwareWorksDeclare;
+    }
+
+    public Integer getIpSoftwareWorksAuthorize() {
+        return ipSoftwareWorksAuthorize;
+    }
+
+    public void setIpSoftwareWorksAuthorize(Integer ipSoftwareWorksAuthorize) {
+        this.ipSoftwareWorksAuthorize = ipSoftwareWorksAuthorize;
+    }
+
+    public Integer getIpSoftwareWorksAuthorizeCount() {
+        return ipSoftwareWorksAuthorizeCount;
+    }
+
+    public void setIpSoftwareWorksAuthorizeCount(Integer ipSoftwareWorksAuthorizeCount) {
+        this.ipSoftwareWorksAuthorizeCount = ipSoftwareWorksAuthorizeCount;
     }
 
     public Integer getIpHt() {
@@ -955,14 +1083,6 @@ public class TaskDetails implements Serializable {
         this.trainingOther = trainingOther;
     }
 
-    public String getFeaturedWorkOther() {
-        return featuredWorkOther;
-    }
-
-    public void setFeaturedWorkOther(String featuredWorkOther) {
-        this.featuredWorkOther = featuredWorkOther;
-    }
-
     public Integer getHtScore() {
         return htScore;
     }
@@ -1066,7 +1186,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;
     }
@@ -1074,7 +1194,6 @@ 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;

+ 164 - 29
src/main/java/com/goafanti/common/model/TaskDetailsLog.java

@@ -1,5 +1,7 @@
 package com.goafanti.common.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
@@ -9,10 +11,10 @@ import java.util.Date;
  * 项目申报详情日志(TaskDetailsLog)实体类
  *
  * @author makejava
- * @since 2025-01-02 10:56:14
+ * @since 2025-01-13 15:19:26
  */
 public class TaskDetailsLog implements Serializable {
-    private static final long serialVersionUID = -84490051788119343L;
+    private static final long serialVersionUID = -42460168996948180L;
 
     private Integer id;
 /**
@@ -98,7 +100,7 @@ public class TaskDetailsLog implements Serializable {
 /**
      * 数据周期 0=第一季度,1=上半年,2=前三季度,3=全年
      */
-    private String dataCycle;
+    private Integer dataCycle;
 /**
      * 实际销售额
      */
@@ -108,6 +110,18 @@ public class TaskDetailsLog implements Serializable {
      */
     private Integer actualRdNumber;
 /**
+     * 实际委外数
+     */
+    private Integer actualOutsourcingNumber;
+/**
+     * 实际合作项目数
+     */
+    private Integer actualCooperateNumber;
+/**
+     * 实际技术合同登记数
+     */
+    private Integer actualRegistrationNumber;
+/**
      * 实际归集研发费用
      */
     private BigDecimal actualRdAmount;
@@ -120,6 +134,10 @@ public class TaskDetailsLog implements Serializable {
      */
     private Double threeYearsActualRdRate;
 /**
+     * 研发预算完成进度
+     */
+    private Double rdCompletionProgress;
+/**
      * 火炬统计 0=其他,1=待完成,2=已完成,3=合同无此项
      */
     private Integer torchStatus;
@@ -256,13 +274,41 @@ public class TaskDetailsLog implements Serializable {
      */
     private String adPrepareOctoberOther;
 /**
-     * 知识产权申报数
+     * 知识产权发明专利申报数
+     */
+    private Integer ipInventionPatentDeclare;
+/**
+     * 当年知识产权发明专利授权数
+     */
+    private Integer ipInventionPatentAuthorize;
+/**
+     * 累计知识产权发明专利授权数
+     */
+    private Integer ipInventionPatentAuthorizeCount;
+/**
+     * 知识产权实用新型申报数
+     */
+    private Integer ipUtilityModelDeclare;
+/**
+     * 当年知识产权实用新型授权数
+     */
+    private Integer ipUtilityModelAuthorize;
+/**
+     * 累计知识产权实用新型授权数
+     */
+    private Integer ipUtilityModelAuthorizeCount;
+/**
+     * 知识产权软著申报数
+     */
+    private Integer ipSoftwareWorksDeclare;
+/**
+     * 当年知识产权软著授权数
      */
-    private Integer ipDeclare;
+    private Integer ipSoftwareWorksAuthorize;
 /**
-     * 知识产权授权数
+     * 累计知识产权软著授权数
      */
-    private Integer ipAuthorize;
+    private Integer ipSoftwareWorksAuthorizeCount;
 /**
      * 知识产权高新数
      */
@@ -304,10 +350,6 @@ public class TaskDetailsLog implements Serializable {
      */
     private String trainingOther;
 /**
-     * 特色工作-其他
-     */
-    private String featuredWorkOther;
-/**
      * 高新认定评价估分
      */
     private Integer htScore;
@@ -352,6 +394,10 @@ public class TaskDetailsLog implements Serializable {
      */
     private Integer reviewCountryNumber;
 /**
+     * 备注说明
+     */
+    private String remarks;
+/**
      * 修改人
      */
     private String aid;
@@ -533,11 +579,11 @@ public class TaskDetailsLog implements Serializable {
         this.rdSalesAmount = rdSalesAmount;
     }
 
-    public String getDataCycle() {
+    public Integer getDataCycle() {
         return dataCycle;
     }
 
-    public void setDataCycle(String dataCycle) {
+    public void setDataCycle(Integer dataCycle) {
         this.dataCycle = dataCycle;
     }
 
@@ -557,6 +603,30 @@ public class TaskDetailsLog implements Serializable {
         this.actualRdNumber = actualRdNumber;
     }
 
+    public Integer getActualOutsourcingNumber() {
+        return actualOutsourcingNumber;
+    }
+
+    public void setActualOutsourcingNumber(Integer actualOutsourcingNumber) {
+        this.actualOutsourcingNumber = actualOutsourcingNumber;
+    }
+
+    public Integer getActualCooperateNumber() {
+        return actualCooperateNumber;
+    }
+
+    public void setActualCooperateNumber(Integer actualCooperateNumber) {
+        this.actualCooperateNumber = actualCooperateNumber;
+    }
+
+    public Integer getActualRegistrationNumber() {
+        return actualRegistrationNumber;
+    }
+
+    public void setActualRegistrationNumber(Integer actualRegistrationNumber) {
+        this.actualRegistrationNumber = actualRegistrationNumber;
+    }
+
     public BigDecimal getActualRdAmount() {
         return actualRdAmount;
     }
@@ -581,6 +651,14 @@ public class TaskDetailsLog implements Serializable {
         this.threeYearsActualRdRate = threeYearsActualRdRate;
     }
 
+    public Double getRdCompletionProgress() {
+        return rdCompletionProgress;
+    }
+
+    public void setRdCompletionProgress(Double rdCompletionProgress) {
+        this.rdCompletionProgress = rdCompletionProgress;
+    }
+
     public Integer getTorchStatus() {
         return torchStatus;
     }
@@ -853,20 +931,76 @@ public class TaskDetailsLog implements Serializable {
         this.adPrepareOctoberOther = adPrepareOctoberOther;
     }
 
-    public Integer getIpDeclare() {
-        return ipDeclare;
+    public Integer getIpInventionPatentDeclare() {
+        return ipInventionPatentDeclare;
+    }
+
+    public void setIpInventionPatentDeclare(Integer ipInventionPatentDeclare) {
+        this.ipInventionPatentDeclare = ipInventionPatentDeclare;
+    }
+
+    public Integer getIpInventionPatentAuthorize() {
+        return ipInventionPatentAuthorize;
+    }
+
+    public void setIpInventionPatentAuthorize(Integer ipInventionPatentAuthorize) {
+        this.ipInventionPatentAuthorize = ipInventionPatentAuthorize;
+    }
+
+    public Integer getIpInventionPatentAuthorizeCount() {
+        return ipInventionPatentAuthorizeCount;
+    }
+
+    public void setIpInventionPatentAuthorizeCount(Integer ipInventionPatentAuthorizeCount) {
+        this.ipInventionPatentAuthorizeCount = ipInventionPatentAuthorizeCount;
+    }
+
+    public Integer getIpUtilityModelDeclare() {
+        return ipUtilityModelDeclare;
     }
 
-    public void setIpDeclare(Integer ipDeclare) {
-        this.ipDeclare = ipDeclare;
+    public void setIpUtilityModelDeclare(Integer ipUtilityModelDeclare) {
+        this.ipUtilityModelDeclare = ipUtilityModelDeclare;
     }
 
-    public Integer getIpAuthorize() {
-        return ipAuthorize;
+    public Integer getIpUtilityModelAuthorize() {
+        return ipUtilityModelAuthorize;
     }
 
-    public void setIpAuthorize(Integer ipAuthorize) {
-        this.ipAuthorize = ipAuthorize;
+    public void setIpUtilityModelAuthorize(Integer ipUtilityModelAuthorize) {
+        this.ipUtilityModelAuthorize = ipUtilityModelAuthorize;
+    }
+
+    public Integer getIpUtilityModelAuthorizeCount() {
+        return ipUtilityModelAuthorizeCount;
+    }
+
+    public void setIpUtilityModelAuthorizeCount(Integer ipUtilityModelAuthorizeCount) {
+        this.ipUtilityModelAuthorizeCount = ipUtilityModelAuthorizeCount;
+    }
+
+    public Integer getIpSoftwareWorksDeclare() {
+        return ipSoftwareWorksDeclare;
+    }
+
+    public void setIpSoftwareWorksDeclare(Integer ipSoftwareWorksDeclare) {
+        this.ipSoftwareWorksDeclare = ipSoftwareWorksDeclare;
+    }
+
+    public Integer getIpSoftwareWorksAuthorize() {
+        return ipSoftwareWorksAuthorize;
+    }
+
+    public void setIpSoftwareWorksAuthorize(Integer ipSoftwareWorksAuthorize) {
+        this.ipSoftwareWorksAuthorize = ipSoftwareWorksAuthorize;
+    }
+
+    public Integer getIpSoftwareWorksAuthorizeCount() {
+        return ipSoftwareWorksAuthorizeCount;
+    }
+
+    public void setIpSoftwareWorksAuthorizeCount(Integer ipSoftwareWorksAuthorizeCount) {
+        this.ipSoftwareWorksAuthorizeCount = ipSoftwareWorksAuthorizeCount;
     }
 
     public Integer getIpHt() {
@@ -949,14 +1083,6 @@ public class TaskDetailsLog implements Serializable {
         this.trainingOther = trainingOther;
     }
 
-    public String getFeaturedWorkOther() {
-        return featuredWorkOther;
-    }
-
-    public void setFeaturedWorkOther(String featuredWorkOther) {
-        this.featuredWorkOther = featuredWorkOther;
-    }
-
     public Integer getHtScore() {
         return htScore;
     }
@@ -1045,6 +1171,14 @@ public class TaskDetailsLog implements Serializable {
         this.reviewCountryNumber = reviewCountryNumber;
     }
 
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
     public String getAid() {
         return aid;
     }
@@ -1061,6 +1195,7 @@ public class TaskDetailsLog implements Serializable {
         this.aname = aname;
     }
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     public Date getCreateTime() {
         return createTime;
     }

+ 66 - 15
src/main/java/com/goafanti/common/model/TaskFeature.java

@@ -1,5 +1,7 @@
 package com.goafanti.common.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -8,10 +10,10 @@ import java.util.Date;
  * 项目申报详情日志(TaskFeature)实体类
  *
  * @author makejava
- * @since 2025-01-02 15:36:03
+ * @since 2025-01-10 09:44:23
  */
 public class TaskFeature implements Serializable {
-    private static final long serialVersionUID = 475737003772588398L;
+    private static final long serialVersionUID = -26561630127014294L;
 
     private Integer id;
 /**
@@ -23,6 +25,10 @@ public class TaskFeature implements Serializable {
      */
     private Date startTime;
 /**
+     * 检查结束时间
+     */
+    private Date endTime;
+/**
      * 检查部门
      */
     private String depName;
@@ -31,13 +37,25 @@ public class TaskFeature implements Serializable {
      */
     private String yearFeature;
 /**
-     * 检查类别
+     * 检查方式 0=线上,1=线下
+     */
+    private Integer inspectWay;
+/**
+     * 检查类别 0=其他 1=高新技术税收优惠政策检查,2=加计扣除税收优惠政策检查,3=税务常规检查,4=税务对研发费用检查,5=税务稽查
      */
     private Integer type;
 /**
-     * 检查事项
+     * 检查类别其他说明
+     */
+    private String typeOther;
+/**
+     * 检查事项 0=其他,1=高新产品收入不达标,2=人员人工费用问题检查,3=研发费用占比不达标,4=属于多个类别,5=其他事项检查
+     */
+    private Integer inspectionItems;
+/**
+     * 检查事项其他说明
      */
-    private String inspectionItems;
+    private String inspectionItemsOther;
 /**
      * 企业问题点
      */
@@ -47,13 +65,13 @@ public class TaskFeature implements Serializable {
      */
     private String solution;
 /**
-     * 检查后结论
+     * 检查后结论 0=其他,1=被取消高新认定资格,2=不通过,3=合规通过,4=通过,5=无结论,6=要求整改
      */
-    private String inspectionConclusion;
+    private Integer inspectionConclusion;
 /**
-     * 是否提醒企业专业人员跟进事宜
+     * 是否提醒企业专业人员跟进事宜 0=未提醒,1=已提醒
      */
-    private String remindFollow;
+    private Integer remindFollow;
 /**
      * 备注说明
      */
@@ -80,6 +98,7 @@ public class TaskFeature implements Serializable {
         this.tdid = tdid;
     }
 
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     public Date getStartTime() {
         return startTime;
     }
@@ -87,6 +106,14 @@ public class TaskFeature implements Serializable {
     public void setStartTime(Date startTime) {
         this.startTime = startTime;
     }
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
 
     public String getDepName() {
         return depName;
@@ -104,6 +131,14 @@ public class TaskFeature implements Serializable {
         this.yearFeature = yearFeature;
     }
 
+    public Integer getInspectWay() {
+        return inspectWay;
+    }
+
+    public void setInspectWay(Integer inspectWay) {
+        this.inspectWay = inspectWay;
+    }
+
     public Integer getType() {
         return type;
     }
@@ -112,14 +147,30 @@ public class TaskFeature implements Serializable {
         this.type = type;
     }
 
-    public String getInspectionItems() {
+    public String getTypeOther() {
+        return typeOther;
+    }
+
+    public void setTypeOther(String typeOther) {
+        this.typeOther = typeOther;
+    }
+
+    public Integer getInspectionItems() {
         return inspectionItems;
     }
 
-    public void setInspectionItems(String inspectionItems) {
+    public void setInspectionItems(Integer inspectionItems) {
         this.inspectionItems = inspectionItems;
     }
 
+    public String getInspectionItemsOther() {
+        return inspectionItemsOther;
+    }
+
+    public void setInspectionItemsOther(String inspectionItemsOther) {
+        this.inspectionItemsOther = inspectionItemsOther;
+    }
+
     public String getEnterpriseProblems() {
         return enterpriseProblems;
     }
@@ -136,19 +187,19 @@ public class TaskFeature implements Serializable {
         this.solution = solution;
     }
 
-    public String getInspectionConclusion() {
+    public Integer getInspectionConclusion() {
         return inspectionConclusion;
     }
 
-    public void setInspectionConclusion(String inspectionConclusion) {
+    public void setInspectionConclusion(Integer inspectionConclusion) {
         this.inspectionConclusion = inspectionConclusion;
     }
 
-    public String getRemindFollow() {
+    public Integer getRemindFollow() {
         return remindFollow;
     }
 
-    public void setRemindFollow(String remindFollow) {
+    public void setRemindFollow(Integer remindFollow) {
         this.remindFollow = remindFollow;
     }
 

+ 67 - 15
src/main/java/com/goafanti/common/model/TaskFeatureLog.java

@@ -1,5 +1,7 @@
 package com.goafanti.common.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -8,10 +10,10 @@ import java.util.Date;
  * 项目申报详情日志(TaskFeatureLog)实体类
  *
  * @author makejava
- * @since 2025-01-02 15:36:11
+ * @since 2025-01-10 09:44:29
  */
 public class TaskFeatureLog implements Serializable {
-    private static final long serialVersionUID = 547666453731683831L;
+    private static final long serialVersionUID = -72238591478184679L;
 
     private Integer id;
 /**
@@ -23,6 +25,10 @@ public class TaskFeatureLog implements Serializable {
      */
     private Date startTime;
 /**
+     * 检查结束时间
+     */
+    private Date endTime;
+/**
      * 检查部门
      */
     private String depName;
@@ -31,13 +37,25 @@ public class TaskFeatureLog implements Serializable {
      */
     private String yearFeature;
 /**
-     * 检查类别
+     * 检查方式 0=线上,1=线下
+     */
+    private Integer inspectWay;
+/**
+     * 检查类别 0=其他 1=高新技术税收优惠政策检查,2=加计扣除税收优惠政策检查,3=税务常规检查,4=税务对研发费用检查,5=税务稽查
      */
     private Integer type;
 /**
-     * 检查事项
+     * 检查类别其他说明
+     */
+    private String typeOther;
+/**
+     * 检查事项 0=其他,1=高新产品收入不达标,2=人员人工费用问题检查,3=研发费用占比不达标,4=属于多个类别,5=其他事项检查
+     */
+    private Integer inspectionItems;
+/**
+     * 检查事项其他说明
      */
-    private String inspectionItems;
+    private String inspectionItemsOther;
 /**
      * 企业问题点
      */
@@ -47,13 +65,13 @@ public class TaskFeatureLog implements Serializable {
      */
     private String solution;
 /**
-     * 检查后结论
+     * 检查后结论 0=其他,1=被取消高新认定资格,2=不通过,3=合规通过,4=通过,5=无结论,6=要求整改
      */
-    private String inspectionConclusion;
+    private Integer inspectionConclusion;
 /**
-     * 是否提醒企业专业人员跟进事宜
+     * 是否提醒企业专业人员跟进事宜 0=未提醒,1=已提醒
      */
-    private String remindFollow;
+    private Integer remindFollow;
 /**
      * 备注说明
      */
@@ -88,6 +106,7 @@ public class TaskFeatureLog implements Serializable {
         this.tdlId = tdlId;
     }
 
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     public Date getStartTime() {
         return startTime;
     }
@@ -95,6 +114,14 @@ public class TaskFeatureLog implements Serializable {
     public void setStartTime(Date startTime) {
         this.startTime = startTime;
     }
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
 
     public String getDepName() {
         return depName;
@@ -112,6 +139,14 @@ public class TaskFeatureLog implements Serializable {
         this.yearFeature = yearFeature;
     }
 
+    public Integer getInspectWay() {
+        return inspectWay;
+    }
+
+    public void setInspectWay(Integer inspectWay) {
+        this.inspectWay = inspectWay;
+    }
+
     public Integer getType() {
         return type;
     }
@@ -120,14 +155,30 @@ public class TaskFeatureLog implements Serializable {
         this.type = type;
     }
 
-    public String getInspectionItems() {
+    public String getTypeOther() {
+        return typeOther;
+    }
+
+    public void setTypeOther(String typeOther) {
+        this.typeOther = typeOther;
+    }
+
+    public Integer getInspectionItems() {
         return inspectionItems;
     }
 
-    public void setInspectionItems(String inspectionItems) {
+    public void setInspectionItems(Integer inspectionItems) {
         this.inspectionItems = inspectionItems;
     }
 
+    public String getInspectionItemsOther() {
+        return inspectionItemsOther;
+    }
+
+    public void setInspectionItemsOther(String inspectionItemsOther) {
+        this.inspectionItemsOther = inspectionItemsOther;
+    }
+
     public String getEnterpriseProblems() {
         return enterpriseProblems;
     }
@@ -144,19 +195,19 @@ public class TaskFeatureLog implements Serializable {
         this.solution = solution;
     }
 
-    public String getInspectionConclusion() {
+    public Integer getInspectionConclusion() {
         return inspectionConclusion;
     }
 
-    public void setInspectionConclusion(String inspectionConclusion) {
+    public void setInspectionConclusion(Integer inspectionConclusion) {
         this.inspectionConclusion = inspectionConclusion;
     }
 
-    public String getRemindFollow() {
+    public Integer getRemindFollow() {
         return remindFollow;
     }
 
-    public void setRemindFollow(String remindFollow) {
+    public void setRemindFollow(Integer remindFollow) {
         this.remindFollow = remindFollow;
     }
 
@@ -184,6 +235,7 @@ public class TaskFeatureLog implements Serializable {
         this.aname = aname;
     }
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     public Date getCreateTime() {
         return createTime;
     }

+ 9 - 9
src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java

@@ -822,7 +822,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 			userBusiness = new UserBusiness();
 			userFollowBusiness = new UserFollowBusiness();
 			ufbId = UUID.randomUUID().toString();
-			businessName = businessProjectMapper.queryById(ub.getBusinessProjectId()).getBname();
+			businessName = businessProjectMapper.selectById(ub.getBusinessProjectId()).getBname();
 			UserBusiness us = userBusinessMapper.selectByPrimaryKey(ub.getBusinessId());
 			if (StringUtils.isNotBlank(ub.getBusinessId())) {
 				// 更新业务表
@@ -885,7 +885,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 				userBusiness = new UserBusiness();
 				userFollowBusiness = new UserFollowBusiness();
 				ufbId = UUID.randomUUID().toString();
-				businessName = businessProjectMapper.queryById(ub.getBusinessProjectId()).getBname();
+				businessName = businessProjectMapper.selectById(ub.getBusinessProjectId()).getBname();
 				UserBusiness us = userBusinessMapper.selectByPrimaryKey(ub.getBusinessId());
 				if (StringUtils.isNotBlank(ub.getBusinessId())) {
 					// 更新业务表
@@ -1091,7 +1091,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 			UserFollowBusiness userFollowBusiness = null;
 			for (BusinessListBo ub : fbb.getUserBusinessList()) {
 				userFollowBusiness = new UserFollowBusiness();
-				businessName = businessProjectMapper.queryById(ub.getBusinessProjectId()).getBname();
+				businessName = businessProjectMapper.selectById(ub.getBusinessProjectId()).getBname();
 				if (StringUtils.isNotBlank(ub.getUfbId())) {
 					userFollowBusiness.setId(ub.getUfbId());
 					userFollowBusiness.setFollowSituation(ub.getFollowSituation());
@@ -1638,24 +1638,24 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 	@Override
 	public Integer queryUserMax() {
 		String aid=TokenManager.getAdminId();
-		int limitmax = 0;
-		int mymax = userMapper.checkUserMax(aid);
+		int limitMax = 0;
+		int myMax = userMapper.checkUserMax(aid);
 		List<String > roles=adminMapper.getAdminRoleListByAid(aid);
 		for (String role : roles) {
             switch (role) {
                 case AFTConstants.SALESMAN_DIRECTOR:
-                    if (limitmax < YXZJ_MAX) limitmax = YXZJ_MAX;
+                    if (limitMax < YXZJ_MAX) limitMax = YXZJ_MAX;
                     break;
                 case AFTConstants.SALESMAN_MANAGER:
-                    if (limitmax < YXJL_MAX) limitmax = YXJL_MAX;
+                    if (limitMax < YXJL_MAX) limitMax = YXJL_MAX;
                     break;
                 case AFTConstants.SALESMAN:
                 case AFTConstants.SALESMAN_ASSISTANT:
-                    if (limitmax < YXY_MAX) limitmax = YXY_MAX;
+                    if (limitMax < YXY_MAX) limitMax = YXY_MAX;
                     break;
             }
 		}
-		if (mymax==limitmax){
+		if (myMax==limitMax){
 			return 1;
 		}else {
 			return 0;

+ 12 - 3
src/main/java/com/goafanti/order/bo/TChangeTaskOut.java

@@ -1,18 +1,27 @@
 package com.goafanti.order.bo;
 
-import java.util.List;
-
-
 import com.goafanti.common.model.TChangeTask;
 
+import java.util.List;
+
 public class TChangeTaskOut extends TChangeTask{
 	private String cname;
 	private String receiverName;
 	private Integer cSort;
 	private Integer patentTransfer;
 	private Integer taskType;
+	private Integer projectType;
 	private List<?> list;
 
+
+	public Integer getProjectType() {
+		return projectType;
+	}
+
+	public void setProjectType(Integer projectType) {
+		this.projectType = projectType;
+	}
+
 	public Integer getTaskType() {
 		return taskType;
 	}

+ 8 - 0
src/main/java/com/goafanti/order/bo/TOrderTaskBo.java

@@ -53,12 +53,20 @@ public class TOrderTaskBo extends TOrderTask{
 	private Integer	stopType;
 	private Integer	projectStopStatus;
 	private Integer	change;
+	private Integer	projectType;
 
 	private String lastYear;
 	private BigDecimal lastYearCapital;
 	private BigDecimal lastYearIncome;
 
 
+	public Integer getProjectType() {
+		return projectType;
+	}
+
+	public void setProjectType(Integer projectType) {
+		this.projectType = projectType;
+	}
 
 	public Integer getChange() {
 		return change;

+ 11 - 2
src/main/java/com/goafanti/order/bo/TOrderTaskDetailBo.java

@@ -1,10 +1,10 @@
 package com.goafanti.order.bo;
 
-import java.math.BigDecimal;
-
 import com.goafanti.common.enums.OfficialPatentType;
 import com.goafanti.common.utils.StringUtils;
 
+import java.math.BigDecimal;
+
 public class TOrderTaskDetailBo {
 	private Integer id;
 	private String taskName;
@@ -42,6 +42,7 @@ public class TOrderTaskDetailBo {
 	private Integer declarationBatch;
 	private Integer ifCertificationFee;
 	private Integer deleteSign;
+	private Integer scoreStatus;
 	private String certificationCorporate;
 	private BigDecimal certificationFee;
 
@@ -128,6 +129,14 @@ public class TOrderTaskDetailBo {
 	private Integer satisfactionDegree;
 	private String satisfactionDegreeUrl;
 
+	public Integer getScoreStatus() {
+		return scoreStatus;
+	}
+
+	public void setScoreStatus(Integer scoreStatus) {
+		this.scoreStatus = scoreStatus;
+	}
+
 	public Integer getSatisfactionDegree() {
 		return satisfactionDegree;
 	}

+ 35 - 22
src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java

@@ -167,7 +167,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				if(tt.getLastYearIncome()!=null)	ck.setLastYearIncome(tt.getLastYearIncome());
 				listck.add(ck);
 			}
-			tChangeTaskMapper.insertSelectiveList(listck);
+			tChangeTaskMapper.insertBatch(listck);
 		}
 	//处理中间表数据
 		tOrderMidMapper.updateMid(t.getOrderNo());
@@ -1173,14 +1173,13 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 						}else{
 							tid=input.get(cd.getChangeSplitSuper());
 						}
-						if (tid==null)tid=tChangeTaskMapper.selectByPrimaryKey(cd.getChangeSplitSuper()).getTid();
+						if (tid==null)tid=tChangeTaskMapper.selectById(cd.getChangeSplitSuper()).getTid();
 						ot.setSplitSuper(tid);
 					}
 					ot.setSplitId(pushSplitId(ot.getSplitSuper()));
 					ot.setCommodityPrice(new BigDecimal(0));
 				}
-				if (cd.getDeclarationBatch()!=null)ot.setDeclarationBatch(cd.getDeclarationBatch());
-				if (cd.getPatentType()!=null)ot.setPatentType(cd.getPatentType());
+				ChangeTaskParam(cd,ot);
 				tOrderTaskMapper.insertSelective(ot);
 				InputAddTask inMid=new InputAddTask();
 				inMid.setId(ot.getId());
@@ -1196,16 +1195,14 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				}
 				orderNewService.addTTaskMember(ot.getId(),cd.getServiceLife(),cd.getServiceYear(),cd.getYearSum(),cd.getContractTerm());
 				cd.setTid(ot.getId());
-				tChangeTaskMapper.updateByPrimaryKeySelective(cd);
+				tChangeTaskMapper.update(cd);
 				tChangeDunMapper.updateByCTid(cd.getId(), ot.getId());
 			}else if (cd.getType()==2) {
 				ot.setId(cd.getTid());
 				ot.setCommodityPrice(cd.getCommodityPrice());
 				ot.setCommodityQuantity(cd.getCommodityQuantity());
 				ot.setSplitStatus(cd.getSplitStatus());
-				if (ot.getSplitSuper()!=null)ot.setSplitId(pushSplitId(ot.getSplitSuper()));
-				if (cd.getDeclarationBatch()!=null)ot.setDeclarationBatch(cd.getDeclarationBatch());
-				if (cd.getPatentType()!=null)ot.setPatentType(cd.getPatentType());
+				ChangeTaskParam(cd,ot);
 				tOrderTaskMapper.update(ot);
 				if (cd.getServiceLife()!=null){
 					updateTaskMember(ot.getId(),cd.getServiceLife(),cd.getServiceYear(),cd.getYearSum(),cd.getContractTerm());
@@ -1220,6 +1217,22 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		return map;
 	}
 
+	private void ChangeTaskParam(TChangeTaskOut cd, TOrderTask ot) {
+		if (cd.getDeclarationBatch()!=null)ot.setDeclarationBatch(cd.getDeclarationBatch());
+		if (cd.getPatentType()!=null)ot.setPatentType(cd.getPatentType());
+		if (cd.getOfficialCost()!=null) ot.setOfficialCost(cd.getOfficialCost());
+		if (cd.getCostReduction()!=null) ot.setCostReduction(cd.getCostReduction());
+		if (cd.getHtMember() != null) ot.setHtMember(cd.getHtMember());
+		if (cd.getAdditionalDeduction()!=null) ot.setAdditionalDeduction(cd.getAdditionalDeduction());
+		if (cd.getRdAwardsubsidy()!=null) ot.setRdAwardsubsidy(cd.getRdAwardsubsidy());
+		if (cd.getJustForms()!=null) ot.setJustForms(cd.getJustForms());
+		if (cd.getTechnologyProjectType()!=null) ot.setTechnologyProjectType(cd.getTechnologyProjectType());
+		if (cd.getOrdinaryRisk()!=null) ot.setOrdinaryRisk(cd.getOrdinaryRisk());
+		if (cd.getDays()!=null) ot.setDays(cd.getDays());
+		if (cd.getScheme()!=null) ot.setScheme(cd.getScheme());
+		if (cd.getUnilateralService()!=null) ot.setUnilateralService(cd.getUnilateralService());
+	}
+
 	private Integer pushSplitId(Integer splitSuper) {
 		//计算出拆分编号
 		Integer i = tOrderTaskMapper.getSplitCount(splitSuper);
@@ -1385,7 +1398,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 
 			@Override
 			public int deleteChangeTask(Integer id) {
-				return tChangeTaskMapper.deleteByPrimaryKey(id);
+				return tChangeTaskMapper.deleteById(id);
 			}
 
 			@Override
@@ -1420,8 +1433,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				//有tid是订单复制项目
 				if(t.getTid()!=null) {
 					//type 0正常 1新增 2修改 3删除
-					TChangeTask tt=tChangeTaskMapper.selectByPrimaryKey(t.getId());
-					BusinessProject bp = businessProjectMapper.queryById(tt.getCommodityId());
+					TChangeTask tt=tChangeTaskMapper.selectById(t.getId());
+					BusinessProject bp = businessProjectMapper.selectById(tt.getCommodityId());
 					Integer member=null;
 					if (t.getType()==3) {
 
@@ -1468,12 +1481,12 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 					//如果没有tid是新增项目则直接删除
 				}else {
 					if (t.getType()==3) {
-						tChangeTaskMapper.deleteByPrimaryKey(t.getId());
+						tChangeTaskMapper.deleteById(t.getId());
 						tChangeTaskMapper.deleteByChangeSplitSuper(t.getId());
 						tChangeDunMapper.deleteByCtid(t.getId());
 					}
 				}
-				return tChangeTaskMapper.updateByPrimaryKeySelective(t);
+				return tChangeTaskMapper.update(t);
 			}
 
 	private void updateChangeType(TChangeTask t) {
@@ -1610,11 +1623,11 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 	@Override
 	public Object addMemberSonProject(Integer id, String serviceYear, String taskComment) {
 		//先修改父项目
-		TChangeTask tChangeTask = tChangeTaskMapper.selectByPrimaryKey(id);
+		TChangeTask tChangeTask = tChangeTaskMapper.selectById(id);
 		Integer tid=tChangeTask.getTid();
 		tChangeTask.setSplitStatus(1);
 		if (tChangeTask.getType()!=1)tChangeTask.setType(2);
-		tChangeTaskMapper.updateByPrimaryKey(tChangeTask);
+		tChangeTaskMapper.update(tChangeTask);
 		//在判断是否有删除的年份没有就新增
 		tChangeTask.setId(null);
 		tChangeTask.setTid(null);
@@ -1645,14 +1658,14 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 
 	@Override
 	public int deleteMemberSonProject(Integer id) {
-		TChangeTask tChangeTask = tChangeTaskMapper.selectByPrimaryKey(id);
+		TChangeTask tChangeTask = tChangeTaskMapper.selectById(id);
 		if (tChangeTask.getType()==1){
-			tChangeTaskMapper.deleteByPrimaryKey(id);
+			tChangeTaskMapper.deleteById(id);
 		}else {
 			TChangeTask newtChangeTask = new TChangeTask();
 			newtChangeTask.setId(id);
 			newtChangeTask.setType(3);
-			tChangeTaskMapper.updateByPrimaryKeySelective(newtChangeTask);
+			tChangeTaskMapper.update(newtChangeTask);
 
 		}
 		List<TChangeTask> tChangeTasks = getChangeSonTasks(tChangeTask);
@@ -1661,7 +1674,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			TChangeTask changeTask = new TChangeTask();
 			changeTask.setId(tChangeTask.getSplitSuper());
 			changeTask.setSplitStatus(0);
-			tChangeTaskMapper.updateByPrimaryKeySelective(changeTask);
+			tChangeTaskMapper.update(changeTask);
 		}
 		updateSuperServiceYear(tChangeTask);
 		return 1;
@@ -1669,10 +1682,10 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 
 	@Override
 	public Object updateMemberSonProject(Integer id,String taskComment) {
-		TChangeTask tChangeTask = tChangeTaskMapper.selectByPrimaryKey(id);
+		TChangeTask tChangeTask = tChangeTaskMapper.selectById(id);
 		tChangeTask.setType(2);
 		tChangeTask.setTaskComment(taskComment);
-		tChangeTaskMapper.updateByPrimaryKeySelective(tChangeTask);
+		tChangeTaskMapper.update(tChangeTask);
 		updateSuperServiceYear(tChangeTask);
 		return tChangeTask;
 	}
@@ -1715,7 +1728,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			int i=0;
 		if (t.getMain()==1){
 			if (t.getId()!=null) {
-				TChangeTask tChangeTask = tChangeTaskMapper.selectByPrimaryKey(t.getId());
+				TChangeTask tChangeTask = tChangeTaskMapper.selectById(t.getId());
 				t.setCid(tChangeTask.getCid());
 			}
 			List<TChangeTaskOut> l = tChangeTaskMapper.selectByCid(t.getCid(), null);

+ 2 - 2
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -245,7 +245,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		addTTaskMember(t);
 		addTaskMid(t);
 		//如果是会员添加同性质不同项目
-		BusinessProject bp=businessProjectMapper.queryById(t.getCommodityId());
+		BusinessProject bp=businessProjectMapper.selectById(t.getCommodityId());
 		if (bp.getType()==ProjectType.HY.getCode()){
 			InputAddTask t2=new InputAddTask();
 			BeanUtils.copyProperties(t,t2);
@@ -328,7 +328,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		tm.setTid(t.getId());
 		//判断这个项目是不是高新复审
 		int highNewRetrial=0;
-		BusinessProject b=businessProjectMapper.queryById(t.getCommodityId());
+		BusinessProject b=businessProjectMapper.selectById(t.getCommodityId());
 		if (b.getType()==5){
 			int i=tOrderTaskMapper.getHighNewRetrial(t.getOrderNo());
 			if (i>0) {

+ 25 - 20
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -178,7 +178,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			//处理客户已派项目
 			projectDistributionPushUserMid(tn);
 			//处理限定项目状态
-			BusinessProject businessProject = businessProjectMapper.queryById(t.getCommodityId());
+			BusinessProject businessProject = businessProjectMapper.selectById(t.getCommodityId());
 			if (businessProject.getRestrictStatus()==1){
 				RestrictProject use = restrictProjectMapper.selectByParam(new InputRestrictProject(tn.getBuyerId(), null, t.getCommodityId()));
 				if (use!=null){
@@ -681,7 +681,9 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			projectSplitPush(b.getTid(), b.getProjectStatus(),task2);
 			pushTaskLog(b.getTid(), b.getProjectStatus());
 			updateMidServiceProject(task2.getOrderNo());
-			updateProjectCompleteDate(t);
+			if (task2.getScoreStatus()==0){
+				updateProjectCompleteDate(t);
+			}
 			asyncUtils.updateAdminByAid(task2.getTaskReceiver());
 		}
 		return 1;
@@ -810,7 +812,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 					if(ob.getDunType()==3&&projectStatus==NewProjectStatus.YWCXZ.getCode()) {
 						flag=true;
 					}else if (ob.getDunType()==2) {
-						BusinessProject bp=businessProjectMapper.queryById(task2.getCommodityId());
+						BusinessProject bp=businessProjectMapper.selectById(task2.getCommodityId());
 						if (bp.getType()==0&&projectStatus==NewProjectStatus.YWCXZ.getCode()) {
 							flag=true;
 						}
@@ -877,7 +879,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 					if(op.getDunType()==3&&projectStatus==NewProjectStatus.YWCXZ.getCode()) {
 						flag=true;
 					}else if (op.getDunType()==2) {
-						BusinessProject bp=businessProjectMapper.queryById(task2.getCommodityId());
+						BusinessProject bp=businessProjectMapper.selectById(task2.getCommodityId());
 						if (bp.getType()==0&&projectStatus==NewProjectStatus.YWCXZ.getCode()) {
 							flag=true;
 						}
@@ -2127,25 +2129,28 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 						t.setId(e.getId());
 						t.setCompleteStatus(1);
 						if (date !=null)e.setCompleteDate(DateUtils.parseDate(date));
+						//只有带评分和无才需要修改评分状态
 						if (sort==3||sort==6||sort==9){
-							// 创建一个SimpleDateFormat对象用于解析日期字符串
-							SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-							// 解析字符串"2024-01-01"为Date对象
-							Date targetDate = sdf.parse("2024-01-01");
-							// 使用compareTo方法比较两个日期
-							int result=0;
-							if (e.getTaskDistributionTime()!=null){
-								result = targetDate.compareTo(e.getTaskDistributionTime());
-								//2024-01-01之后派单返回-1
-								if (result <0){
-									t.setScoreStatus(1);
-								}else {
-									t.setScoreStatus(0);
+								// 创建一个SimpleDateFormat对象用于解析日期字符串
+								SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+								// 解析字符串"2024-01-01"为Date对象
+								Date targetDate = sdf.parse("2024-01-01");
+								// 使用compareTo方法比较两个日期
+								int result=0;
+								if (e.getTaskDistributionTime()!=null){
+									result = targetDate.compareTo(e.getTaskDistributionTime());
+									//2024-01-01之后派单返回-1
+
+									if (result <0){
+										t.setScoreStatus(1);
+									}else {
+										t.setScoreStatus(0);
+									}
 								}
-							}
-							tOrderTaskMapper.update(t);
-							taskScoreService.updateTOrderNewByTid(e.getId());
+								tOrderTaskMapper.update(t);
+								taskScoreService.updateTOrderNewByTid(e.getId());
 						}
+
 				}
 			} catch (JsonProcessingException | ParseException ex) {
 				throw new RuntimeException(ex);

+ 25 - 0
src/main/java/com/goafanti/techproject/bo/InputTaskFeature.java

@@ -0,0 +1,25 @@
+package com.goafanti.techproject.bo;
+
+import com.goafanti.common.model.TaskFeature;
+
+public class InputTaskFeature  extends TaskFeature {
+
+    private String startTimeStr;
+    private String endTimeStr;
+
+    public String getStartTimeStr() {
+        return startTimeStr;
+    }
+
+    public void setStartTimeStr(String startTimeStr) {
+        this.startTimeStr = startTimeStr;
+    }
+
+    public String getEndTimeStr() {
+        return endTimeStr;
+    }
+
+    public void setEndTimeStr(String endTimeStr) {
+        this.endTimeStr = endTimeStr;
+    }
+}

+ 53 - 0
src/main/java/com/goafanti/techproject/bo/OutTaskDetailsLog.java

@@ -0,0 +1,53 @@
+package com.goafanti.techproject.bo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+public class OutTaskDetailsLog {
+    private Integer id;
+    private Integer tdid;
+    private String aid;
+    private String aname;
+    private String 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 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;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+}

+ 9 - 0
src/main/java/com/goafanti/techproject/bo/TaskDetailsBo.java

@@ -1,6 +1,7 @@
 package com.goafanti.techproject.bo;
 
 import com.goafanti.common.model.TaskDetails;
+import com.goafanti.common.model.TaskFeature;
 
 import java.util.List;
 import java.util.Map;
@@ -22,8 +23,16 @@ public class TaskDetailsBo extends TaskDetails {
 
 
     List<Map<String,Object >> taskList;
+    List<TaskFeature> featureList;
 
 
+    public List<TaskFeature> getFeatureList() {
+        return featureList;
+    }
+
+    public void setFeatureList(List<TaskFeature> featureList) {
+        this.featureList = featureList;
+    }
 
     public String getUserName() {
         return userName;

+ 78 - 6
src/main/java/com/goafanti/techproject/controller/TaskDetailsController.java

@@ -4,7 +4,9 @@ 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.TaskDetailsLog;
 import com.goafanti.common.model.TaskFeature;
+import com.goafanti.techproject.bo.InputTaskFeature;
 import com.goafanti.techproject.service.TaskDetailsService;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -12,6 +14,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 项目申报详情(TaskDetails)表控制层
@@ -33,16 +37,17 @@ public class TaskDetailsController extends BaseController {
      * 新增项目进度数据
      *
      * @param taskDetails 实体
+     * @param type        0=初步新增,1=新增切同步日志
      * @return 新增结果
      */
     @PostMapping("/add")
-    public Result<TaskDetails> add(TaskDetails taskDetails, TaskFeature taskFeature) {
+    public Result<TaskDetails> add(TaskDetails taskDetails,Integer type) {
         Result<TaskDetails> res = new Result<>();
         if (taskDetailsService.checkTid(taskDetails)){
-            res.getError().add(buildError("项目进度与年份", ErrorConstants.PARAM_BEING_ERROR));
+            res.getError().add(buildError(ErrorConstants.PARAM_BEING_ERROR,"项目进度与年份"));
             return res;
         }
-        return res.data(this.taskDetailsService.insert(taskDetails,taskFeature));
+        return res.data(this.taskDetailsService.insert(taskDetails,type));
     }
 
 
@@ -65,7 +70,7 @@ public class TaskDetailsController extends BaseController {
      */
     @GetMapping("/getByTid")
     public Result<TaskDetails> getByTid(Integer id) {
-        return new Result<>().data(this.taskDetailsService.getByTid(id));
+        return new Result<>().data(this.taskDetailsService.pushByTid(id));
     }
 
 
@@ -76,11 +81,25 @@ public class TaskDetailsController extends BaseController {
      * @return 编辑结果
      */
     @PostMapping("/update")
-    public Result edit(TaskDetails taskDetails, TaskFeature taskFeature) {
-        return new Result<>().data(this.taskDetailsService.update(taskDetails,  taskFeature));
+    public Result edit(TaskDetails taskDetails,Integer type) {
+        return new Result<>().data(this.taskDetailsService.update(taskDetails,type));
     }
 
     /**
+     * 修改进度下载时间
+     *
+     * @return 编辑结果
+     */
+    @PostMapping("/updateDownload")
+    public Result updateDownload(Integer id) {
+        TaskDetails newTd=new TaskDetails();
+        newTd.setId(id);
+        newTd.setDownloadTime(new Date());
+        return new Result<>().data(this.taskDetailsService.updateDownload(newTd));
+    }
+
+
+    /**
      * 删除数据
      *
      * @param id 主键
@@ -112,5 +131,58 @@ public class TaskDetailsController extends BaseController {
         return this.taskDetailsService.export(id);
     }
 
+    /**
+     * 新增特色工作
+     * @param in
+     * @return
+     */
+    @PostMapping("/addTaskFeature")
+    public Result<TaskFeature> addTaskFeature(InputTaskFeature in ) {
+        Result<TaskFeature> res = new Result<>();
+        return res.data(this.taskDetailsService.addFeature(in));
+    }
+
+    /**
+     * 编辑项目特色工作
+     *
+     * @param in 实体
+     * @return 编辑结果
+     */
+    @PostMapping("/updateTaskFeature")
+    public Result<TaskFeature> updateTaskFeature(InputTaskFeature in) {
+        return new Result<>().data(this.taskDetailsService.updateFeature(in));
+    }
+
+    /**
+     * 删除项目特色工作
+     *
+     * @return 编辑结果
+     */
+    @PostMapping("/deleteTaskFeature")
+    public Result deleteTaskFeature(Integer id) {
+        return new Result<>().data(this.taskDetailsService.deleteTaskFeature(id));
+    }
+
+
+
+    /**
+     * 日志列表查询
+     *
+     */
+    @GetMapping("/logList")
+    public Result<List<TaskDetailsLog>> logList(Integer id,Integer pageNo, Integer pageSize) {
+        return new Result<>().data(this.taskDetailsService.logList(id, pageNo,pageSize));
+    }
+
+
+    /**
+     * 日志详情查询
+     *
+     */
+    @GetMapping("/logDetails")
+    public Result logDetails(Integer id) {
+        return new Result<>().data(this.taskDetailsService.logDetails(id));
+    }
+
 }
 

+ 17 - 6
src/main/java/com/goafanti/techproject/service/TaskDetailsService.java

@@ -3,6 +3,7 @@ package com.goafanti.techproject.service;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.model.TaskDetails;
 import com.goafanti.common.model.TaskFeature;
+import com.goafanti.techproject.bo.InputTaskFeature;
 import com.goafanti.techproject.bo.TaskDetailsBo;
 
 /**
@@ -28,16 +29,15 @@ public interface TaskDetailsService {
      * @param taskDetails 实例对象
      * @return 实例对象
      */
-    TaskDetails insert(TaskDetails taskDetails,TaskFeature taskFeature);
+    TaskDetails insert(TaskDetails taskDetails,Integer type);
 
     /**
      * 修改数据
      *
      * @param taskDetails 实例对象
-     * @param taskFeature
      * @return 实例对象
      */
-    TaskDetails update(TaskDetails taskDetails, TaskFeature taskFeature);
+    TaskDetails update(TaskDetails taskDetails,Integer type);
 
     /**
      * 通过主键删除数据
@@ -55,13 +55,24 @@ public interface TaskDetailsService {
      */
     Object list(TaskDetails in, Integer pageNo, Integer pageSize);
 
-    TaskDetailsBo getByTid(Integer id);
+    TaskDetailsBo pushByTid(Integer id);
 
     Result export(Integer id);
 
     boolean checkTid(TaskDetails taskDetails);
 
-    TaskFeature addFeature(TaskFeature in);
+    TaskFeature addFeature(InputTaskFeature in);
 
-    TaskFeature updateFeature(TaskFeature in);
+
+
+
+    TaskFeature updateFeature(InputTaskFeature in);
+
+    Object logList(Integer id, Integer pageNo, Integer pageSize);
+
+    Object logDetails(Integer id);
+
+    Object deleteTaskFeature(Integer id);
+
+    Object updateDownload(TaskDetails newTd);
 }

+ 253 - 71
src/main/java/com/goafanti/techproject/service/impl/TaskDetailsServiceImpl.java

@@ -3,11 +3,14 @@ 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.DateUtils;
+import com.goafanti.common.utils.StringUtils;
 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.InputTaskFeature;
 import com.goafanti.techproject.bo.OutTaskDetailsBo;
 import com.goafanti.techproject.bo.TaskDetailsBo;
 import com.goafanti.techproject.service.TaskDetailsService;
@@ -18,8 +21,8 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.time.LocalDate;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 项目申报详情(TaskDetails)表服务实现类
@@ -61,62 +64,131 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
     }
 
     @Override
-    public TaskDetailsBo getByTid(Integer id) {
+    public TaskDetailsBo pushByTid(Integer id) {
         TaskDetailsBo res = new TaskDetailsBo();
         TOrderNew tOrderNew = tOrderNewMapper.selectByTid(id);
+        TOrderTask tOrderTask = tOrderTaskMapper.queryById(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;
+        TaskDetails taskDetails=null;
+        //获取项目服务年份算出平均值
+        List<TOrderTaskBo> tOrderTaskBos = tOrderTaskMapper.selectOrderTaskAll(tOrderNew.getOrderNo(), null);
+        List<TOrderTaskBo> collect = tOrderTaskBos.stream().filter(e -> e.getSplitStatus() == 1).collect(Collectors.toList());
+        List<TOrderTaskBo> collect2 = tOrderTaskBos.stream().filter(e -> e.getSplitStatus() == 0||e.getSplitStatus() == 2).collect(Collectors.toList());
+        int yearSum=1;
+        for (TOrderTaskBo e : collect) {
+            if (e.getYearSum()>yearSum){
+                yearSum=e.getYearSum();
             }
         }
-        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());
+        if (tOrderTask.getProgressTid()==null){
+            //首先直接查找,找不到的情况下找订单
+            //如果是会员
+            TOrderTaskBo thisTask = null;
+            for (TOrderTaskBo e : collect2) {
+                if (e.getId().equals(id)){
+                    thisTask=e;
+                    break;
+                }
+            }
+            String serviceYear = getServiceYer(thisTask.getServiceYear());
+            Integer tid=null;
+            for (TOrderTaskBo e : collect2) {
+                //添加判定去掉赠字比对
+                String serviceYear2 =getServiceYer(e.getServiceYear());
+                if (serviceYear2.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){
+                        taskDetails=taskDetailsMapper.selectByTid(id);
+                    }
+                    if (taskDetails==null&&!e.getId().equals(id)&&e.getcSort()==6){
+                        taskDetails=taskDetailsMapper.selectByTid(e.getId());
+                        tid=e.getId();
+                    }
+                    list.add(map);
+                }
+            }
+            if (taskDetails !=null){
+                BeanUtils.copyProperties(taskDetails, res);
+            }
+            res.setUserName(mid.getBuyerName());
+            res.setOrderNo(tOrderNew.getOrderNo());
+            res.setContractNo(tOrderNew.getContractNo());
+            res.setMemberStatus(mid.getProjectType());
+            res.setTaskList(list);
+            BigDecimal totalAmount = tOrderNew.getTotalAmount().divide(new BigDecimal(yearSum), 2, RoundingMode.HALF_UP);
+            String lvl=getOrderLvl(totalAmount);
+            res.setMemberLvl(lvl);
+            res.setFeatureList(taskFeatureMapper.selectByTdId(id));
+            if (tid==null&&taskDetails!=null){
+                tid=taskDetails.getTid();
+                TOrderTask update =new TOrderTask();
+                update.setId(id);
+                update.setProgressTid(tid);
+                tOrderTaskMapper.update(update);
+            }
+        }else {
+            taskDetails=taskDetailsMapper.selectByTid(tOrderTask.getProgressTid());
+            //如果是会员
+            TOrderTaskBo thisTask = null;
+            for (TOrderTaskBo e : collect2) {
+                if (e.getId().equals(id)){
+                    thisTask=e;
+                    break;
                 }
-                list.add(map);
+            }
+            String serviceYear = getServiceYer(thisTask.getServiceYear());
+            Integer tid=null;
+            list=addOrderList(collect2,serviceYear);
+            if (taskDetails !=null){
+                BeanUtils.copyProperties(taskDetails, res);
+            }
+            res.setUserName(mid.getBuyerName());
+            res.setOrderNo(tOrderNew.getOrderNo());
+            res.setContractNo(tOrderNew.getContractNo());
+            res.setMemberStatus(mid.getProjectType());
+            res.setTaskList(list);
+            BigDecimal totalAmount = tOrderNew.getTotalAmount().divide(new BigDecimal(yearSum), 2, RoundingMode.HALF_UP);
+            String lvl=getOrderLvl(totalAmount);
+            res.setMemberLvl(lvl);
+            if (taskDetails!=null&&taskDetails.getTid()!=null){
+                res.setFeatureList(taskFeatureMapper.selectByTdId(taskDetails.getId()));
             }
         }
+        return res;
+    }
 
-        BigDecimal totalAmount = tOrderNew.getTotalAmount();
+    private String getServiceYer(String serviceYear) {
+        String serviceYear2=null;
+        if (StringUtils.isEmpty(serviceYear)){
+            serviceYear2 = "";
+        }else{
+            if (serviceYear.contains("(赠)")){
+                serviceYear2 = serviceYear.replace("(赠)", "");
+            }else {
+                serviceYear2 = serviceYear;
+            }
+        }
+        return serviceYear2;
+    }
+
+    private String getOrderLvl(BigDecimal totalAmount) {
         String lvl=null;
         if (totalAmount.compareTo(new BigDecimal("3"))<0){
-            lvl="A";
+            lvl ="A";
         }else if (totalAmount.compareTo(new BigDecimal("8"))<1){
-            lvl="AA";
+            lvl ="AA";
         }else if (totalAmount.compareTo(new BigDecimal("8"))>0){
-            lvl="AAA";
+            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;
+        return lvl;
     }
 
 
-
-
     /**
      * 通过ID查询单条数据
      *
@@ -136,21 +208,30 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
      * @return 实例对象
      */
     @Override
-    public TaskDetails insert(TaskDetails taskDetails,TaskFeature taskFeature) {
+    public TaskDetails insert(TaskDetails taskDetails,Integer type) {
+        if (type ==null)type=0;
+        Date date = new Date();
         TOrderNew tOrderNew =tOrderNewMapper.selectByTid(taskDetails.getTid());
         taskDetails.setUid(tOrderNew.getBuyerId());
-        taskDetails.setCreateTime(new Date());
-        taskDetails.setUpdateTime(new Date());
+        taskDetails.setCreateTime(date);
+        taskDetails.setUpdateTime(date);
         //数据计算
         countTaskDetails(taskDetails);
         this.taskDetailsMapper.insert(taskDetails);
-        taskFeature.setId(taskDetails.getId());
-        this.taskFeatureMapper.insert(taskFeature);
-        addTaskDetailsLog(taskDetails,taskFeature);
+        //新增日志数据
+        if (type==1){
+            addTaskDetailsLog(taskDetails);
+        }
         return taskDetails;
     }
 
-    private void addTaskDetailsLog(TaskDetails taskDetails,TaskFeature taskFeature) {
+    /**
+     *新增的时候特殊数据可以是单传输,修改的时候可以多传
+     *
+     * @param taskDetails 项目进度数据
+     *
+     */
+    private void addTaskDetailsLog(TaskDetails taskDetails) {
         Admin adminToken = TokenManager.getAdminToken();
         TaskDetailsLog log=new TaskDetailsLog();
         BeanUtils.copyProperties(taskDetails, log);
@@ -158,14 +239,20 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
         log.setId(null);
         log.setAid(adminToken.getId());
         log.setAname(adminToken.getName());
+        log.setCreateTime(new Date());
         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);
+        List<TaskFeature> list = taskFeatureMapper.selectByTdId(taskDetails.getId());
+        for (TaskFeature feature : list) {
+            TaskFeatureLog tfLog = new TaskFeatureLog();
+            BeanUtils.copyProperties(feature, tfLog);
+            tfLog.setTdlId(log.getId());
+            tfLog.setId(null);
+            tfLog.setAid(adminToken.getId());
+            tfLog.setAname(adminToken.getName());
+            tfLog.setCreateTime(new Date());
+            taskFeatureLogMapper.insert(tfLog);
+        }
+
     }
 
     private void countTaskDetails(TaskDetails taskDetails) {
@@ -177,25 +264,37 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
             BigDecimal res = tn.divide(wn,4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
             taskDetails.setWorkersRate(res.doubleValue());
         }
+        //计算研发预算完成进度    已归集研发费用总额÷年度研发预算总额X100%
+        if (taskDetails.getActualRdAmount()!=null &&taskDetails.getRdBudget()!=null){
+            BigDecimal multiply = taskDetails.getActualRdAmount().divide(taskDetails.getRdBudget(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+            taskDetails.setRdCompletionProgress(multiply.doubleValue());
+        }
         //计算年度研发占比
         //计算三年度的研发占比
-            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());
-            //计算三年度的研发占比
-            BigDecimal res2 = getBigDecimal(rdSalesAmount, rdBudget, taskDetails);
-            taskDetails.setThreeYearsRdBudgetRate(res2.doubleValue());
+            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 (taskDetails.getLastRdSalesAmount()!=null && taskDetails.getLastRdBudget()!=null&&
+                taskDetails.getBeforeLastRdSalesAmount()!=null && taskDetails.getBeforeLastRdBudget()!=null){
+                    BigDecimal res2 = getBigDecimal(rdSalesAmount, rdBudget, taskDetails);
+                    taskDetails.setThreeYearsRdBudgetRate(res2.doubleValue());
+                }
+            }
         //计算实际研发占比
         if(taskDetails.getActualRdNumber() !=null &&
                 taskDetails.getActualRdAmount() !=null){
-            BigDecimal actualRdNumber = BigDecimal.valueOf(taskDetails.getActualRdNumber());
+            BigDecimal actualSalesAmount = taskDetails.getActualSalesAmount();
             BigDecimal actualRdAmount = taskDetails.getActualRdAmount();
-            BigDecimal res3 = actualRdNumber.divide(actualRdAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
+            BigDecimal res3 = actualRdAmount.divide(actualSalesAmount, 4, RoundingMode.HALF_UP).multiply(new BigDecimal(100));
             taskDetails.setActualRdRate(res3.doubleValue());
-            BigDecimal res4 = getBigDecimal(actualRdAmount, actualRdNumber, taskDetails);
+            if (taskDetails.getLastRdSalesAmount()!=null && taskDetails.getLastRdBudget()!=null&&
+                    taskDetails.getBeforeLastRdSalesAmount()!=null && taskDetails.getBeforeLastRdBudget()!=null){
+                BigDecimal res4 = getBigDecimal(actualRdAmount, actualSalesAmount, taskDetails);
                 taskDetails.setThreeYearsActualRdRate(res4.doubleValue());
-
+            }
         }
         //计算立项资料占比
         if (taskDetails.getProjectApprovalWriteNumber()!=null){
@@ -217,16 +316,26 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
      * 修改数据
      *
      * @param taskDetails 实例对象
-     * @param taskFeature
      * @return 实例对象
      */
     @Override
-    public TaskDetails update(TaskDetails taskDetails, TaskFeature taskFeature) {
+    public TaskDetails update(TaskDetails taskDetails,Integer type) {
+
         taskDetails.setUpdateTime(new Date());
-        this.taskDetailsMapper.update(taskDetails);
         countTaskDetails(taskDetails);
+        this.taskDetailsMapper.update(taskDetails);
         TaskDetails res = this.queryById(taskDetails.getId());
-        addTaskDetailsLog(res,taskFeature);
+        //调用就保存,不需要区分不保存
+//        if (type !=null&&type==1){
+            addTaskDetailsLog(res);
+//        }
+        return res;
+    }
+
+    @Override
+    public Object updateDownload(TaskDetails newTd) {
+        this.taskDetailsMapper.update(newTd);
+        TaskDetails res = this.queryById(newTd.getId());
         return res;
     }
 
@@ -247,7 +356,7 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
     public Result export(Integer id) {
         OutTaskDetailsBo res = new OutTaskDetailsBo();
         NewExcelUtil<OutTaskDetailsBo> excel=new NewExcelUtil<>(OutTaskDetailsBo.class);
-        TaskDetailsBo byTid = getByTid(id);
+        TaskDetailsBo byTid = pushByTid(id);
         BeanUtils.copyProperties(byTid,res);
         StringBuffer sb = new StringBuffer();
         byTid.getTaskList().forEach(e->{
@@ -267,15 +376,88 @@ public class TaskDetailsServiceImpl extends BaseMybatisDao<TaskDetailsMapper> im
     }
 
     @Override
-    public TaskFeature addFeature(TaskFeature in) {
+    public TaskFeature addFeature(InputTaskFeature in) {
         in.setCreateTime(new Date());
+        if (in.getStartTimeStr()!=null)in.setStartTime(DateUtils.parseDate(in.getStartTimeStr()));
+        if (in.getEndTimeStr()!=null)in.setEndTime(DateUtils.parseDate(in.getEndTimeStr()));
         taskFeatureMapper.insert(in);
         return in;
     }
 
     @Override
-    public TaskFeature updateFeature(TaskFeature in) {
+    public TaskFeature updateFeature(InputTaskFeature in) {
+        if (in.getStartTimeStr()!=null)in.setStartTime(DateUtils.parseDate(in.getStartTimeStr()));
+        if (in.getEndTimeStr()!=null)in.setEndTime(DateUtils.parseDate(in.getEndTimeStr()));
         taskFeatureMapper.update(in);
         return taskFeatureMapper.selectById(in.getId());
     }
+
+    @Override
+    public Object logList(Integer id, Integer pageNo, Integer pageSize) {
+        Map<String,Object> param=new HashMap<String, Object>();
+        param.put("tdid",id);
+        if (pageNo ==null)pageNo=1;
+        if (pageSize ==null)pageSize=10;
+        return findPage("selectByTidList", "selectByTidCount", param, pageNo, pageSize);
+    }
+
+    @Override
+    public Object logDetails(Integer id) {
+        TaskDetailsLog log = taskDetailsLogMapper.selectById(id);
+        TaskDetails taskDetails = taskDetailsMapper.selectById(log.getTdid());
+        Integer tid = taskDetails.getTid();
+        TaskDetailsBo res = new TaskDetailsBo();
+        TOrderNew tOrderNew = tOrderNewMapper.selectByTid(tid);
+        TOrderMid mid = tOrderMidMapper.selectByOrderNo(tOrderNew.getOrderNo());
+        List<Map<String,Object >> list=new ArrayList<>();
+        List<TOrderTaskBo> tOrderTaskBos = tOrderTaskMapper.selectOrderTaskAll(tOrderNew.getOrderNo(), 4);
+        //如果是会员
+        TOrderTaskBo thisTask = null;
+        for (TOrderTaskBo e : tOrderTaskBos) {
+            if (e.getId().equals(tid)){
+                thisTask=e;
+                break;
+            }
+        }
+        String serviceYear = getServiceYer(thisTask.getServiceYear());
+        list=addOrderList(tOrderTaskBos, serviceYear);
+        if (taskDetails !=null){
+            BeanUtils.copyProperties(log, res);
+        }
+        res.setUserName(mid.getBuyerName());
+        res.setOrderNo(tOrderNew.getOrderNo());
+        res.setContractNo(tOrderNew.getContractNo());
+        res.setMemberStatus(mid.getProjectType());
+        res.setTaskList(list);
+        BigDecimal totalAmount = tOrderNew.getTotalAmount();
+        String lvl=getOrderLvl(totalAmount);
+        res.setMemberLvl(lvl);
+        res.setTaskList(list);
+        res.setFeatureList(taskFeatureLogMapper.selectByTdlid(id));
+        return res;
+    }
+
+    private List<Map<String, Object>> addOrderList(List<TOrderTaskBo> tOrderTaskBos, String serviceYear) {
+        List<Map<String, Object>> list =new ArrayList<>();
+        for (TOrderTaskBo e : tOrderTaskBos) {
+            String serviceYear1 = getServiceYer(e.getServiceYear());
+            if (serviceYear1.equals(serviceYear)){
+                Map<String,Object> map=new HashMap<>();
+                map.put("serviceYear", e.getServiceYear());
+                map.put("taskName", e.getCommodityName());
+                map.put("id",e.getId());
+                list.add(map);
+            }
+        }
+        return list;
+    }
+
+    @Override
+    public Object deleteTaskFeature(Integer id) {
+        return taskFeatureMapper.deleteById(id);
+    }
+
+
+
+
 }

+ 2 - 2
src/main/resources/props/config_local.properties

@@ -1,8 +1,8 @@
 dev.name=local
 jdbc.driverClassName=com.mysql.jdbc.Driver
 
-#static.host=//static.jishutao.com/1.3.35
-static.host=//172.16.1.187/1.3.35
+#static.host=//static.jishutao.com/1.3.37
+static.host=//172.16.1.187/1.3.37
 
 #jdbc.url=jdbc\:mysql://localhost:3306/aft20241122?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
 #jdbc.url=jdbc\:mysql://localhost:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false

+ 1 - 1
src/main/resources/props/config_test.properties

@@ -1,5 +1,5 @@
 dev.name=test
-static.host=//static.jishutao.com/1.3.35
+static.host=//static.jishutao.com/1.3.37
 #Driver
 jdbc.driverClassName=com.mysql.jdbc.Driver
 jdbc.url=jdbc:mysql://127.0.0.1:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false