| | |
| | | // 1. 构建物料明细 |
| | | if (CollUtil.isNotEmpty(productList)) { |
| | | Map<Long, MdmItemRespDTO> itemMap = mdmItemApi.getItemMap(convertSet(productList, CrmSaleQuotationProductDO::getItemId)); |
| | | java.util.Set<Long> unitIds = new java.util.HashSet<>(convertSet(productList, CrmSaleQuotationProductDO::getItemUnitId)); |
| | | itemMap.values().forEach(item -> { |
| | | if (item.getUnitMeasureId2() != null) { |
| | | unitIds.add(item.getUnitMeasureId2()); |
| | | } |
| | | }); |
| | | Map<Long, MdmUnitMeasureRespDTO> unitMap = convertMap( |
| | | mdmUnitMeasureApi.getUnitMeasureList( |
| | | convertSet(productList, CrmSaleQuotationProductDO::getItemUnitId)).getCheckedData(), |
| | | mdmUnitMeasureApi.getUnitMeasureList(unitIds).getCheckedData(), |
| | | MdmUnitMeasureRespDTO::getId); |
| | | respVO.setItems(BeanUtils.toBean(productList, CrmSaleQuotationRespVO.Item.class, item -> { |
| | | MdmItemRespDTO mdmItem = itemMap.get(item.getItemId()); |
| | |
| | | item.setItemCode(mdmItem.getCode()); |
| | | item.setItemName(mdmItem.getName()); |
| | | item.setItemBarCode(mdmItem.getBarCode()); |
| | | item.setItemSpecification(mdmItem.getSpecification()); |
| | | item.setItemUnitId2(mdmItem.getUnitMeasureId2()); |
| | | item.setItemUnitId3(mdmItem.getUnitMeasureId3()); |
| | | } |
| | | MapUtils.findAndThen(unitMap, item.getItemUnitId(), unit -> item.setItemUnitName(unit.getName())); |
| | | MapUtils.findAndThen(unitMap, item.getItemUnitId2(), unit -> item.setItemUnitName2(unit.getName())); |
| | | MapUtils.findAndThen(unitMap, item.getItemUnitId3(), unit -> item.setItemUnitName3(unit.getName())); |
| | | })); |
| | | } |
| | | // 2. 填充客户名称 |
| | |
| | | Map<Long, List<CrmSaleQuotationProductDO>> productMap = convertMultiMap(productList, CrmSaleQuotationProductDO::getQuotationId); |
| | | // 1.2 物料信息 |
| | | Map<Long, MdmItemRespDTO> itemMap = mdmItemApi.getItemMap(convertSet(productList, CrmSaleQuotationProductDO::getItemId)); |
| | | java.util.Set<Long> unitIds = new java.util.HashSet<>(convertSet(productList, CrmSaleQuotationProductDO::getItemUnitId)); |
| | | itemMap.values().forEach(item -> { |
| | | if (item.getUnitMeasureId2() != null) { |
| | | unitIds.add(item.getUnitMeasureId2()); |
| | | } |
| | | }); |
| | | Map<Long, MdmUnitMeasureRespDTO> unitMap = convertMap( |
| | | mdmUnitMeasureApi.getUnitMeasureList(unitIds).getCheckedData(), |
| | | MdmUnitMeasureRespDTO::getId); |
| | | // 1.3 客户信息 |
| | | Map<Long, CrmCustomerDO> customerMap = customerService.getCustomerMap( |
| | | convertSet(pageResult.getList(), CrmSaleQuotationDO::getCustomerId)); |
| | |
| | | // 2. 开始拼接 |
| | | return BeanUtils.toBean(pageResult, CrmSaleQuotationRespVO.class, vo -> { |
| | | vo.setItems(BeanUtils.toBean(productMap.get(vo.getId()), CrmSaleQuotationRespVO.Item.class, |
| | | item -> MapUtils.findAndThen(itemMap, item.getItemId(), mdmItem -> item.setItemCode(mdmItem.getCode()) |
| | | .setItemName(mdmItem.getName()).setItemBarCode(mdmItem.getBarCode())))); |
| | | item -> { |
| | | MapUtils.findAndThen(itemMap, item.getItemId(), mdmItem -> item |
| | | .setItemCode(mdmItem.getCode()) |
| | | .setItemName(mdmItem.getName()) |
| | | .setItemBarCode(mdmItem.getBarCode()) |
| | | .setItemSpecification(mdmItem.getSpecification()) |
| | | .setItemUnitId2(mdmItem.getUnitMeasureId2()) |
| | | .setItemUnitId3(mdmItem.getUnitMeasureId3())); |
| | | MapUtils.findAndThen(unitMap, item.getItemUnitId(), unit -> item.setItemUnitName(unit.getName())); |
| | | MapUtils.findAndThen(unitMap, item.getItemUnitId2(), unit -> item.setItemUnitName2(unit.getName())); |
| | | MapUtils.findAndThen(unitMap, item.getItemUnitId3(), unit -> item.setItemUnitName3(unit.getName())); |
| | | })); |
| | | MapUtils.findAndThen(customerMap, vo.getCustomerId(), customer -> vo.setCustomerName(customer.getName())); |
| | | MapUtils.findAndThen(userMap, vo.getOwnerUserId(), user -> vo.setOwnerUserName(user.getNickname())); |
| | | MapUtils.findAndThen(deptMap, vo.getOwnerUserId(), dept -> vo.setOwnerUserDeptName(dept.getName())); |
| | |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |