|
@@ -2,14 +2,12 @@ package org.springblade.control.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
-import io.swagger.annotations.ApiModelProperty;
|
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.time.DateUtils;
|
|
import org.apache.commons.lang.time.DateUtils;
|
|
@@ -23,7 +21,6 @@ import org.springblade.core.log.exception.ServiceException;
|
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
|
import org.springblade.core.mp.support.Condition;
|
|
import org.springblade.core.mp.support.Condition;
|
|
import org.springblade.core.redis.cache.BladeRedis;
|
|
import org.springblade.core.redis.cache.BladeRedis;
|
|
-import org.springblade.core.secure.BladeUser;
|
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.utils.BeanUtil;
|
|
import org.springblade.core.tool.utils.BeanUtil;
|
|
@@ -44,7 +41,6 @@ import java.math.BigDecimal;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.Duration;
|
|
import java.time.Duration;
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDate;
|
|
-import java.time.ZoneId;
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.function.Function;
|
|
import java.util.function.Function;
|
|
@@ -133,7 +129,7 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
vo.setAuditUserCompleteNames(StringUtils.join(auditUserCompleteNames, "、"));
|
|
vo.setAuditUserCompleteNames(StringUtils.join(auditUserCompleteNames, "、"));
|
|
}
|
|
}
|
|
|
|
|
|
- vo.setStatusName(vo.getStatus().equals(1) ? "待审批" : (vo.getStatus().equals(2) ? "已审批" : "已驳回"));
|
|
|
|
|
|
+ vo.setStatusName(vo.getStatus().equals(1) ? "待审批" : (vo.getStatus().equals(2) ? "已审批" : (vo.getStatus().equals(3) ? "已驳回" : "未上报")));
|
|
|
|
|
|
for (DictInfo dictInfo : dictInfoList) {
|
|
for (DictInfo dictInfo : dictInfoList) {
|
|
if ((vo.getTaskType()).equals(dictInfo.getDictValue().intValue())) {
|
|
if ((vo.getTaskType()).equals(dictInfo.getDictValue().intValue())) {
|
|
@@ -184,7 +180,7 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
}
|
|
}
|
|
|
|
|
|
//获取计划任务更改状态记录信息
|
|
//获取计划任务更改状态记录信息
|
|
- data = jdbcTemplate.query("select * from c_task_plan_update_status_info where approve_task_id = " + id, new BeanPropertyRowMapper<>(TaskPlanUpdateStatusInfo.class));
|
|
|
|
|
|
+ data = jdbcTemplate.query("select * from c_task_plan_update_status_info where approve_task_id = " + id, new BeanPropertyRowMapper<>(TaskPlanUpdateStatusInfo.class)).stream().findAny().orElse(null);
|
|
TaskPlanUpdateStatusInfoVO voRW = BeanUtil.copyProperties(data, TaskPlanUpdateStatusInfoVO.class);
|
|
TaskPlanUpdateStatusInfoVO voRW = BeanUtil.copyProperties(data, TaskPlanUpdateStatusInfoVO.class);
|
|
if (voRW != null) {
|
|
if (voRW != null) {
|
|
voRW.setTransferObjectName(userMap.get(voRW.getTransferObject()));
|
|
voRW.setTransferObjectName(userMap.get(voRW.getTransferObject()));
|
|
@@ -385,14 +381,15 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
//修改审批任务状态 =3 已驳回
|
|
//修改审批任务状态 =3 已驳回
|
|
if (this.update(Wrappers.<TaskProcessInfo>lambdaUpdate()
|
|
if (this.update(Wrappers.<TaskProcessInfo>lambdaUpdate()
|
|
.set(TaskProcessInfo::getStatus, 3)
|
|
.set(TaskProcessInfo::getStatus, 3)
|
|
|
|
+ .set(TaskProcessInfo::getAuditDate, new Date())//审核日期
|
|
.set(TaskProcessInfo::getRejectDesc, StringUtils.isNotEmpty(dto.getRejectDesc()) ? dto.getRejectDesc() : null)
|
|
.set(TaskProcessInfo::getRejectDesc, StringUtils.isNotEmpty(dto.getRejectDesc()) ? dto.getRejectDesc() : null)
|
|
.eq(TaskProcessInfo::getId, dto.getId()))) {
|
|
.eq(TaskProcessInfo::getId, dto.getId()))) {
|
|
//修改业务数据状态 =3 已驳回
|
|
//修改业务数据状态 =3 已驳回
|
|
for (ExpenseTaskRecord record : records) {
|
|
for (ExpenseTaskRecord record : records) {
|
|
if (ObjectUtil.isNotEmpty(record.getExpenseInfoType())) {
|
|
if (ObjectUtil.isNotEmpty(record.getExpenseInfoType())) {
|
|
Integer businessDataType = record.getExpenseInfoType();
|
|
Integer businessDataType = record.getExpenseInfoType();
|
|
- if (businessDataType.equals(dto.getTaskType())) {
|
|
|
|
- this.updateTaskStatus(businessDataType, 3, record.getExpenseInfoId());
|
|
|
|
|
|
+ if (businessDataType.equals(taskProcessInfo.getTaskType())) {
|
|
|
|
+ this.updateTaskStatus(businessDataType, 3, taskProcessInfo.getId(), record.getExpenseInfoId());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -471,6 +468,7 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
//修改待审批人ids、完成审批人ids
|
|
//修改待审批人ids、完成审批人ids
|
|
updateWrapper.set(TaskProcessInfo::getAuditUserIds, ObjectUtil.isNotEmpty(auditUserIdList) ? StringUtils.join(auditUserIdList, ",") : null);
|
|
updateWrapper.set(TaskProcessInfo::getAuditUserIds, ObjectUtil.isNotEmpty(auditUserIdList) ? StringUtils.join(auditUserIdList, ",") : null);
|
|
updateWrapper.set(TaskProcessInfo::getAuditUserIdsComplete, ObjectUtil.isNotEmpty(auditUserIdCompleteList) ? StringUtils.join(auditUserIdCompleteList, ",") : null);
|
|
updateWrapper.set(TaskProcessInfo::getAuditUserIdsComplete, ObjectUtil.isNotEmpty(auditUserIdCompleteList) ? StringUtils.join(auditUserIdCompleteList, ",") : null);
|
|
|
|
+ updateWrapper.set(TaskProcessInfo::getAuditDate, new Date()); //审核日期
|
|
updateWrapper.eq(TaskProcessInfo::getId, id);
|
|
updateWrapper.eq(TaskProcessInfo::getId, id);
|
|
this.update(updateWrapper);
|
|
this.update(updateWrapper);
|
|
|
|
|
|
@@ -485,7 +483,7 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
Integer businessDataType = record.getExpenseInfoType();
|
|
Integer businessDataType = record.getExpenseInfoType();
|
|
if (businessDataType.equals(taskProcessInfo.getTaskType())) {
|
|
if (businessDataType.equals(taskProcessInfo.getTaskType())) {
|
|
//修改业务审批状态
|
|
//修改业务审批状态
|
|
- this.updateTaskStatus(businessDataType, 2, record.getExpenseInfoId());
|
|
|
|
|
|
+ this.updateTaskStatus(businessDataType, 2, taskProcessInfo.getId(), record.getExpenseInfoId());
|
|
|
|
|
|
//处理审批闭环后的业务数据
|
|
//处理审批闭环后的业务数据
|
|
this.processTheServiceDataAfterTheApprovalClosedLoop(businessDataType, record.getExpenseInfoId());
|
|
this.processTheServiceDataAfterTheApprovalClosedLoop(businessDataType, record.getExpenseInfoId());
|
|
@@ -552,10 +550,11 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
//构造page参数
|
|
//构造page参数
|
|
List<ProjectCostBudget> records = pages.getRecords();
|
|
List<ProjectCostBudget> records = pages.getRecords();
|
|
List<String> taskIds = records.stream().map(ProjectCostBudget::getId).map(String::valueOf).collect(Collectors.toList());
|
|
List<String> taskIds = records.stream().map(ProjectCostBudget::getId).map(String::valueOf).collect(Collectors.toList());
|
|
|
|
+
|
|
//获取所有审批任务与计划任务关系
|
|
//获取所有审批任务与计划任务关系
|
|
Map<String, ExpenseTaskRecord> taskRecordMaps = new LinkedHashMap<>();
|
|
Map<String, ExpenseTaskRecord> taskRecordMaps = new LinkedHashMap<>();
|
|
if (taskIds.size() > 0) {
|
|
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));
|
|
|
|
|
|
+ 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));
|
|
taskRecordMaps = expenseTaskRecords.stream().collect(Collectors.toMap(ExpenseTaskRecord::getExpenseInfoId, Function.identity()));
|
|
taskRecordMaps = expenseTaskRecords.stream().collect(Collectors.toMap(ExpenseTaskRecord::getExpenseInfoId, Function.identity()));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -571,14 +570,18 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
ExpenseTaskRecord record = taskRecordMaps.getOrDefault(String.valueOf(vo.getId()), null);
|
|
ExpenseTaskRecord record = taskRecordMaps.getOrDefault(String.valueOf(vo.getId()), null);
|
|
if (record != 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);
|
|
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) {
|
|
|
|
|
|
+ if (task != null && ObjectUtil.isNotEmpty(record.getIsTransfer()) && record.getIsTransfer().equals(1) && obj.getStatus().equals(2) && obj.getTaskApprove().equals(0)) {
|
|
|
|
+ //判断这条计划任务在当前用户下是否是转移的
|
|
|
|
+ vo.setStatus(0);
|
|
|
|
+ vo.setStatusName("未上报");
|
|
|
|
+ } else if (task != null) {
|
|
vo.setStatus(task.getStatus());
|
|
vo.setStatus(task.getStatus());
|
|
- vo.setStatusName(task.getStatus().equals(1) ? "待审批" : (task.getStatus().equals(2) ? "已审批" : (task.getStatus().equals(3) ? "已驳回" : "未提交审批")));
|
|
|
|
|
|
+ vo.setStatusName(task.getStatus().equals(1) ? "待审批" : (task.getStatus().equals(2) ? "已审批" : (task.getStatus().equals(3) ? "已驳回" : "未上报")));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (StringUtils.isEmpty(vo.getStatusName())) {
|
|
if (StringUtils.isEmpty(vo.getStatusName())) {
|
|
vo.setStatus(0);
|
|
vo.setStatus(0);
|
|
- vo.setStatusName("未提交审批");
|
|
|
|
|
|
+ vo.setStatusName("未上报");
|
|
}
|
|
}
|
|
|
|
|
|
for (ControlProjectInfo projectInfo : controlProjectInfos) {
|
|
for (ControlProjectInfo projectInfo : controlProjectInfos) {
|
|
@@ -632,12 +635,12 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
TaskProcessInfo task = jdbcTemplate.query("select status from c_task_process_info where id = " + record.getTaskId(), new BeanPropertyRowMapper<>(TaskProcessInfo.class)).stream().findAny().orElse(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) {
|
|
if (task != null) {
|
|
vo.setStatus(task.getStatus());
|
|
vo.setStatus(task.getStatus());
|
|
- vo.setStatusName(task.getStatus().equals(1) ? "待审批" : (task.getStatus().equals(2) ? "已审批" : (task.getStatus().equals(3) ? "已驳回" : "未提交审批")));
|
|
|
|
|
|
+ vo.setStatusName(task.getStatus().equals(1) ? "待审批" : (task.getStatus().equals(2) ? "已审批" : (task.getStatus().equals(3) ? "已驳回" : "未上报")));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (StringUtils.isEmpty(vo.getStatusName())) {
|
|
if (StringUtils.isEmpty(vo.getStatusName())) {
|
|
vo.setStatus(0);
|
|
vo.setStatus(0);
|
|
- vo.setStatusName("未提交审批");
|
|
|
|
|
|
+ vo.setStatusName("未上报");
|
|
}
|
|
}
|
|
|
|
|
|
vos.add(vo);
|
|
vos.add(vo);
|
|
@@ -648,32 +651,43 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public boolean taskPlanSubmit(TaskPlanStatusUpdateDTO dto) {
|
|
public boolean taskPlanSubmit(TaskPlanStatusUpdateDTO dto) {
|
|
|
|
+ if (ObjectUtil.isEmpty(SecureUtil.getUser())) {
|
|
|
|
+ throw new ServiceException("未获取到当前用户信息,请联系管理员");
|
|
|
|
+ }
|
|
if (ObjectUtil.isNotEmpty(dto.getTaskIds()) && ObjectUtil.isNotEmpty(dto.getUpdateType()) && ObjectUtil.isNotEmpty(dto.getCompletionTime())) {
|
|
if (ObjectUtil.isNotEmpty(dto.getTaskIds()) && ObjectUtil.isNotEmpty(dto.getUpdateType()) && ObjectUtil.isNotEmpty(dto.getCompletionTime())) {
|
|
List<String> taskIds = Func.toStrList(dto.getTaskIds());
|
|
List<String> taskIds = Func.toStrList(dto.getTaskIds());
|
|
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
String completionTimeStr = dateFormatter.format(dto.getCompletionTime());
|
|
String completionTimeStr = dateFormatter.format(dto.getCompletionTime());
|
|
|
|
|
|
- //获取所有审批任务与计划任务关系
|
|
|
|
- Map<String, ExpenseTaskRecord> taskRecordMaps = new LinkedHashMap<>();
|
|
|
|
- if (ObjectUtil.isNotEmpty(dto.getTaskIds())) {
|
|
|
|
- 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(" + dto.getTaskIds() + ")", new BeanPropertyRowMapper<>(ExpenseTaskRecord.class));
|
|
|
|
- taskRecordMaps = expenseTaskRecords.stream().collect(Collectors.toMap(ExpenseTaskRecord::getExpenseInfoId, Function.identity()));
|
|
|
|
|
|
+ //获取所有审批任务与计划任务关系,判断计划任务状态
|
|
|
|
+ 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(" + dto.getTaskIds() + ")", new BeanPropertyRowMapper<>(ExpenseTaskRecord.class));
|
|
|
|
+ Map<String, ExpenseTaskRecord> taskRecordMaps = expenseTaskRecords.stream().collect(Collectors.toMap(ExpenseTaskRecord::getExpenseInfoId, Function.identity()));
|
|
|
|
+ List<String> planTaskNames = new ArrayList<>();
|
|
|
|
+ for (String taskId : taskIds) {
|
|
|
|
+ ExpenseTaskRecord record = taskRecordMaps.getOrDefault(String.valueOf(taskId), null);
|
|
|
|
+ if (record != null && ObjectUtil.isEmpty(record.getIsTransfer())) { //排除转移任务
|
|
|
|
+ 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 && (Arrays.asList(1, 2).contains(task.getStatus()))) {
|
|
|
|
+ ProjectCostBudget planTaskInfo = projectCostBudgetService.getBaseMapper().selectOne(Wrappers.<ProjectCostBudget>lambdaQuery().select(ProjectCostBudget::getPlanTaskDesc).eq(ProjectCostBudget::getId, taskId));
|
|
|
|
+ if (planTaskInfo != null) {
|
|
|
|
+ planTaskNames.add(planTaskInfo.getPlanTaskDesc());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (planTaskNames.size() > 0) {
|
|
|
|
+ throw new ServiceException("当前选择的计划任务【" + (StringUtils.join(planTaskNames, "、")) + "】不是未提交或已驳回状态,操作失败");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //处理业务
|
|
for (String taskId : taskIds) {
|
|
for (String taskId : taskIds) {
|
|
ProjectCostBudget planTaskInfo = projectCostBudgetService.getById(taskId);
|
|
ProjectCostBudget planTaskInfo = projectCostBudgetService.getById(taskId);
|
|
if (planTaskInfo != null) {
|
|
if (planTaskInfo != null) {
|
|
- //判断计划任务状态
|
|
|
|
- ExpenseTaskRecord record = taskRecordMaps.getOrDefault(String.valueOf(taskId), 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 && (Arrays.asList(1, 2).contains(task.getStatus()))) {
|
|
|
|
- throw new ServiceException("计划任务【" + (ObjectUtil.isNotEmpty(planTaskInfo.getPlanTaskDesc()) ? planTaskInfo.getPlanTaskDesc() : null) + "】不是未提交或已驳回状态,操作失败");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
User departmentHead = this.getDepartmentHead(planTaskInfo.getDeptId());
|
|
User departmentHead = this.getDepartmentHead(planTaskInfo.getDeptId());
|
|
- if (departmentHead != null && dto.getUpdateType().equals("1")) {
|
|
|
|
|
|
+ if (ObjectUtil.isEmpty(departmentHead)) {
|
|
|
|
+ throw new ServiceException("获取部门负责人失败,请联系管理员");
|
|
|
|
+ }
|
|
|
|
+ if (dto.getUpdateType().equals("1")) {
|
|
//任务完成
|
|
//任务完成
|
|
TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
|
|
TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
|
|
taskProcessInfo.setId(SnowFlakeUtil.getId());
|
|
taskProcessInfo.setId(SnowFlakeUtil.getId());
|
|
@@ -710,7 +724,7 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
//新增审批任务关联信息
|
|
//新增审批任务关联信息
|
|
jdbcTemplate.execute("delete from c_expense_task_record where expense_info_type = 1 and expense_info_id = " + planTaskInfo.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + planTaskInfo.getId() + ",1)");
|
|
jdbcTemplate.execute("delete from c_expense_task_record where expense_info_type = 1 and expense_info_id = " + planTaskInfo.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + planTaskInfo.getId() + ",1)");
|
|
|
|
|
|
- } else if (departmentHead != null && dto.getUpdateType().equals("2")) {
|
|
|
|
|
|
+ } else if (dto.getUpdateType().equals("2")) {
|
|
//任务转移
|
|
//任务转移
|
|
TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
|
|
TaskProcessInfo taskProcessInfo = new TaskProcessInfo();
|
|
taskProcessInfo.setId(SnowFlakeUtil.getId());
|
|
taskProcessInfo.setId(SnowFlakeUtil.getId());
|
|
@@ -742,7 +756,7 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
|
|
|
|
//新增计划任务更改状态记录信息
|
|
//新增计划任务更改状态记录信息
|
|
jdbcTemplate.execute("insert into c_task_plan_update_status_info(id,approve_task_id,plan_task_id,update_type,completion_time,start_transfer_object,transfer_object,transfer_reason) " +
|
|
jdbcTemplate.execute("insert into c_task_plan_update_status_info(id,approve_task_id,plan_task_id,update_type,completion_time,start_transfer_object,transfer_object,transfer_reason) " +
|
|
- "values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + planTaskInfo.getId() + ",2,'" + completionTimeStr + "'," + SecureUtil.getUserId() + "," + dto.getTransferObject() + "," + dto.getTransferReason() + ")");
|
|
|
|
|
|
+ "values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + planTaskInfo.getId() + ",2,'" + completionTimeStr + "'," + SecureUtil.getUserId() + "," + dto.getTransferObject() + ",'" + dto.getTransferReason() + "')");
|
|
|
|
|
|
//新增审批任务关联信息
|
|
//新增审批任务关联信息
|
|
jdbcTemplate.execute("delete from c_expense_task_record where expense_info_type = 1 and expense_info_id = " + planTaskInfo.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + planTaskInfo.getId() + ",1)");
|
|
jdbcTemplate.execute("delete from c_expense_task_record where expense_info_type = 1 and expense_info_id = " + planTaskInfo.getId() + " ; insert into c_expense_task_record(id,task_id,expense_info_id,expense_info_type) values (" + SnowFlakeUtil.getId() + "," + taskProcessInfo.getId() + "," + planTaskInfo.getId() + ",1)");
|
|
@@ -874,15 +888,29 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
*
|
|
*
|
|
* @param businessDataType 业务类型
|
|
* @param businessDataType 业务类型
|
|
* @param taskStatus 计划任务状态
|
|
* @param taskStatus 计划任务状态
|
|
|
|
+ * @param approveTaskId 审批任务id
|
|
* @param dataId 业务id
|
|
* @param dataId 业务id
|
|
*/
|
|
*/
|
|
- private void updateTaskStatus(Integer businessDataType, Integer taskStatus, String dataId) {
|
|
|
|
|
|
+ private void updateTaskStatus(Integer businessDataType, Integer taskStatus, Long approveTaskId, String dataId) {
|
|
switch (businessDataType) {
|
|
switch (businessDataType) {
|
|
case 1: //计划任务
|
|
case 1: //计划任务
|
|
- if (taskStatus == 2) {
|
|
|
|
|
|
+ if (taskStatus == 2) { //通过审批
|
|
//task_approve = 1 已审批 , status = 4 已完成
|
|
//task_approve = 1 已审批 , status = 4 已完成
|
|
jdbcTemplate.execute("update c_project_cost_budget set task_approve = 1,status = 4 where id = " + dataId);
|
|
jdbcTemplate.execute("update c_project_cost_budget set task_approve = 1,status = 4 where id = " + dataId);
|
|
- } else if (taskStatus == 3) {
|
|
|
|
|
|
+
|
|
|
|
+ //判断是否为转移任务,计划任务转移后,修改计划任务人id
|
|
|
|
+ TaskPlanUpdateStatusInfo taskPlanUpdateStatusInfo = jdbcTemplate.query("select * from c_task_plan_update_status_info where update_type = 2 and approve_task_id = " + approveTaskId + " and plan_task_id = " + dataId, new BeanPropertyRowMapper<>(TaskPlanUpdateStatusInfo.class)).stream().findAny().orElse(null);
|
|
|
|
+ if (taskPlanUpdateStatusInfo != null) {
|
|
|
|
+ jdbcTemplate.execute("update c_project_cost_budget set task_approve = 0,status = 2,task_user = " + taskPlanUpdateStatusInfo.getTransferObject() + " where id = " + taskPlanUpdateStatusInfo.getPlanTaskId());
|
|
|
|
+
|
|
|
|
+ //任务转移后,标记关系信息为转移任务
|
|
|
|
+ jdbcTemplate.execute("update c_expense_task_record set is_transfer = 1 where expense_info_type = 1 and task_id = " + approveTaskId + " and expense_info_id = " + dataId);
|
|
|
|
+
|
|
|
|
+ //删除当前计划任务与日志关系信息(如果任务转移,那么就不属于该用户了,就应该在新用户写日志时,与新用户绑定)
|
|
|
|
+ jdbcTemplate.execute("delete from c_log_history_task_record where task_id = " + dataId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (taskStatus == 3) { //驳回审批
|
|
//task_approve = 0 未开始 , status = 2 进行中
|
|
//task_approve = 0 未开始 , status = 2 进行中
|
|
jdbcTemplate.execute("update c_project_cost_budget set task_approve = 0,status = 2 where id = " + dataId);
|
|
jdbcTemplate.execute("update c_project_cost_budget set task_approve = 0,status = 2 where id = " + dataId);
|
|
}
|
|
}
|
|
@@ -937,9 +965,11 @@ public class TaskProcessServiceImpl extends BaseServiceImpl<TaskProcessMapper, T
|
|
case 1:
|
|
case 1:
|
|
//计划任务
|
|
//计划任务
|
|
ProjectCostBudget projectCostBudget = jdbcTemplate.query("select * from c_project_cost_budget where id = " + dataId, new BeanPropertyRowMapper<>(ProjectCostBudget.class)).stream().findAny().orElse(null);
|
|
ProjectCostBudget projectCostBudget = jdbcTemplate.query("select * from c_project_cost_budget where id = " + dataId, new BeanPropertyRowMapper<>(ProjectCostBudget.class)).stream().findAny().orElse(null);
|
|
- if (projectCostBudget != null && projectCostBudget.getStatus().equals(4)) {
|
|
|
|
|
|
+ if (projectCostBudget != null && projectCostBudget.getStatus().equals(4) && projectCostBudget.getTaskApprove().equals(1)) {
|
|
//已完成任务进行金额统计 budget_count_money(预算总金额) = actual_total_money(实际总金额)
|
|
//已完成任务进行金额统计 budget_count_money(预算总金额) = actual_total_money(实际总金额)
|
|
projectCostBudgetService.update(Wrappers.<ProjectCostBudget>lambdaUpdate().set(ProjectCostBudget::getActualTotalMoney, projectCostBudget.getBudgetCountMoney()).eq(ProjectCostBudget::getId, projectCostBudget.getId()));
|
|
projectCostBudgetService.update(Wrappers.<ProjectCostBudget>lambdaUpdate().set(ProjectCostBudget::getActualTotalMoney, projectCostBudget.getBudgetCountMoney()).eq(ProjectCostBudget::getId, projectCostBudget.getId()));
|
|
|
|
+ } else if (projectCostBudget != null && projectCostBudget.getStatus().equals(2) && projectCostBudget.getTaskApprove().equals(0)) {
|
|
|
|
+ //驳回的任务,删除关联信息 TODO
|
|
}
|
|
}
|
|
|
|
|
|
break;
|
|
break;
|