|
|
@ -19,6 +19,7 @@ import com.ccsens.util.bean.message.common.InMessage; |
|
|
|
import com.ccsens.util.bean.message.common.MessageConstant; |
|
|
|
import com.ccsens.util.config.RabbitMQConfig; |
|
|
|
import com.ccsens.util.exception.BaseException; |
|
|
|
import com.sun.org.apache.bcel.internal.generic.NEW; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.amqp.core.AmqpTemplate; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
@ -60,6 +61,14 @@ public class TaskService implements ITaskService { |
|
|
|
private AmqpTemplate rabbitTemplate; |
|
|
|
@Resource |
|
|
|
private ProTaskProcessDao taskProcessDao; |
|
|
|
@Resource |
|
|
|
private LabelDao labelDao; |
|
|
|
@Resource |
|
|
|
private LabelBusinessDao labelBusinessDao; |
|
|
|
@Resource |
|
|
|
private ProParentTaskDao parentTaskDao; |
|
|
|
@Resource |
|
|
|
private ProRoleTaskDao roleTaskDao; |
|
|
|
|
|
|
|
/** |
|
|
|
* 判断当前用户的角色是否被设置不可见(是否有权限查看任务) |
|
|
@ -188,6 +197,19 @@ public class TaskService implements ITaskService { |
|
|
|
queryTask.setPlugins(plugins); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询任务下的检查人 |
|
|
|
* @param taskList 任务列表 |
|
|
|
*/ |
|
|
|
public void queryCheckerOfTask(List<CTaskVo.QueryTask> taskList) { |
|
|
|
if (CollectionUtil.isNotEmpty(taskList)) { |
|
|
|
for (CTaskVo.QueryTask queryTask : taskList) { |
|
|
|
List<CTaskVo.CheckerOfTask> checkerList = roleTaskDao.queryCheckerOfTask(queryTask.getDetailId()); |
|
|
|
queryTask.setCheckerList(checkerList); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<CTaskVo.QueryTask> queryPermanentGlobalTask(CTaskDto.QueryPermanentGlobalTask param, Long userId) { |
|
|
|
//查找当前角色是否有查看权限
|
|
|
@ -213,7 +235,8 @@ public class TaskService implements ITaskService { |
|
|
|
List<CTaskVo.QueryTask> permanentGlobalTask = taskDetailDao.queryPermanentGlobalTask(roleIds); |
|
|
|
//查找项目面板和插件信息
|
|
|
|
queryPluginForTask(permanentGlobalTask); |
|
|
|
|
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(permanentGlobalTask); |
|
|
|
return permanentGlobalTask; |
|
|
|
} |
|
|
|
|
|
|
@ -242,6 +265,8 @@ public class TaskService implements ITaskService { |
|
|
|
// }
|
|
|
|
List<CTaskVo.QueryTask> globalTask = taskDetailDao.queryGlobalTask(roleIds, param.getTimeNode(), param.getTimeUnit()); |
|
|
|
queryPluginForTask(globalTask); |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(globalTask); |
|
|
|
return globalTask; |
|
|
|
} |
|
|
|
|
|
|
@ -298,9 +323,13 @@ public class TaskService implements ITaskService { |
|
|
|
} |
|
|
|
} |
|
|
|
queryPluginForTask(replenishTask); |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(replenishTask); |
|
|
|
return replenishTask; |
|
|
|
} |
|
|
|
queryPluginForTask(regularTask); |
|
|
|
//查询任务下的检查人
|
|
|
|
queryCheckerOfTask(regularTask); |
|
|
|
return regularTask; |
|
|
|
} |
|
|
|
|
|
|
@ -591,21 +620,114 @@ public class TaskService implements ITaskService { |
|
|
|
if (ObjectUtil.isNull(proTaskDetail)) { |
|
|
|
throw new BaseException(CommonCodeError.NOT_TASK); |
|
|
|
} |
|
|
|
return taskDetailDao.findSonTask(param); |
|
|
|
List<CTaskVo.SonTaskDetail> sonTask = taskDetailDao.findSonTask(param); |
|
|
|
if (CollectionUtil.isNotEmpty(sonTask)) { |
|
|
|
for (CTaskVo.SonTaskDetail sonTaskDetail : sonTask) { |
|
|
|
List<CTaskVo.CheckerOfTask> checkerOfTasks = roleTaskDao.queryCheckerOfTask(sonTaskDetail.getDetailId()); |
|
|
|
sonTaskDetail.setCheckerList(checkerOfTasks); |
|
|
|
} |
|
|
|
} |
|
|
|
return sonTask; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public CTaskVo.QueryTask saveTask(CTaskDto.SaveTask param, Long userId) { |
|
|
|
public List<CTaskVo.QueryTask> saveTask(CTaskDto.SaveTask param, Long userId) { |
|
|
|
//任务详情
|
|
|
|
ProTaskDetail proTaskDetail = new ProTaskDetail(); |
|
|
|
proTaskDetail.setId(snowflake.nextId()); |
|
|
|
proTaskDetail.setName(param.getName()); |
|
|
|
proTaskDetail.setDescription(param.getDescription()); |
|
|
|
taskDetailDao.insertSelective(proTaskDetail); |
|
|
|
//任务分解信息
|
|
|
|
ProTaskSub taskSub = new ProTaskSub(); |
|
|
|
taskSub.setId(snowflake.nextId()); |
|
|
|
taskSub.setPlanStartTime(param.getStartTime()); |
|
|
|
taskSub.setPlanEndTime(param.getEndTime()); |
|
|
|
taskSub.setTaskDetailId(proTaskDetail.getId()); |
|
|
|
taskSubDao.insertSelective(taskSub); |
|
|
|
//任务添加标签(天,普通/日常任务)
|
|
|
|
//天
|
|
|
|
Long labelOfDay = labelDao.getLabelByTypeAndLevel(0, 4); |
|
|
|
LabelBusiness labelDay = new LabelBusiness(); |
|
|
|
labelDay.setId(snowflake.nextId()); |
|
|
|
labelDay.setLabelId(labelOfDay); |
|
|
|
labelDay.setBusinessId(proTaskDetail.getId()); |
|
|
|
labelBusinessDao.insertSelective(labelDay); |
|
|
|
//定期/日常任务
|
|
|
|
LabelBusiness taskOfType = new LabelBusiness(); |
|
|
|
taskOfType.setId(snowflake.nextId()); |
|
|
|
taskOfType.setBusinessId(proTaskDetail.getId()); |
|
|
|
if (1 == param.getGlobal()) { |
|
|
|
Long everyday = labelDao.getLabelByTypeAndLevel(1, 2); |
|
|
|
taskOfType.setLabelId(everyday); |
|
|
|
}else{ |
|
|
|
Long regular = labelDao.getLabelByTypeAndLevel(1, 3); |
|
|
|
taskOfType.setLabelId(regular); |
|
|
|
} |
|
|
|
labelBusinessDao.insertSelective(taskOfType); |
|
|
|
//任务关系表(父任务)(项目id)
|
|
|
|
if (ObjectUtil.isNotNull(param.getParentTaskId())) { |
|
|
|
ProParentTask proParentTask = new ProParentTask(); |
|
|
|
proParentTask.setId(snowflake.nextId()); |
|
|
|
proParentTask.setParentTaskDetailId(param.getParentTaskId()); |
|
|
|
proParentTask.setTaskDetailId(proTaskDetail.getId()); |
|
|
|
parentTaskDao.insertSelective(proParentTask); |
|
|
|
} |
|
|
|
//角色任务关联表(负责人)
|
|
|
|
if (CollectionUtil.isNotEmpty(param.getRoleIdList())) { |
|
|
|
for (Long roleId : param.getRoleIdList()) { |
|
|
|
ProRoleTask roleTask = new ProRoleTask(); |
|
|
|
roleTask.setId(snowflake.nextId()); |
|
|
|
roleTask.setRoleId(roleId); |
|
|
|
roleTask.setTaskId(proTaskDetail.getId()); |
|
|
|
roleTask.setOperator(userId); |
|
|
|
roleTaskDao.insertSelective(roleTask); |
|
|
|
} |
|
|
|
} |
|
|
|
//TODO 检查人(待定)
|
|
|
|
if (CollectionUtil.isNotEmpty(param.getCheckerIdList())) { |
|
|
|
for (Long checkId : param.getCheckerIdList()) { |
|
|
|
ProRoleTask roleTask = new ProRoleTask(); |
|
|
|
roleTask.setId(snowflake.nextId()); |
|
|
|
roleTask.setRoleId(checkId); |
|
|
|
roleTask.setTaskId(proTaskDetail.getId()); |
|
|
|
roleTask.setRoleDuty((byte)1); |
|
|
|
roleTask.setOperator(userId); |
|
|
|
roleTaskDao.insertSelective(roleTask); |
|
|
|
} |
|
|
|
} |
|
|
|
//上下道工序
|
|
|
|
if (ObjectUtil.isNotNull(param.getProcessTaskId())) { |
|
|
|
ProTaskProcess taskProcess = new ProTaskProcess(); |
|
|
|
taskProcess.setId(snowflake.nextId()); |
|
|
|
taskProcess.setTaskDetailId(proTaskDetail.getId()); |
|
|
|
taskProcess.setNextTaskDetailId(param.getProcessTaskId()); |
|
|
|
taskProcess.setProcessType(param.getProcessType()); |
|
|
|
taskProcess.setTimeDifference(param.getTimeDifference()); |
|
|
|
taskProcessDao.insertSelective(taskProcess); |
|
|
|
} |
|
|
|
//插件(添加一个任务名插件)
|
|
|
|
ProTaskPlugin proTaskPlugin = new ProTaskPlugin(); |
|
|
|
proTaskPlugin.setId(snowflake.nextId()); |
|
|
|
proTaskPlugin.setTaskDetailId(proTaskDetail.getId()); |
|
|
|
proTaskPlugin.setPluginId(1L); |
|
|
|
proTaskPlugin.setPlginRow(1); |
|
|
|
proTaskPlugin.setPlginCol(1); |
|
|
|
proTaskPlugin.setRowspan(1); |
|
|
|
proTaskPlugin.setColspan(1); |
|
|
|
taskPluginDao.insertSelective(proTaskPlugin); |
|
|
|
//TODO 交付物(待定)
|
|
|
|
|
|
|
|
return null; |
|
|
|
CTaskVo.QueryTask taskInfo = taskDetailDao.queryTaskById(proTaskDetail.getId()); |
|
|
|
List<CTaskVo.QueryTask> taskList = new ArrayList<>(); |
|
|
|
taskList.add(taskInfo); |
|
|
|
queryPluginForTask(taskList); |
|
|
|
return taskList; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<CTaskVo.TaskOfProject> queryTaskOfProject(CTaskDto.QueryTaskOfProject param, Long userId) { |
|
|
|
return taskDetailDao.queryTaskOfProject(param); |
|
|
|
} |
|
|
|
|
|
|
|
} |