futian.liu
2023-12-09 b0254fc60807423cd748f057ed0393ab0e784fce
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;
@@ -280,7 +279,8 @@
        lWhFormTransfer.setOutWarehouseId(wareHouseId);
        lWhFormTransfer.setOutWarehouseName(warehouseName);
        lWhFormTransferService.update(lWhFormTransfer);
        lWhFormTransferCoreService.doTransferOutPut(id, getCurrentUser());
        // lWhFormTransferCoreService.doTransferOutPut(id, getCurrentUser());
        lWhFormTransferCoreService.doTransferOutPutNew(id, getCurrentUser());
        return ResponseValue.success();
    }
@@ -341,9 +341,13 @@
        CommonUtil.copyProperties(param, param2);
        param = param2;
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        String tenantId = sysInfo.getTenantId();
        if (param.getOutAgencyId() == null) {
            param.setOutAgencyId(Long.valueOf(tenantId));
        }
        GenericPager<Map<String, Object>> transferInfoDetailsVoGenericPager =
            this.lWhFormTransferService.queryTransferInfo(param);
@@ -420,57 +424,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 = "查询部门下的分发单")