| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.GanttDataRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskAutoGeneratePreviewRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskAutoGenerateReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskPauseReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskResumeReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskSaveReqVO; |
| | |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO; |
| | | import cn.iocoder.yudao.module.mes.enums.pro.MesProFeedbackStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.service.pro.feedback.MesProFeedbackService; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskPauseRecordDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.pro.task.MesProTaskPauseRecordMapper; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.task.vo.MesProTaskPauseRecordRespVO; |
| | | import cn.iocoder.yudao.module.system.api.user.AdminUserApi; |
| | | import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; |
| | | |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | |
| | | private MesProRouteProcessService routeProcessService; |
| | | @Resource |
| | | private MesProFeedbackService feedbackService; |
| | | @Resource |
| | | private MesProTaskPauseRecordMapper pauseRecordMapper; |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "创建生产任务") |
| | |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-task:delete')") |
| | | public CommonResult<Boolean> deleteTask(@RequestParam("id") Long id) { |
| | | taskService.deleteTask(id); |
| | | return success(true); |
| | | } |
| | | |
| | | @PutMapping("/pause") |
| | | @Operation(summary = "生产任务停工") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-task:update')") |
| | | public CommonResult<Boolean> pauseTask(@Valid @RequestBody MesProTaskPauseReqVO pauseReqVO) { |
| | | taskService.pauseTask(pauseReqVO); |
| | | return success(true); |
| | | } |
| | | |
| | | @PutMapping("/resume") |
| | | @Operation(summary = "生产任务复工") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-task:update')") |
| | | public CommonResult<Boolean> resumeTask(@Valid @RequestBody MesProTaskResumeReqVO resumeReqVO) { |
| | | taskService.resumeTask(resumeReqVO); |
| | | return success(true); |
| | | } |
| | | |
| | |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-task:query')") |
| | | public CommonResult<PageResult<MesProTaskRespVO>> getPendingFeedbackPage(@Valid MesProTaskPageReqVO pageReqVO) { |
| | | PageResult<MesProTaskDO> pageResult = taskService.getPendingFeedbackPage(pageReqVO); |
| | | return success(new PageResult<>(buildTaskRespVOList(pageResult.getList()), pageResult.getTotal())); |
| | | List<MesProTaskRespVO> respVOList = buildTaskRespVOList(pageResult.getList()); |
| | | |
| | | if (CollUtil.isNotEmpty(respVOList)) { |
| | | Set<Long> taskIds = convertSet(respVOList, MesProTaskRespVO::getId); |
| | | List<MesProTaskPauseRecordDO> records = pauseRecordMapper.selectListByTaskIds(taskIds); |
| | | if (CollUtil.isNotEmpty(records)) { |
| | | Set<Long> userIds = new HashSet<>(); |
| | | records.forEach(r -> { |
| | | if (r.getPauseUserId() != null) userIds.add(r.getPauseUserId()); |
| | | if (r.getResumeUserId() != null) userIds.add(r.getResumeUserId()); |
| | | }); |
| | | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds); |
| | | |
| | | Map<Long, List<MesProTaskPauseRecordRespVO>> pauseRecordMap = new HashMap<>(); |
| | | for (MesProTaskPauseRecordDO record : records) { |
| | | MesProTaskPauseRecordRespVO vo = BeanUtils.toBean(record, MesProTaskPauseRecordRespVO.class); |
| | | if (record.getPauseUserId() != null && userMap.containsKey(record.getPauseUserId())) { |
| | | vo.setPauseUserName(userMap.get(record.getPauseUserId()).getNickname()); |
| | | } |
| | | if (record.getResumeUserId() != null && userMap.containsKey(record.getResumeUserId())) { |
| | | vo.setResumeUserName(userMap.get(record.getResumeUserId()).getNickname()); |
| | | } |
| | | pauseRecordMap.computeIfAbsent(record.getTaskId(), k -> new ArrayList<>()).add(vo); |
| | | } |
| | | respVOList.forEach(vo -> vo.setPauseRecords(pauseRecordMap.get(vo.getId()))); |
| | | } |
| | | } |
| | | |
| | | return success(new PageResult<>(respVOList, pageResult.getTotal())); |
| | | } |
| | | |
| | | @GetMapping("/gantt-list") |