cy
2023-12-08 c38a400aba3221fdff0bb576d177c1a6a590ecb7
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -6,7 +6,6 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -420,57 +419,56 @@
    @ApiImplicitParams({@ApiImplicitParam(name = "transferOrderId", value = "调拨单id", required = true)})
    @GetMapping("/use/record")
    public ResponseValue useRecord(Long transferOrderId) {
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        List<UseRecordDTO> useRecordDTOList = lWhProcureModelUserService.selectUseRecord(transferOrderId);
        if (CollectionUtils.isEmpty(useRecordDTOList)) {
            return ResponseValue.error("未查询到使用记录");
        }
        List<GoodsUseRecordVO> goodsUseRecordList = Lists.newArrayList();
        // 分组
        Map<Long, List<UseRecordDTO>> groupedRecords =
            useRecordDTOList.stream().collect(Collectors.groupingBy(UseRecordDTO::getId));
        for (Entry<Long, List<UseRecordDTO>> entry : groupedRecords.entrySet()) {
            Long id = entry.getKey();
            List<UseRecordDTO> useRecordList = entry.getValue();
            UseRecordDTO useRecordDto = useRecordList.get(0);
            // 开始循环value
            GoodsUseRecordVO goodsUseRecordVO = new GoodsUseRecordVO();
            goodsUseRecordVO.setId(id);
            goodsUseRecordVO.setUpdateUserName(useRecordDto.getUpdateUserName());
            goodsUseRecordVO.setUpdateTime(useRecordDto.getUpdateTime());
            List<UseRecordSkuVO> useRecordSkuList = Lists.newArrayList();
            useRecordList.stream().collect(Collectors.groupingBy(UseRecordDTO::getProcureModelId))
                .forEach((key, recordList) -> {
                    UseRecordDTO useRecordDTO = recordList.get(0);
                    UseRecordSkuVO useRecordSkuVO = new UseRecordSkuVO();
                    useRecordSkuVO.setBaseGoodModelId(useRecordDTO.getBaseGoodsModelsId());
                    useRecordSkuVO.setBaseGoodModelName(useRecordDTO.getBaseGoodsModelsName());
                    useRecordSkuVO.setUnit(useRecordDTO.getUnit());
                    useRecordSkuVO.setProcureModelId(useRecordDTO.getProcureModelId());
                    List<RecordUserInfoVO> recordUserInfoList = Lists.newArrayList();
                    for (UseRecordDTO userInfo : recordList) {
                        RecordUserInfoVO recordUserInfoVO = new RecordUserInfoVO();
                        recordUserInfoVO.setUseName(userInfo.getUseName());
                        recordUserInfoVO.setPhone(userInfo.getPhone());
                        recordUserInfoVO.setNum(userInfo.getNum());
                        recordUserInfoList.add(recordUserInfoVO);
                    }
                    useRecordSkuVO.setRecordUserInfos(recordUserInfoList);
                    useRecordSkuList.add(useRecordSkuVO);
                });
            goodsUseRecordVO.setRecordSkuDtoList(useRecordSkuList);
            goodsUseRecordList.add(goodsUseRecordVO);
        }
        // 分组之后重新排序
        List<GoodsUseRecordVO> result = goodsUseRecordList
            .stream().sorted(Comparator
                .comparing(GoodsUseRecordVO::getUpdateTime, Comparator.nullsFirst(Long::compareTo)).reversed())
        List<GoodsUseRecordVO> goodsUseRecordList = useRecordDTOList.stream()
            .collect(Collectors.groupingBy(UseRecordDTO::getId)).entrySet().stream().map(entry -> {
                Long id = entry.getKey();
                List<UseRecordDTO> useRecordList = entry.getValue();
                UseRecordDTO useRecordDto = useRecordList.get(0);
                GoodsUseRecordVO goodsUseRecordVO = new GoodsUseRecordVO();
                goodsUseRecordVO.setId(id);
                goodsUseRecordVO.setUpdateUserName(useRecordDto.getUpdateUserName());
                goodsUseRecordVO.setUpdateTime(useRecordDto.getUpdateTime());
                List<UseRecordSkuVO> useRecordSkuList =
                    useRecordList.stream().collect(Collectors.groupingBy(UseRecordDTO::getProcureModelId)).values()
                        .stream().map(recordList -> {
                            UseRecordDTO useRecordDTO = recordList.get(0);
                            UseRecordSkuVO useRecordSkuVO = new UseRecordSkuVO();
                            useRecordSkuVO.setBaseGoodModelId(useRecordDTO.getBaseGoodsModelsId());
                            useRecordSkuVO.setBaseGoodModelName(useRecordDTO.getBaseGoodsModelsName());
                            useRecordSkuVO.setUnit(useRecordDTO.getUnit());
                            useRecordSkuVO.setProcureModelId(useRecordDTO.getProcureModelId());
                            List<RecordUserInfoVO> recordUserInfoList = recordList.stream().map(userInfo -> {
                                RecordUserInfoVO recordUserInfoVO = new RecordUserInfoVO();
                                recordUserInfoVO.setUseName(userInfo.getUseName());
                                recordUserInfoVO.setPhone(userInfo.getPhone());
                                recordUserInfoVO.setNum(userInfo.getNum());
                                return recordUserInfoVO;
                            }).collect(Collectors.toList());
                            useRecordSkuVO.setRecordUserInfos(recordUserInfoList);
                            return useRecordSkuVO;
                        }).collect(Collectors.toList());
                goodsUseRecordVO.setRecordSkuDtoList(useRecordSkuList);
                return goodsUseRecordVO;
            }).sorted(Comparator.comparing(GoodsUseRecordVO::getUpdateTime, Comparator.nullsFirst(Long::compareTo))
                .reversed())
            .collect(Collectors.toList());
        return ResponseValue.success(result);
        return ResponseValue.success(goodsUseRecordList);
    }
    @ApiOperation(value = "查询部门下的分发单", notes = "查询部门下的分发单")