| | |
| | | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletBatchCreateReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletBindBatchReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletExportQrReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletPreGenerateReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletPreGenerateRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.pallet.vo.MesProPalletTraceRespVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO; |
| | |
| | | private AdminUserApi adminUserApi; |
| | | |
| | | @PostMapping("/batch-create") |
| | | @Operation(summary = "批量生成托盘码") |
| | | @Operation(summary = "批量生成托盘码(一次录入批次生成正式托盘码)") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-pallet:create')") |
| | | public CommonResult<List<Long>> batchCreatePallet(@Valid @RequestBody MesProPalletBatchCreateReqVO createReqVO) { |
| | | return success(palletService.batchCreatePallet(createReqVO)); |
| | | } |
| | | |
| | | @PostMapping("/pre-generate") |
| | | @Operation(summary = "预生成托盘码二维码(仅生成临时托盘码,不绑定生产批次)") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-pallet:create')") |
| | | public CommonResult<List<MesProPalletPreGenerateRespVO>> preGeneratePallet( |
| | | @Valid @RequestBody MesProPalletPreGenerateReqVO preGenerateReqVO) { |
| | | List<MesProPalletDO> list = palletService.preGeneratePallet(preGenerateReqVO); |
| | | return success(BeanUtils.toBean(list, MesProPalletPreGenerateRespVO.class)); |
| | | } |
| | | |
| | | @PutMapping("/bind-batch") |
| | | @Operation(summary = "托盘码绑定生产批次(生成正式托盘码)") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-pallet:update')") |
| | | public CommonResult<Boolean> bindBatch(@Valid @RequestBody MesProPalletBindBatchReqVO bindReqVO) { |
| | | palletService.bindBatch(bindReqVO); |
| | | return success(true); |
| | | } |
| | | |
| | | @PostMapping("/export-qr-by-ids") |
| | | @Operation(summary = "按托盘码编号列表批量导出二维码图片 ZIP(支持未绑定批次的临时托盘)") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-pallet:export')") |
| | | @ApiAccessLog(operateType = EXPORT) |
| | | public void exportPalletQrByIds(@Valid @RequestBody MesProPalletExportQrReqVO exportReqVO, |
| | | HttpServletResponse response) throws IOException { |
| | | List<MesProPalletDO> list = palletService.getPalletListByIds(exportReqVO.getIds()); |
| | | if (CollUtil.isEmpty(list)) { |
| | | throw exception(PRO_PALLET_NOT_EXISTS); |
| | | } |
| | | if (list.size() > QrCodeImageUtils.MAX_QR_EXPORT) { |
| | | throw exception(PRO_QR_EXPORT_TOO_MANY); |
| | | } |
| | | QrCodeImageUtils.writeZip(response, "托盘码二维码", buildPalletQrLabels(list)); |
| | | } |
| | | |
| | | @DeleteMapping("/delete") |
| | |
| | | |
| | | private MesProPalletTraceRespVO buildPalletTraceRespVO(MesProPalletDO pallet) { |
| | | MesProPalletTraceRespVO respVO = BeanUtils.toBean(pallet, MesProPalletTraceRespVO.class); |
| | | // 批次信息 |
| | | MesProBatchDO batch = batchService.getBatch(pallet.getBatchId()); |
| | | // 批次信息(临时托盘未绑定批次时为空批次) |
| | | MesProBatchDO batch = pallet.getBatchId() == null ? null : batchService.getBatch(pallet.getBatchId()); |
| | | if (batch != null) { |
| | | respVO.setBatchStatus(batch.getStatus()) |
| | | .setProduceDate(batch.getProduceDate()) |