futian.liu
2023-12-08 e53db31914bdbc49aa491e1613986e14fe211445
使用记录保存一次
2个文件已修改
88 ■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 = "查询部门下的分发单")
consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java
@@ -187,14 +187,14 @@
        List<LWhProcureModel> modelList = new ArrayList<>();
        // 判断添加一次使用人记录
        List<LWhFormTransferGoodsInfoParam> type = transferGoods.stream()
        List<LWhFormTransferGoodsInfoParam> recordType = transferGoods.stream()
            .filter(
                item -> businessType == TransferBusinessType.DEPARTMENT_PROCURE.getValue() && item.getModels().stream()
                    .anyMatch(model -> baseGoodsModelsService.queryGoodsModelInfo(model.getBaseGoodsModelsId()).stream()
                        .findFirst().orElse(null).get("type").equals(CategoryType.TYPE_A.getValue())))
            .collect(Collectors.toList());
        LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord();
        if (CollectionUtils.isEmpty(type)) {
        if (!CollectionUtils.isEmpty(recordType)) {
            lWhProcureModelUserRecord.setId(IdUtil.generateId());
            lWhProcureModelUserRecord.setTransBusinessId(lWhFormTransferId);
            lWhProcureModelUserRecord.setOperatorId(sysInfo.getId());