Jelajahi Sumber

人员切换机构后,原始机构下的待签名任务也要能签名

zhulu 1 tahun lalu
induk
melakukan
b3d8a19453

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/mapper/CoreDrillTaskMapper.java

@@ -46,6 +46,8 @@ public interface CoreDrillTaskMapper extends BaseMapper<CoreDrillTask> {
 
     List<PanelListVo> selectCurUserTaskList(@Param("request") PanelListDto request,@Param("list") List<Integer> list);
 
+    List<PanelListVo> selectUserAllDrillSignList(@Param("request") PanelListDto request,@Param("list") List<Integer> list);
+
     List<PanelListVo> selectWaitEvaluateTaskList(@Param("request") PanelListDto panelListDto);
     List<PanelListVo> selectWaitRecTaskList(@Param("request") PanelListDto panelListDto);
 

+ 12 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -1182,6 +1182,18 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         Collections.addAll(statusList, DrillDoStatus.WAIT_SUBMIT.getCode(),
                 DrillDoStatus.WAIT_RECORDED.getCode(), DrillDoStatus.WAIT_SIGN.getCode());
         List<PanelListVo> list = coreDrillTaskMapper.selectCurUserTaskList(panelListDto, statusList);
+        //获取需要登录人 签名的所有任务,解决人员还没签名就调动到其他机构的问题
+        List<PanelListVo> loginUserAllNeedSignlist = coreDrillTaskMapper.selectUserAllDrillSignList(panelListDto,statusList);
+        if(ObjectUtil.isNotEmpty(loginUserAllNeedSignlist))
+        {
+            loginUserAllNeedSignlist.stream().forEach(x->{
+                if(!list.stream().anyMatch(y->ObjectUtil.equal(y.getId(),x.getId())))
+                {
+                    list.add(x);
+                }
+            });
+        }
+
         dealListData(list, panelListDto.getUserId());
         //省联社/办事处或行社
         if (OrgTypeEnum.HANG_SHE.getCode().equals(sysOrg.getType()) ||

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/mapper/CoreEduTrainingTaskMapper.java

@@ -45,6 +45,8 @@ public interface CoreEduTrainingTaskMapper extends BaseMapper<CoreEduTrainingTas
 
     List<PanelListVo> selectCurUserTaskList(@Param("request") PanelListDto request);
 
+    List<PanelListVo> selectUserAllEduTrainingSignList(@Param("request") PanelListDto request);
+
     void updateTaskNameByParentPlanId(@Param("planId") Long planId, @Param("planName") String planName, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
 
     List<CoreEduTrainingTaskExportVo> selectCoreEduTrainingTaskPage(@Param("request") CoreEduTrainingTaskPageDto request);

+ 11 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -961,6 +961,17 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
     @Override
     public List<PanelListVo> selectCurUserTaskList(PanelListDto panelListDto) {
         List<PanelListVo> list = coreEduTrainingTaskMapper.selectCurUserTaskList(panelListDto);
+        //获取需要登录人 签名的所有任务,解决人员还没签名就调动到其他机构的问题
+        List<PanelListVo> loginUserAllNeedSignlist = coreEduTrainingTaskMapper.selectUserAllEduTrainingSignList(panelListDto);
+        if(ObjectUtil.isNotEmpty(loginUserAllNeedSignlist))
+        {
+            loginUserAllNeedSignlist.stream().forEach(x->{
+                if(!list.stream().anyMatch(y->ObjectUtil.equal(y.getId(),x.getId())))
+                {
+                    list.add(x);
+                }
+            });
+        }
         if (ObjectUtil.isEmpty(list)) {
             return new ArrayList<>();
         }

+ 14 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/drill/CoreDrillTaskMapper.xml

@@ -267,6 +267,20 @@
         <include refid="timeRangeSql"/>
         order by field(t.status,5,0,1,2,3,4),t.end_date desc
     </select>
+
+    <select id="selectUserAllDrillSignList" resultType="com.xunmei.common.core.domain.panel.vo.PanelListVo">
+        select distinct t.id as id, title as taskName,t.start_date startTime,t.end_date as endTime,t.status
+        from core_drill_task t
+        inner join core_drill_task_to_user u ON t.id=u.drill_task_id
+        where u.type=1 and u.sign=0 and u.user_id=#{request.userId}
+        and t.status in
+        <foreach collection="list" item="status" open="(" separator="," close=")">
+            #{status}
+        </foreach>
+        <include refid="timeRangeSql"/>
+        order by field(t.status,5,0,1,2,3,4),t.end_date desc
+    </select>
+
     <sql id="timeRangeSql">
         <if test="request.startTime != null and request.endTime != null">
             and (

+ 10 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/edu/CoreEduTrainingTaskMapper.xml

@@ -214,6 +214,16 @@
         <include refid="timeRangeSql"/>
     </select>
 
+    <select id="selectUserAllEduTrainingSignList" resultType="com.xunmei.common.core.domain.panel.vo.PanelListVo">
+        select distinct t.id as id, title as taskName, t.start_date startTime, t.end_date as endTime, t.status
+        from core_edu_training_task t
+        inner join core_edu_training_task_to_user u ON t.id=u.edu_training_task_id
+        where t.status in (0, 1, 4) and u.type=1 and u.sign=0 and u.user_id=#{request.userId}
+        <include refid="timeRangeSql"/>
+    </select>
+
+
+
     <select id="checkHasTaskIsExecuteByPlanParentId" resultType="java.lang.Integer">
         select 1
         from core_edu_training_task