List<ZpCompanyStaffInterest> interestList = auditSaveDTO.getIncumbent().getInterestList(); if (CollUtil.isNotEmpty(interestList)) { for (ZpCompanyStaffInterest entity : interestList) { entity.setStaffId(zpIncumbent.getId()); zpCompanyStaffInterestMapper.insert(entity); } }
时间: 2024-04-18 19:31:22 浏览: 86
根据提供的代码片段,可以看出以下操作的实现逻辑:
1. 首先,从`auditSaveDTO`对象中获取`Incumbent`对象,并从中获取`interestList`列表。
2. 判断`interestList`列表是否非空,如果非空,则执行下面的操作。
3. 遍历`interestList`列表中的每个元素,使用`for`循环来逐个处理。
4. 在循环中,首先将当前`entity`对象的`staffId`属性设置为`zpIncumbent.getId()`。
5. 然后,使用`zpCompanyStaffInterestMapper`实例的`insert`方法将`entity`对象插入到数据库中。
这段代码的作用是将前端传递的`interestList`列表中的每个元素保存到数据库中,并设置对应的`staffId`属性为特定值。请注意,这只是代码片段的一部分,还可能有其他相关代码用于创建和配置相关对象。
需要确保在运行该代码之前,已经正确初始化了相关的对象,例如`auditSaveDTO`、`Incumbent`和`zpCompanyStaffInterestMapper`等。另外,还需要确保数据库连接和相关表结构的正确配置。
相关问题
优化下面的代码 public Page<FinanceCodeDTO> selectFinanceCodePage(FinanceCodeListVO financeCodeListVO) { //根据类型关联查询数据信息 Page<FinanceCodeDTO> page = new Page<>(financeCodeListVO.getPageNo(),financeCodeListVO.getPageSize()); Page<FinanceCodeDTO> dtoPage = financeCodeMapper.financeCodeList(page, financeCodeListVO); List<FinanceCodeDTO> dtos = dtoPage.getRecords(); List<String> contractIds = dtos.stream().map(FinanceCodePO::getContractIds).collect(Collectors.toList()); List<Integer> idList = new ArrayList<>(); contractIds.forEach(ids -> { if (ToolUtil.isNotEmpty(ids) && !ToolUtil.equals("[]",ids)){ List<Integer> list = JSONObject.parseArray(ids, Integer.class); idList.addAll(list); } }); if (ToolUtil.isNotEmpty(idList)){ CustomerContractPO customerContractPO = new CustomerContractPO(); List<CustomerContractPO> customerContractPOS = customerContractPO.selectList(new QueryWrapper<>(customerContractPO).lambda().in(CustomerContractPO::getCustomerContractId, idList)); Map<Integer, String> map = customerContractPOS.stream().collect(Collectors.toMap(CustomerContractPO::getCustomerContractId, CustomerContractPO::getContractName)); dtos.forEach(dto ->{ if (ToolUtil.isNotEmpty(dto.getContractIds())&& !ToolUtil.equals("[]",dto.getContractIds())){ List<Integer> list = JSONObject.parseArray(dto.getContractIds(), Integer.class); List<String> names = new ArrayList<>(); list.forEach(id ->{ names.add(map.get(id)); }); dto.setContractName(String.join(",",names)); } }); dtoPage.setRecords(dtos); } return dtoPage ; }
&& ids.contains(",")) { String[] idsArr = ids.split(","); Arrays.stream(idsArr).forEach(id -> { idList.add(Integer.parseInt(id)); }); } }); List<ContractDTO> contractDTOList = contractMapper.selectContractByIdList(idList); dtos.forEach(dto -> { dto.setContractList(contractDTOList); }); return dtoPage; }答:根据给定的代码,优化的思路是把contractIds通过Arrays.stream()和Integer.parseInt()转换为idList,并通过contractMapper.selectContractByIdList()获取contractDTOList,最后把contractDTOList赋给dtos中每个dto对象。
List<SchemaRowRule> userRowRuleList = schemaRowRuleList.stream() .filter(schemaRowRuleEo -> { List<String> userList = JSONArray.parseArray(schemaRowRuleEo.getRowPermissionUserList(), String.class); List<String> orgList = JSONArray.parseArray(schemaRowRuleEo.getRowPermissionOrgList(), String.class); return userList.contains(userUid) || orgList.contains(orgCode); }) .map(schemaRowRuleEo -> { SchemaRowRule schemaRowRule = SchemaRowRule.builder().build(); BeanUtils.copyProperties(schemaRowRuleEo, schemaRowRule); return schemaRowRule; }) .collect(Collectors.toList()); List<SchemaColumnRule> userColumnRuleList = schemaColumnRuleList.stream() .filter(rule -> { if (StringUtils.isNotEmpty(rule.getColumnPermissionUserList())) { List<String> userList = JSONArray.parseArray(rule.getColumnPermissionUserList(), String.class); return userList.contains(userUid); } else if (StringUtils.isNotEmpty(rule.getColumnPermissionOrgList())) { List<String> orgList = JSONArray.parseArray(rule.getColumnPermissionOrgList(), String.class); return orgList.contains(orgCode); } return false; }) .map(rule -> { SchemaColumnRule columnRule = new SchemaColumnRule(); BeanUtils.copyProperties(rule, columnRule); return columnRule; }) .collect(Collectors.toList());代码优化
可以将一些重复的代码提前抽象出来,例如解析字符串为列表的部分可以提取为一个方法,同时可以使用方法引用的方式替换Lambda表达式,代码如下:
```
private <T> List<T> copyProperties(List<T> sourceList, Supplier<T> targetSupplier) {
return sourceList.stream()
.map(source -> {
T target = targetSupplier.get();
BeanUtils.copyProperties(source, target);
return target;
})
.collect(Collectors.toList());
}
...
List<String> userList = parseJsonArray(schemaRowRuleEo.getRowPermissionUserList());
List<String> orgList = parseJsonArray(schemaRowRuleEo.getRowPermissionOrgList());
List<SchemaRowRule> userRowRuleList = schemaRowRuleList.stream()
.filter(schemaRowRuleEo -> userList.contains(userUid) || orgList.contains(orgCode))
.collect(Collectors.toList());
List<SchemaColumnRule> userColumnRuleList = schemaColumnRuleList.stream()
.filter(rule -> {
List<String> userList = parseJsonArray(rule.getColumnPermissionUserList());
List<String> orgList = parseJsonArray(rule.getColumnPermissionOrgList());
return userList.contains(userUid) || orgList.contains(orgCode);
})
.collect(Collectors.toList());
List<SchemaRowRule> copiedRowRuleList = copyProperties(userRowRuleList, SchemaRowRule::new);
List<SchemaColumnRule> copiedColumnRuleList = copyProperties(userColumnRuleList, SchemaColumnRule::new);
...
private List<String> parseJsonArray(String jsonArray) {
if (StringUtils.isNotEmpty(jsonArray)) {
return JSONArray.parseArray(jsonArray, String.class);
}
return Collections.emptyList();
}
```
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)