| | |
| | | import cn.iocoder.yudao.framework.common.util.collection.MapUtils; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeBindBatchReqVO; |
| | | 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.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.MesProBagCodeReplaceRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.pro.bagcode.vo.MesProBagCodeRespVO; |
| | |
| | | return success(bagCodeService.generateBagCodes(generateReqVO)); |
| | | } |
| | | |
| | | @PostMapping("/raw-generate") |
| | | @Operation(summary = "生成原始袋码(仅选品种与袋码数量,不关联计量单位类型、不生成托盘)") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-bag-code:create')") |
| | | public CommonResult<MesProBagCodeGenerateRespVO> generateRawBagCodes( |
| | | @Valid @RequestBody MesProBagCodeRawGenerateReqVO rawGenerateReqVO) { |
| | | return success(bagCodeService.generateRawBagCodes(rawGenerateReqVO)); |
| | | } |
| | | |
| | | @PostMapping("/replace") |
| | | @Operation(summary = "作废破损袋码并生成等量替换袋码") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-bag-code:replace')") |
| | |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-bag-code:delete')") |
| | | public CommonResult<Boolean> deleteBagCodesByUuid(@RequestParam("uuid") String uuid) { |
| | | bagCodeService.deleteBagCodesByUuid(uuid); |
| | | return success(true); |
| | | } |
| | | |
| | | @PutMapping("/bind-batch") |
| | | @Operation(summary = "袋码录入生产批次") |
| | | @PreAuthorize("@ss.hasPermission('mes:pro-bag-code:update')") |
| | | public CommonResult<Boolean> bindBatch(@Valid @RequestBody MesProBagCodeBindBatchReqVO bindReqVO) { |
| | | bagCodeService.bindBatch(bindReqVO); |
| | | return success(true); |
| | | } |
| | | |
| | |
| | | .setProduceDate(batch.getProduceDate()) |
| | | .setLineCode(batch.getLineCode()) |
| | | .setLineName(batch.getLineName()) |
| | | .setOwnerUserId(batch.getOwnerUserId()) |
| | | .setItemId(batch.getItemId()); |
| | | .setOwnerUserId(batch.getOwnerUserId()); |
| | | // 责任人 |
| | | if (batch.getOwnerUserId() != null) { |
| | | AdminUserRespDTO user = adminUserApi.getUser(batch.getOwnerUserId()); |
| | |
| | | respVO.setOwnerUserName(user.getNickname()); |
| | | } |
| | | } |
| | | // 品种信息 |
| | | if (batch.getItemId() != null) { |
| | | MesMdmItemDO item = mdmItemService.getItem(batch.getItemId()); |
| | | if (item != null) { |
| | | respVO.setItemCode(item.getCode()) |
| | | .setItemName(item.getName()) |
| | | .setItemSpecification(item.getSpecification()); |
| | | } |
| | | } |
| | | // 品种信息:优先取袋码上的品种(数据包生成时绑定),历史袋码回退批次品种 |
| | | Long itemId = bagCode.getItemId() != null ? bagCode.getItemId() |
| | | : (batch == null ? null : batch.getItemId()); |
| | | if (itemId != null) { |
| | | MesMdmItemDO item = mdmItemService.getItem(itemId); |
| | | if (item != null) { |
| | | respVO.setItemId(itemId) |
| | | .setItemCode(item.getCode()) |
| | | .setItemName(item.getName()) |
| | | .setItemSpecification(item.getSpecification()); |
| | | } |
| | | } |
| | | return respVO; |
| | |
| | | * 构建袋码二维码标签列表(二维码编码纯码值,图片叠加关键信息文字) |
| | | */ |
| | | private List<QrLabelInfo> buildBagCodeQrLabels(List<MesProBagCodeDO> list) { |
| | | // 1. 获得关联数据(批次、品种、责任人) |
| | | // 1. 获得关联数据(批次、品种、责任人);品种集合含袋码自身品种与历史批次品种 |
| | | Map<Long, MesProBatchDO> batchMap = convertMap( |
| | | batchService.getBatchList(convertSet(list, MesProBagCodeDO::getBatchId)), MesProBatchDO::getId); |
| | | Map<Long, MesMdmItemDO> itemMap = mdmItemService.getItemMap( |
| | | convertSet(batchMap.values(), MesProBatchDO::getItemId)); |
| | | Set<Long> itemIds = convertSet(list, MesProBagCodeDO::getItemId); |
| | | itemIds.addAll(convertSet(batchMap.values(), MesProBatchDO::getItemId)); |
| | | Map<Long, MesMdmItemDO> itemMap = mdmItemService.getItemMap(itemIds); |
| | | Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap( |
| | | convertSet(batchMap.values(), MesProBatchDO::getOwnerUserId)); |
| | | // 2. 构建标签 |