| | |
| | | package cn.iocoder.yudao.module.mes.controller.admin.qc.template; |
| | | |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| | | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemOptionRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemPageReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.qc.template.vo.item.MesQcTemplateItemSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.qc.template.MesQcTemplateItemDO; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService; |
| | | import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; |
| | | import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateItemService; |
| | | import cn.iocoder.yudao.module.mes.service.qc.template.MesQcTemplateService; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.Parameter; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | |
| | | @Resource |
| | | private MesQcTemplateItemService templateItemService; |
| | | @Resource |
| | | private MesMdItemService mdItemService; |
| | | private MesQcTemplateService templateService; |
| | | @Resource |
| | | private MesMdmItemService mdmItemService; |
| | | @Resource |
| | | private MesMdUnitMeasureService unitMeasureService; |
| | | |
| | |
| | | return success(new PageResult<>(buildItemRespVOList(pageResult.getList()), pageResult.getTotal())); |
| | | } |
| | | |
| | | @GetMapping("/list-by-item-and-type") |
| | | @Operation(summary = "根据物料或工单/任务和检测种类获取可用质检方案") |
| | | @PreAuthorize("@ss.hasPermission('mes:qc-template:query')") |
| | | public CommonResult<List<MesQcTemplateItemOptionRespVO>> getTemplateItemOptionList( |
| | | @RequestParam(value = "qcType", required = false) Integer qcType, |
| | | @RequestParam(value = "itemId", required = false) Long itemId, |
| | | @RequestParam(value = "workOrderId", required = false) Long workOrderId, |
| | | @RequestParam(value = "taskId", required = false) Long taskId) { |
| | | List<MesQcTemplateItemDO> list = templateItemService.getTemplateItemList( |
| | | itemId, qcType, workOrderId, taskId); |
| | | if (CollUtil.isEmpty(list)) { |
| | | return success(Collections.emptyList()); |
| | | } |
| | | Map<Long, MesQcTemplateDO> templateMap = templateService.getTemplateMap( |
| | | convertSet(list, MesQcTemplateItemDO::getTemplateId)); |
| | | List<MesQcTemplateItemOptionRespVO> result = BeanUtils.toBean(list, |
| | | MesQcTemplateItemOptionRespVO.class, vo -> { |
| | | MesQcTemplateDO template = templateMap.get(vo.getTemplateId()); |
| | | if (template != null) { |
| | | vo.setTemplateCode(template.getCode()).setTemplateName(template.getName()); |
| | | } |
| | | }); |
| | | return success(result); |
| | | } |
| | | |
| | | // ==================== 拼接 VO ==================== |
| | | |
| | | private List<MesQcTemplateItemRespVO> buildItemRespVOList(List<MesQcTemplateItemDO> list) { |
| | | if (list.isEmpty()) { |
| | | return Collections.emptyList(); |
| | | } |
| | | // 批量查询物料 |
| | | Map<Long, MesMdItemDO> itemMap = mdItemService.getItemMap( |
| | | // 批量查询物料(itemId 存的是 mdm_item_id,关联 mdm_item 表) |
| | | Map<Long, MesMdmItemDO> itemMap = mdmItemService.getItemMap( |
| | | convertSet(list, MesQcTemplateItemDO::getItemId)); |
| | | // 批量查询计量单位 |
| | | Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap( |
| | | convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); |
| | | convertSet(itemMap.values(), MesMdmItemDO::getUnitMeasureId)); |
| | | // 拼装 VO |
| | | return BeanUtils.toBean(list, MesQcTemplateItemRespVO.class, vo -> { |
| | | findAndThen(itemMap, vo.getItemId(), item -> { |