优化资金申领API以获取资产类型名称

This commit is contained in:
furongxin 2024-09-27 22:51:18 +08:00
parent c79170515a
commit 15df1becdf

View File

@ -4,6 +4,8 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.assetClaim.BpmOAAssetClaimCreateReqVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.assetClaim.BpmOAAssetClaimRespVO;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.assetClaim.Receive;
import cn.iocoder.yudao.module.bpm.controller.admin.oa.vo.assetClaim.ReceiveRespVO;
import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.BpmOAAssetClaimDO;
import cn.iocoder.yudao.module.bpm.service.oa.BpmOAAssetClaimService;
import cn.iocoder.yudao.module.system.api.assets.AssetsTypeApi;
@ -17,7 +19,13 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@Tag(name = "管理后台 - OA 资金申领")
@ -46,10 +54,16 @@ public class BpmOAAssetClaimController {
BpmOAAssetClaimDO assetClaimDO = assetClaimService.getAssetClaim(id);
AssetsTypeDTO assetsTypeDTO = assetsTypeApi.get(assetClaimDO.getAssetsTypeId()).getCheckedData();
List<AssetsTypeDTO> assetsTypeDTO = assetsTypeApi.getList(convertList(assetClaimDO.getReceive(), Receive::getAssetsTypeId)).getCheckedData();
Map<Long, String> assetsTypeNameMap = convertMap(assetsTypeDTO, AssetsTypeDTO::getId, AssetsTypeDTO::getName);
List<ReceiveRespVO> respVOS = assetClaimDO.getReceive().stream()
.map(item -> BeanUtils.toBean(item, ReceiveRespVO.class)
.setAssetsTypeName(assetsTypeNameMap.get(item.getAssetsTypeId())))
.collect(Collectors.toList());
return success(BeanUtils.toBean(assetClaimDO, BpmOAAssetClaimRespVO.class)
.setAssetsTypeName(assetsTypeDTO.getName()));
.setReceive(respVOS));
}
@GetMapping("/getByProcessInstanceId")
@ -59,9 +73,15 @@ public class BpmOAAssetClaimController {
BpmOAAssetClaimDO assetClaimDO = assetClaimService.getByProcessInstanceId(processInstanceId);
AssetsTypeDTO assetsTypeDTO = assetsTypeApi.get(assetClaimDO.getAssetsTypeId()).getCheckedData();
List<AssetsTypeDTO> assetsTypeDTO = assetsTypeApi.getList(convertList(assetClaimDO.getReceive(), Receive::getAssetsTypeId)).getCheckedData();
Map<Long, String> assetsTypeNameMap = convertMap(assetsTypeDTO, AssetsTypeDTO::getId, AssetsTypeDTO::getName);
List<ReceiveRespVO> respVOS = assetClaimDO.getReceive().stream()
.map(item -> BeanUtils.toBean(item, ReceiveRespVO.class)
.setAssetsTypeName(assetsTypeNameMap.get(item.getAssetsTypeId())))
.collect(Collectors.toList());
return success(BeanUtils.toBean(assetClaimDO, BpmOAAssetClaimRespVO.class)
.setAssetsTypeName(assetsTypeDTO.getName()));
.setReceive(respVOS));
}
}