| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.outsourceissue.vo.line.MesWmOutsourceIssueLineRespVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.wm.outsourceissue.vo.line.MesWmOutsourceIssueLineSaveReqVO; |
| | | import cn.iocoder.yudao.module.mdm.api.item.MdmItemApi; |
| | | import cn.iocoder.yudao.module.mdm.api.item.MdmItemModelApi; |
| | | import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemModelRespDTO; |
| | | import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO; |
| | | |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.batch.MesWmBatchDO; |
| | |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.Collections; |
| | | import java.util.HashSet; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | |
| | | private MesWmOutsourceIssueLineService outsourceIssueLineService; |
| | | @Resource |
| | | private MdmItemApi mdmItemApi; |
| | | @Resource |
| | | private MdmItemModelApi mdmItemModelApi; |
| | | @Resource |
| | | private MdmUnitMeasureApi mdmUnitMeasureApi; |
| | | @Resource |
| | |
| | | // 1. 获得关联数据 |
| | | Map<Long, MdmItemRespDTO> itemMap = mdmItemApi.getItemMap( |
| | | convertSet(list, MesWmOutsourceIssueLineDO::getItemId)); |
| | | Map<Long, MdmUnitMeasureRespDTO> unitMeasureMap = mdmUnitMeasureApi.getUnitMeasureList( |
| | | convertSet(itemMap.values(), MdmItemRespDTO::getUnitMeasureId)).getCheckedData() |
| | | .stream().collect(Collectors.toMap(MdmUnitMeasureRespDTO::getId, e -> e)); |
| | | Set<Long> unitMeasureIds = new HashSet<>(convertSet(itemMap.values(), MdmItemRespDTO::getUnitMeasureId)); |
| | | unitMeasureIds.addAll(convertSet(list, MesWmOutsourceIssueLineDO::getEnterUnitMeasureId)); |
| | | Map<Long, MdmUnitMeasureRespDTO> unitMeasureMap = mdmUnitMeasureApi.getUnitMeasureList(unitMeasureIds) |
| | | .getCheckedData().stream().collect(Collectors.toMap(MdmUnitMeasureRespDTO::getId, e -> e)); |
| | | Map<Long, MdmItemModelRespDTO> itemModelMap = mdmItemModelApi.getItemModelMap( |
| | | convertSet(list, MesWmOutsourceIssueLineDO::getItemModelId)); |
| | | // 1.2 获得批次数据 |
| | | Set<Long> batchIds = convertSet(list, MesWmOutsourceIssueLineDO::getBatchId); |
| | | batchIds.remove(null); |
| | |
| | | // 2. 构建结果 |
| | | return BeanUtils.toBean(list, MesWmOutsourceIssueLineRespVO.class, vo -> { |
| | | MapUtils.findAndThen(itemMap, vo.getItemId(), item -> { |
| | | vo.setItemCode(item.getCode()).setItemName(item.getName()).setSpecification(item.getSpecification()); |
| | | vo.setItemCode(item.getCode()).setItemName(item.getName()).setSpecification(item.getSpecification()) |
| | | .setUnitMeasureId(item.getUnitMeasureId()); |
| | | MapUtils.findAndThen(unitMeasureMap, item.getUnitMeasureId(), |
| | | unitMeasure -> vo.setUnitMeasureName(unitMeasure.getName())); |
| | | }); |
| | | MapUtils.findAndThen(unitMeasureMap, vo.getEnterUnitMeasureId(), |
| | | unitMeasure -> vo.setEnterUnitMeasureName(unitMeasure.getName())); |
| | | MapUtils.findAndThen(itemModelMap, vo.getItemModelId(), |
| | | itemModel -> vo.setItemModel(itemModel.getModel())); |
| | | MapUtils.findAndThen(batchMap, vo.getBatchId(), batch -> vo.setBatchCode(batch.getCode())); |
| | | }); |
| | | } |