liuyc пре 2 година
родитељ
комит
82ee59cb85

+ 33 - 18
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/LogHistoryServiceImpl.java

@@ -26,6 +26,7 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.Duration;
 import java.time.LocalDate;
@@ -319,8 +320,8 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
                 }
 
                 if (taskIds.size() > 0) {
-                    //任务逾期关系信息
-                    List<TaskPlanOverdueStatusVO> overdueStatusVOS = jdbcTemplate.query("select * from c_task_plan_overdue_status where user_id = " + obj.getUserId(), new BeanPropertyRowMapper<>(TaskPlanOverdueStatusVO.class));
+                    //任务逾期完成关系信息
+                    //List<TaskPlanOverdueStatusVO> overdueStatusVOS = jdbcTemplate.query("select * from c_task_plan_overdue_status where user_id = " + obj.getUserId(), new BeanPropertyRowMapper<>(TaskPlanOverdueStatusVO.class));
 
                     //获取所有审批任务与计划任务关系
                     List<ExpenseTaskRecord> expenseTaskRecords = jdbcTemplate.query("select task_id,expense_info_id,is_transfer from c_expense_task_record where expense_info_type = 1 and expense_info_id in(" + StringUtils.join(taskIds, ",") + ")", new BeanPropertyRowMapper<>(ExpenseTaskRecord.class));
@@ -329,6 +330,7 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
                     //预算任务集合
                     List<ProjectCostBudget> taskObjs = projectCostBudgetServiceImpl.listByIds(taskIds);
                     List<TaskPlanInfoVO> resultList = new ArrayList<>();
+                    LocalDate nowDateYQ = LocalDate.now();
                     for (ProjectCostBudget taskObj : taskObjs) {
                         TaskPlanInfoVO vos = new TaskPlanInfoVO();
                         vos.setId(taskObj.getId());
@@ -357,16 +359,6 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
                             vos.setStatusName("未上报");
                         }
 
-                        //只有在当前任务是未提交、已驳回状态下才判断是否逾期
-                        if (!Arrays.asList(1, 2).contains(vos.getStatus())) {
-                            //是否已逾期
-                            for (TaskPlanOverdueStatusVO overdueVO : overdueStatusVOS) {
-                                if (overdueVO.getPlanTaskId().equals(taskObj.getId())) {
-                                    vos.setIsOverdue(1);
-                                }
-                            }
-                        }
-
                         vos.setTaskDesc(ObjectUtil.isNotEmpty(taskObj.getPlanTaskDesc()) ? taskObj.getPlanTaskDesc() : "");
                         if (ObjectUtil.isNotEmpty(taskObj.getPlanStartTime()) && ObjectUtil.isNotEmpty(taskObj.getPlanEndTime())) {
                             LocalDate planStartTime = taskObj.getPlanStartTime();
@@ -375,6 +367,22 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
                             String planStartTimeStr = planStartTime.format(formatter);
                             String planEndTimeStr = planEndTime.format(formatter);
                             vos.setStartAndEndDate(planStartTimeStr + "~" + planEndTimeStr);
+                            /*if (vos.getStatus().equals(4)) { //TODO 业务说暂时不需要标记逾期完成的
+                                //逾期完成
+                                for (TaskPlanOverdueStatusVO overdueVO : overdueStatusVOS) {
+                                    if (overdueVO.getPlanTaskId().equals(taskObj.getId())) {
+                                        vos.setIsOverdue(1);
+                                        break;
+                                    }
+                                }
+                            } else {*/
+                            //逾期未完成
+                            if (taskObj.getPlanEndTime().isBefore(nowDateYQ) && obj.getStatus() != 4) {
+                                if (ObjectUtil.isNotEmpty(taskObj.getPlanStartTime()) && ObjectUtil.isNotEmpty(taskObj.getPlanEndTime())) {
+                                    vos.setIsOverdue(1);
+                                }
+                            }
+                            //}
                         }
 
                         vos.setReimbursementAmount(taskObj.getBudgetCountMoney());
@@ -516,12 +524,13 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
         if (ObjectUtil.isEmpty(SecureUtil.getUser())) {
             throw new ServiceException("获取当前用户信息失败,请联系管理员");
         }
-        //获取当天,当前用户所有的计划任务信息
-        List<ProjectCostBudget> projectCostBudgets = jdbcTemplate.query("SELECT * FROM c_project_cost_budget WHERE CURDATE() BETWEEN plan_start_time AND plan_end_time AND task_user = " + SecureUtil.getUserId(), new BeanPropertyRowMapper<>(ProjectCostBudget.class));
-
+        //当前用户所有的计划任务信息
+        List<ProjectCostBudget> projectCostBudgetsAllByTaskUser = jdbcTemplate.query("SELECT * FROM c_project_cost_budget WHERE task_user = " + SecureUtil.getUserId(), new BeanPropertyRowMapper<>(ProjectCostBudget.class));
+        //List<ProjectCostBudget> projectCostBudgets = jdbcTemplate.query("SELECT * FROM c_project_cost_budget WHERE CURDATE() BETWEEN plan_start_time AND plan_end_time AND task_user = " + SecureUtil.getUserId(), new BeanPropertyRowMapper<>(ProjectCostBudget.class));
         List<ControlProjectInfo> controlProjectInfos = projectInfoServiceImpl.getBaseMapper().selectList(Wrappers.<ControlProjectInfo>lambdaQuery().select(ControlProjectInfo::getId, ControlProjectInfo::getName));
         List<TaskPlanInfoVO> resultList = new ArrayList<>();
-        for (ProjectCostBudget obj : projectCostBudgets) {
+        LocalDate nowDate = LocalDate.now();
+        for (ProjectCostBudget obj : projectCostBudgetsAllByTaskUser) {
             TaskPlanInfoVO vo = new TaskPlanInfoVO();
             vo.setId(obj.getId());
             for (ControlProjectInfo projectInfo : controlProjectInfos) {
@@ -531,7 +540,6 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
                 }
             }
             vo.setStatusName(obj.getStatus().equals(4) ? "已完成" : "未完成");
-            //vo.setStatus(obj.getStatus());
             vo.setTaskDesc(ObjectUtil.isNotEmpty(obj.getPlanTaskDesc()) ? obj.getPlanTaskDesc() : "");
             if (ObjectUtil.isNotEmpty(obj.getPlanStartTime()) && ObjectUtil.isNotEmpty(obj.getPlanEndTime())) {
                 LocalDate planStartTime = obj.getPlanStartTime();
@@ -540,8 +548,15 @@ public class LogHistoryServiceImpl extends BaseServiceImpl<LogHistoryMapper, Log
                 String planStartTimeStr = planStartTime.format(formatter);
                 String planEndTimeStr = planEndTime.format(formatter);
                 vo.setStartAndEndDate(planStartTimeStr + "~" + planEndTimeStr);
+                if ((obj.getPlanStartTime().isBefore(nowDate) && obj.getPlanEndTime().isAfter(nowDate))) {
+                    resultList.add(vo);
+                } else if (obj.getPlanEndTime().isBefore(nowDate) && obj.getStatus() != 4) {
+                    if (ObjectUtil.isNotEmpty(obj.getPlanStartTime()) && ObjectUtil.isNotEmpty(obj.getPlanEndTime())) {
+                        vo.setIsOverdue(1); //逾期任务
+                    }
+                    resultList.add(vo);
+                }
             }
-            resultList.add(vo);
         }
         return resultList;
     }