|
@@ -44,8 +44,10 @@ import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.time.Duration;
|
|
|
import java.time.LocalDate;
|
|
|
+import java.time.ZoneId;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
@@ -418,7 +420,25 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
|
queryWrapper.lambda().eq(ProjectCostBudget::getDeptId, dto.getDeptId());
|
|
|
}
|
|
|
if (ObjectUtil.isNotEmpty(dto.getTaskStatus())) {
|
|
|
- queryWrapper.lambda().eq(ProjectCostBudget::getStatus, dto.getTaskStatus());
|
|
|
+ if (dto.getTaskStatus().equals("2")) {
|
|
|
+ //已完成任务
|
|
|
+ queryWrapper.lambda().eq(ProjectCostBudget::getStatus, 4);
|
|
|
+ } else if (dto.getTaskStatus().equals("1")) {
|
|
|
+ //未完成任务
|
|
|
+ queryWrapper.lambda().in(ProjectCostBudget::getStatus, 1, 2, 3);
|
|
|
+ } else if (dto.getTaskStatus().equals("3")) {
|
|
|
+ //逾期完成
|
|
|
+ List<TaskPlanOverdueStatusVO> query = jdbcTemplate.query("select * from c_task_plan_overdue_status where user_id = " + SecureUtil.getUserId(), new BeanPropertyRowMapper<>(TaskPlanOverdueStatusVO.class));
|
|
|
+ List<Long> taskIds = query.stream().map(TaskPlanOverdueStatusVO::getPlanTaskId).collect(Collectors.toList());
|
|
|
+ queryWrapper.lambda().in(ProjectCostBudget::getId, taskIds);
|
|
|
+ }
|
|
|
+ if (dto.getTaskStatus().equals("4")) {
|
|
|
+ //逾期未完成
|
|
|
+ Date now = DateUtil.now();
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String format = simpleDateFormat.format(now);
|
|
|
+ queryWrapper.lambda().in(ProjectCostBudget::getStatus, 1, 2, 3).lt(ProjectCostBudget::getPlanEndTime, format);
|
|
|
+ }
|
|
|
}
|
|
|
if (ObjectUtil.isNotEmpty(dto.getStartTime()) && ObjectUtil.isNotEmpty(dto.getEndTime())) {
|
|
|
queryWrapper.lambda().ge(ProjectCostBudget::getPlanStartTime, dto.getStartTime()).le(ProjectCostBudget::getPlanEndTime, dto.getEndTime());
|
|
@@ -435,6 +455,14 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
|
|
|
|
//构造page参数
|
|
|
List<ProjectCostBudget> records = pages.getRecords();
|
|
|
+ List<String> taskIds = records.stream().map(ProjectCostBudget::getId).map(String::valueOf).collect(Collectors.toList());
|
|
|
+ //获取所有审批任务与计划任务关系
|
|
|
+ Map<String, ExpenseTaskRecord> taskRecordMaps = new LinkedHashMap<>();
|
|
|
+ if (taskIds.size() > 0) {
|
|
|
+ List<ExpenseTaskRecord> expenseTaskRecords = jdbcTemplate.query("select task_id,expense_info_id from c_expense_task_record where expense_info_type = 1 and expense_info_id in(" + StringUtils.join(taskIds, ",") + ")", new BeanPropertyRowMapper<>(ExpenseTaskRecord.class));
|
|
|
+ taskRecordMaps = expenseTaskRecords.stream().collect(Collectors.toMap(ExpenseTaskRecord::getExpenseInfoId, Function.identity()));
|
|
|
+ }
|
|
|
+
|
|
|
List<TaskPlanInfoVO> vos = new ArrayList<>();
|
|
|
for (ProjectCostBudget obj : records) {
|
|
|
TaskPlanInfoVO vo = new TaskPlanInfoVO();
|
|
@@ -443,7 +471,19 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
|
vo.setTaskDesc(obj.getPlanTaskDesc());
|
|
|
vo.setPlanTarget(obj.getPlanTarget());
|
|
|
|
|
|
- vo.setStatusName(null); //TODO 任务状态 多种
|
|
|
+ //判断任务状态
|
|
|
+ ExpenseTaskRecord record = taskRecordMaps.getOrDefault(String.valueOf(vo.getId()), null);
|
|
|
+ if (record != null) {
|
|
|
+ TaskProcessInfo task = jdbcTemplate.query("select status from c_task_process_info where id = " + record.getTaskId(), new BeanPropertyRowMapper<>(TaskProcessInfo.class)).stream().findAny().orElse(null);
|
|
|
+ if (task != null) {
|
|
|
+ vo.setStatus(task.getStatus());
|
|
|
+ vo.setStatusName(task.getStatus().equals(1) ? "待审批" : (task.getStatus().equals(2) ? "已审批" : (task.getStatus().equals(3) ? "已驳回" : "未提交审批")));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isEmpty(vo.getStatusName())) {
|
|
|
+ vo.setStatus(0);
|
|
|
+ vo.setStatusName("未提交审批");
|
|
|
+ }
|
|
|
|
|
|
for (ControlProjectInfo projectInfo : controlProjectInfos) {
|
|
|
if (projectInfo.getId().equals(obj.getProjectId())) {
|
|
@@ -672,6 +712,10 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
|
List<String> ids = projectCostBudgetList.stream().map(ProjectCostBudget::getId).map(String::valueOf).collect(Collectors.toList());
|
|
|
String budgetIds = StringUtils.join(ids, ",");
|
|
|
jdbcTemplate.execute("delete from c_expense_task_record where expense_info_type = 10 and expense_info_id = '" + budgetIds + "' ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + ",'" + budgetIds + "',10)");
|
|
|
+
|
|
|
+ //修改projectCostBudgetList的approve=2(审批中)
|
|
|
+ projectCostBudgetService.update(Wrappers.<ProjectCostBudget>lambdaUpdate().set(ProjectCostBudget::getApprove, 2).in(ProjectCostBudget::getId, ids));
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
}
|
|
@@ -689,11 +733,11 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
|
switch (businessDataType) {
|
|
|
case 1: //计划任务
|
|
|
if (taskStatus == 2) {
|
|
|
- //已完成 = 已完成
|
|
|
- jdbcTemplate.execute("update c_project_cost_budget set status = 4 where id = " + dataId);
|
|
|
+ //task_approve = 1 已审批 , status = 4 已完成
|
|
|
+ jdbcTemplate.execute("update c_project_cost_budget set task_approve = 1,status = 4 where id = " + dataId);
|
|
|
} else if (taskStatus == 3) {
|
|
|
- //已驳回 = 未开始
|
|
|
- jdbcTemplate.execute("update c_project_cost_budget set status = 1 where id = " + dataId);
|
|
|
+ //task_approve = 0 未开始 , status = 2 进行中
|
|
|
+ jdbcTemplate.execute("update c_project_cost_budget set task_approve = 0,status = 2 where id = " + dataId);
|
|
|
}
|
|
|
break;
|
|
|
|
|
@@ -723,11 +767,12 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
|
break;
|
|
|
case 10: //成本测算
|
|
|
if (taskStatus == 2) {
|
|
|
- //已完成 = 已完成(修改成本测算的数据状态)dataId = ids
|
|
|
+ //已完成 = approve = 1
|
|
|
jdbcTemplate.execute("update c_project_cost_budget set approve = 1 where id in(" + dataId + ")");
|
|
|
|
|
|
} else if (taskStatus == 3) {
|
|
|
- //已驳回 = 不做处理,驳回后依然是未上报
|
|
|
+ //已驳回 = approve = 0
|
|
|
+ jdbcTemplate.execute("update c_project_cost_budget set approve = 0 where id in(" + dataId + ")");
|
|
|
break;
|
|
|
}
|
|
|
break;
|
|
@@ -784,16 +829,6 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- //支付 不做处理,只存储记录,关联项目合同段后,在项目处统计通过的任务的金额
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- //采购 不做处理,只存储记录,在经营预算处统计通过的任务的金额
|
|
|
- break;
|
|
|
- case 8:
|
|
|
- //外包 不做处理,只存储记录,关联项目后,在项目处统计通过的任务的金额
|
|
|
break;
|
|
|
}
|
|
|
}
|