| | |
| | | private MesProTaskPauseRecordMapper pauseRecordMapper; |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | | @Resource |
| | | private cn.iocoder.yudao.module.system.api.permission.PermissionApi permissionApi; |
| | | |
| | | @PostMapping("/create") |
| | | @Operation(summary = "创建生产任务") |
| | |
| | | @Operation(summary = "获得待报工台账分页", description = "已排产且仍有待报工数量的任务(状态=进行中)") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-task:query')") |
| | | public CommonResult<PageResult<MesProTaskRespVO>> getPendingFeedbackPage(@Valid MesProTaskPageReqVO pageReqVO) { |
| | | Long loginUserId = cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId(); |
| | | // 如果当前登录人不是超级管理员,则仅查询分配给自己的生产工单 |
| | | if (loginUserId != null && !permissionApi.hasAnyRoles(loginUserId, cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum.SUPER_ADMIN.getCode())) { |
| | | pageReqVO.setAssigneeUserId(loginUserId); |
| | | } |
| | | PageResult<MesProTaskDO> pageResult = taskService.getPendingFeedbackPage(pageReqVO); |
| | | List<MesProTaskRespVO> respVOList = buildTaskRespVOList(pageResult.getList()); |
| | | |
| | |
| | | inTransitMap.merge(fb.getTaskId(), fbQty, BigDecimal::add); |
| | | } |
| | | } |
| | | |
| | | // 查询指派报工人员 |
| | | Set<Long> taskIds = convertSet(list, MesProTaskDO::getId); |
| | | Map<Long, List<cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskAssigneeDO>> assigneeMap = taskService.getTaskAssigneeMap(taskIds); |
| | | Set<Long> allAssigneeUserIds = new HashSet<>(); |
| | | assigneeMap.values().forEach(assignees -> |
| | | assignees.forEach(assignee -> allAssigneeUserIds.add(assignee.getUserId()))); |
| | | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(allAssigneeUserIds); |
| | | |
| | | // 拼接 VO |
| | | return convertList(list, task -> { |
| | | MesProTaskRespVO vo = BeanUtils.toBean(task, MesProTaskRespVO.class); |
| | |
| | | findAndThen(processCheckMap, task.getProcessId(), vo::setCheckFlag)); |
| | | findAndThen(routeProcessBackflushFlagMap, task.getRouteId(), processBackflushMap -> |
| | | findAndThen(processBackflushMap, task.getProcessId(), vo::setBackflushFlag)); |
| | | |
| | | // 设置指派报工人员 |
| | | List<cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskAssigneeDO> assignees = assigneeMap.get(task.getId()); |
| | | if (CollUtil.isNotEmpty(assignees)) { |
| | | List<Long> assigneeUserIds = convertList(assignees, cn.iocoder.yudao.module.mes.dal.dataobject.pro.task.MesProTaskAssigneeDO::getUserId); |
| | | vo.setAssigneeUserIds(assigneeUserIds); |
| | | List<String> assigneeUserNames = new ArrayList<>(); |
| | | for (Long userId : assigneeUserIds) { |
| | | AdminUserRespDTO user = userMap.get(userId); |
| | | if (user != null && user.getNickname() != null) { |
| | | assigneeUserNames.add(user.getNickname()); |
| | | } |
| | | } |
| | | vo.setAssigneeUserNames(assigneeUserNames); |
| | | } |
| | | |
| | | return vo; |
| | | }); |
| | | } |