9 小时以前 8655501ffb8dbdaf2508e575933063e6731be714
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/pallet/MesProPalletController.java
@@ -10,7 +10,11 @@
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;
@@ -69,10 +73,43 @@
    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")
@@ -155,8 +192,8 @@
    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())