| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeBindReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeGenerateRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeGenerateReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeGenerateTaskRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodePageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeRawGenerateReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeReplaceReqVO; |
| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeTraceRespVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.bagcode.MesProBagCodeGenerateTaskDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.pro.batch.MesProBatchDO; |
| | | import cn.iocoder.yudao.module.mes.enums.pro.MesProBagCodeGenerateTaskStatusEnum; |
| | | import cn.iocoder.yudao.module.mes.framework.qrcode.QrCodeImageUtils; |
| | | import cn.iocoder.yudao.module.mes.framework.qrexport.MesProQrExportProperties; |
| | | import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.bagcode.MesProBagCodeGenerateTaskService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.bagcode.MesProBagCodeService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.batch.MesProBatchService; |
| | | import cn.iocoder.yudao.module.mes.service.pro.qrexport.MesProQrLabelAssembler; |
| | |
| | | @Resource |
| | | private MesProBagCodeService bagCodeService; |
| | | @Resource |
| | | private MesProBagCodeGenerateTaskService generateTaskService; |
| | | @Resource |
| | | private MesProBatchService batchService; |
| | | @Resource |
| | | private AdminUserApi adminUserApi; |
| | |
| | | public CommonResult<MesProBagCodeGenerateRespVO> generateRawBagCodes( |
| | | @Valid @RequestBody MesProBagCodeRawGenerateReqVO rawGenerateReqVO) { |
| | | return success(bagCodeService.generateRawBagCodes(rawGenerateReqVO)); |
| | | } |
| | | |
| | | @GetMapping("/generate-task/get") |
| | | @Operation(summary = "获得袋码生成任务(大批量生成的进度轮询)") |
| | | @Parameter(name = "id", description = "任务编号", required = true, example = "1024") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-bag-code:query')") |
| | | public CommonResult<MesProBagCodeGenerateTaskRespVO> getGenerateTask(@RequestParam("id") Long id) { |
| | | return success(buildGenerateTaskRespVO(generateTaskService.getTask(id))); |
| | | } |
| | | |
| | | @PostMapping("/generate-task/cancel") |
| | | @Operation(summary = "取消袋码生成任务(停止生成并清理半成品)") |
| | | @Parameter(name = "id", description = "任务编号", required = true, example = "1024") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-bag-code:create')") |
| | | public CommonResult<Boolean> cancelGenerateTask(@RequestParam("id") Long id) { |
| | | generateTaskService.cancel(id); |
| | | return success(true); |
| | | } |
| | | |
| | | @PostMapping("/replace") |
| | |
| | | public CommonResult<PageResult<MesProBagCodeRespVO>> getBagCodePage(@Valid MesProBagCodePageReqVO pageReqVO) { |
| | | PageResult<MesProBagCodeDO> pageResult = bagCodeService.getBagCodePage(pageReqVO); |
| | | return success(new PageResult<>(buildBagCodeRespVOList(pageResult.getList()), pageResult.getTotal())); |
| | | } |
| | | |
| | | @GetMapping("/unbound-ton-bags") |
| | | @Operation(summary = "获得可绑定生产批次的吨袋") |
| | | @PreAuthorize("@ss.hasAnyPermissions('mes:pro-batch:create', 'mes:pro-batch:update', 'mes:pro-bag-code:query')") |
| | | public CommonResult<List<MesProBagCodeRespVO>> getUnboundTonBags() { |
| | | return success(buildBagCodeRespVOList(bagCodeService.getUnboundTonBags())); |
| | | } |
| | | |
| | | @GetMapping("/list-by-uuid") |
| | |
| | | labelAssembler.buildBagBusinessLabels(list)); |
| | | } |
| | | |
| | | private MesProBagCodeGenerateTaskRespVO buildGenerateTaskRespVO(MesProBagCodeGenerateTaskDO task) { |
| | | MesProBagCodeGenerateTaskRespVO respVO = BeanUtils.toBean(task, MesProBagCodeGenerateTaskRespVO.class); |
| | | for (MesProBagCodeGenerateTaskStatusEnum value : MesProBagCodeGenerateTaskStatusEnum.values()) { |
| | | if (value.getStatus().equals(task.getStatus())) { |
| | | respVO.setStatusName(value.getName()); |
| | | break; |
| | | } |
| | | } |
| | | Integer total = task.getTotalCount(); |
| | | if (total == null || total <= 0) { |
| | | respVO.setProgress(0); |
| | | } else { |
| | | int finished = task.getFinishedCount() == null ? 0 : task.getFinishedCount(); |
| | | respVO.setProgress((int) Math.min(100L, (long) finished * 100 / total)); |
| | | } |
| | | return respVO; |
| | | } |
| | | |
| | | private List<MesProBagCodeRespVO> buildBagCodeRespVOList(List<MesProBagCodeDO> list) { |
| | | if (CollUtil.isEmpty(list)) { |
| | | return Collections.emptyList(); |