Procházet zdrojové kódy

修复集合为空的更新考勤bug

QuYueTing před 3 týdny
rodič
revize
fba35386ba

+ 7 - 7
fhKeeper/formulahousekeeper/management-platform-mld/src/main/resources/mapper/ProjectMapper.xml

@@ -2744,7 +2744,7 @@
         <foreach collection="userIds" close=")" open="(" separator="," index="" item="item">
             #{item}
         </foreach>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null
         <if test="targetUserId !=null and targetUserId !='' ">
             and user.`id`=#{targetUserId}
@@ -2781,7 +2781,7 @@
         <foreach collection="userIds" close=")" open="(" separator="," index="" item="item">
             #{item}
         </foreach>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null and task.is_task_plan=1  and project.incharger_id=#{managerId}
         AND project.`status` = 1 and task.task_plan=1 and task.task_status !=2
         <if test="targetUserId !=null and targetUserId !='' ">
@@ -2802,7 +2802,7 @@
         <foreach collection="userIds" close=")" open="(" separator="," index="" item="item">
             #{item}
         </foreach>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null  and  task.check_second_id=#{managerId}
         AND project.`status` = 1 and task.task_plan=1 and task.task_status !=2
         <if test="targetUserId !=null and targetUserId !='' ">
@@ -2835,7 +2835,7 @@
         <if test="targetProjectId !=null  ">
             and project.`id` = #{targetProjectId}
         </if>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null
         AND project.`status` = 1
         ORDER BY project.id, task.start_date
@@ -2865,7 +2865,7 @@
         <if test="targetProjectId !=null  ">
             and project.`id` = #{targetProjectId}
         </if>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null and task.is_task_plan=1  and project.incharger_id=#{managerId} and task.task_status !=2
         AND project.`status` = 1
         ORDER BY project.id, task.start_date
@@ -2895,7 +2895,7 @@
         <if test="targetProjectId !=null  ">
             and project.`id` = #{targetProjectId}
         </if>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null and task.task_plan=1 and  task.check_second_id=#{managerId}
         AND project.`status` = 1 and task.task_status !=2
         ORDER BY project.id, task.start_date
@@ -3004,7 +3004,7 @@
                </foreach>
             </if>
             <if test="startDate !=null and startDate!='' and endDate !=null and endDate!=''">
-                and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+                and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
             </if>
             <if test="deptId !=null">
                 and user.department_id= #{deptId}

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserCorpwxTimeController.java

@@ -231,7 +231,8 @@ public class UserCorpwxTimeController {
         String token = request.getHeader("TOKEN");
         User user = userMapper.selectById(token);
         List<Map> list = new ArrayList<Map>();
-        list = userCorpwxTimeMapper.getUserDataList(user.getCompanyId(), startDate, endDate, null, user.getRoleName().contains("管理员")?null:user.getId());
+        String curUserId = user.getCompanyId() == 469?user.getId():(user.getRoleName().contains("管理员")?null:user.getId());
+        list = userCorpwxTimeMapper.getUserDataList(user.getCompanyId(), startDate, endDate, null, curUserId);
         //工作日处理,排除常规周末和法定节假日
         DateTimeFormatter standFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         HashMap item = new HashMap();

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/UserFvTimeController.java

@@ -386,11 +386,11 @@ public class UserFvTimeController {
             httpRespMsg.setError("暂无考勤记录");
             return httpRespMsg;
         }
-        if(!userFvTimeService.saveBatch(userFvTimeList)){
+        if(userFvTimeList.size() > 0 && !userFvTimeService.saveBatch(userFvTimeList)){
             httpRespMsg.setError("验证失败");
             return httpRespMsg;
         }
-        if(!userFvTimeService.updateBatchById(userFvTimeUpdateList)){
+        if(userFvTimeUpdateList.size() > 0 && !userFvTimeService.updateBatchById(userFvTimeUpdateList)){
             httpRespMsg.setError("验证失败");
             return httpRespMsg;
         }

+ 6 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -673,8 +673,12 @@ public class TimingTask {
                     }
                 }
             }
-            userFvTimeService.saveBatch(userFvTimeList);
-            userFvTimeService.updateBatchById(userFvTimeUpdateList);
+            if (userFvTimeList.size() > 0) {
+                userFvTimeService.saveBatch(userFvTimeList);
+            }
+            if (userFvTimeUpdateList.size() > 0) {
+                userFvTimeService.updateBatchById(userFvTimeUpdateList);
+            }
         }
     }
 

+ 9 - 9
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectMapper.xml

@@ -756,7 +756,7 @@
         <if test="justWaitForMe !=null  ">
             and (task.check_first_id=#{creatorId} or task.check_second_id=#{creatorId})  and (task.task_status=3 or task.task_status=4)
         </if>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null and task.is_task_plan =0
         AND project.`status` = 1
         ORDER BY user.id, task.start_date
@@ -787,7 +787,7 @@
         <if test="justWaitForMe !=null  ">
             and (task.check_first_id=#{creatorId} or task.check_second_id=#{creatorId})  and (task.task_status=3 or task.task_status=4)
         </if>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null and task.task_plan =0
         AND project.`status` = 1
         ORDER BY project.id, task.start_date
@@ -2746,7 +2746,7 @@
         <foreach collection="userIds" close=")" open="(" separator="," index="" item="item">
             #{item}
         </foreach>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null
         <if test="targetUserId !=null and targetUserId !='' ">
             and user.`id`=#{targetUserId}
@@ -2766,7 +2766,7 @@
         LEFT JOIN task_executor ON user.id = task_executor.`executor_id`
         left join task on task.id = task_executor.task_id
         WHERE
-        ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null and task.task_plan_type=3 and task.task_plan=1
         <if test="targetUserId !=null and targetUserId !='' ">
             and user.`id`=#{targetUserId}
@@ -2786,7 +2786,7 @@
         <foreach collection="userIds" close=")" open="(" separator="," index="" item="item">
             #{item}
         </foreach>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null and task.is_task_plan=1  and task.check_first_id=#{managerId}
         AND project.`status` = 1 and task.task_plan=1 and task.task_status !=2
         <if test="targetUserId !=null and targetUserId !='' ">
@@ -2810,7 +2810,7 @@
         <foreach collection="userIds" close=")" open="(" separator="," index="" item="item">
             #{item}
         </foreach>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null  and  task.check_second_id=#{managerId}
         AND project.`status` = 1 and task.task_plan=1 and task.task_status !=2
         <if test="targetUserId !=null and targetUserId !='' ">
@@ -2849,7 +2849,7 @@
         <if test="justWaitForMe !=null">
             and (task.check_first_id=#{creatorId} or task.check_second_id=#{creatorId}) and (task.task_status=3 or task.task_status=4)
         </if>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null
         AND project.`status` = 1
         ORDER BY project.id, task.start_date
@@ -2882,7 +2882,7 @@
         <if test="justWaitForMe !=null">
             and task.task_status=3
         </if>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null and task.is_task_plan=1  and task.check_first_id=#{managerId} and task.task_status !=2
         AND project.`status` = 1
         ORDER BY project.id, task.start_date
@@ -2915,7 +2915,7 @@
         <if test="justWaitForMe !=null">
             and task.task_status=4
         </if>
-        and ((IFNULL(task.start_date , task.end_date) between #{startDate} and #{endDate}) or (task.end_date between #{startDate} and #{endDate}))
+        and ((IFNULL(task.start_date , task.end_date) &lt;= #{endDate}) and (task.end_date &gt;= #{startDate}))
         and task.end_date is not null and task.task_plan=1 and  task.check_second_id=#{managerId}
         AND project.`status` = 1 and task.task_status !=2
         ORDER BY project.id, task.start_date