Commit b6d1df19 by HlQ

[feat] 添加项目关联合同文件查询接口

[style]
collect(Collectors.toList()) -> toList()
通过 ListUtil、MapUtil 构建 List、Map,修改为 JDK 自带方法
1 parent 1998dfe1
......@@ -12,7 +12,6 @@ import vion.model.RRoleResource;
import vion.service.IRRoleResourceService;
import java.util.List;
import java.util.stream.Collectors;
/**
* 角色资源关联
......@@ -34,7 +33,7 @@ public class RRoleResourceController {
rRoleResource.setRoleId(dto.getRoleId());
rRoleResource.setResourceId(resourceId);
return rRoleResource;
}).collect(Collectors.toList());
}).toList();
roleResourceService.saveBatch(list);
});
return "成功";
......
......@@ -12,7 +12,6 @@ import vion.model.RUserRole;
import vion.service.IRUserRoleService;
import java.util.List;
import java.util.stream.Collectors;
/**
* 用户角色关联
......@@ -34,7 +33,7 @@ public class RUserRoleController {
rUserRole.setUserId(dto.getUserId());
rUserRole.setRoleId(roleId);
return rUserRole;
}).collect(Collectors.toList());
}).toList();
rUserRoleService.saveBatch(list);
});
return "成功";
......
......@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.text.StrUtil;
......@@ -19,7 +18,6 @@ import vion.vo.RoleVO;
import vion.vo.UserVO;
import java.util.List;
import java.util.stream.Collectors;
/**
* 角色管理
......@@ -78,10 +76,10 @@ public class RoleController {
public List<UserVO> listUserById(@PathVariable Long id) {
List<RUserRole> userRoleList = userRoleService.lambdaQuery().eq(RUserRole::getRoleId, id).list();
List<User> userList = Opt.ofEmptyAble(userRoleList)
.map(l -> l.stream().map(RUserRole::getUserId).collect(Collectors.toList()))
.map(l -> l.stream().map(RUserRole::getUserId).toList())
.filter(CollUtil::isNotEmpty)
.map(userIdList -> userService.lambdaQuery().in(User::getId, userIdList).ne(User::getStatus, 5).list())
.orElse(ListUtil.empty());
.orElse(List.of());
return converter.convert(userList, UserVO.class);
}
......@@ -90,10 +88,10 @@ public class RoleController {
public List<ResourceVO> listResourceById(@PathVariable Long id) {
List<RRoleResource> roleResourceList = roleResourceService.lambdaQuery().eq(RRoleResource::getRoleId, id).list();
List<Resource> resourceList = Opt.ofEmptyAble(roleResourceList)
.map(l -> l.stream().map(RRoleResource::getResourceId).collect(Collectors.toList()))
.map(l -> l.stream().map(RRoleResource::getResourceId).toList())
.filter(CollUtil::isNotEmpty)
.map(resourceIdList -> resourceService.lambdaQuery().in(Resource::getId, resourceIdList).list())
.orElse(ListUtil.empty());
.orElse(List.of());
return converter.convert(resourceList, ResourceVO.class);
}
......
......@@ -11,16 +11,12 @@ import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.map.MapUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil;
import org.springframework.web.bind.annotation.*;
import vion.dto.StatusDTO;
import vion.dto.StoreDTO;
import vion.model.RStoreConfederate;
import vion.model.RStoreUser;
import vion.model.Store;
import vion.model.StoreLog;
import vion.model.*;
import vion.service.IRStoreConfederateService;
import vion.service.IRStoreUserService;
import vion.service.IStoreLogService;
......@@ -71,7 +67,7 @@ public class StoreController {
var storeId2UserIdMap = Opt.ofEmptyAble(storeIdList)
.map(l -> storeUserService.lambdaQuery().in(RStoreUser::getStoreId, l).eq(RStoreUser::getIsMain, 1).list())
.map(suList -> suList.stream().collect(Collectors.toMap(RStoreUser::getStoreId, RStoreUser::getUserId)))
.orElse(MapUtil.empty());
.orElse(Map.of());
var voList = converter.convert(storeList, StoreVO.class);
voList.forEach(v -> v.setMainUser(storeId2UserIdMap.getOrDefault(v.getId(), null)));
return voList;
......@@ -179,6 +175,18 @@ public class StoreController {
return storeService.fileDetail(storeIdList);
}
@GetMapping("/store/rContractFile")
@SaCheckPermission(value = "store:contractFile", orRole = "admin")
public List<FileInfo> contractFile(@RequestParam List<Long> storeIdList) {
return storeService.contractFile(storeIdList);
}
@GetMapping("/store/rContractFileDetail")
@SaCheckPermission(value = "store:contractFileDetail", orRole = "admin")
public List<Map<String, Number>> contractFileDetail(@RequestParam List<Long> storeIdList) {
return storeService.contractFileDetail(storeIdList);
}
@GetMapping("/store/logNotify")
@SaCheckPermission(value = "store:logNotify", orRole = "admin")
public String logNotify(Long id, String[] userIdStr) {
......
......@@ -8,7 +8,6 @@ import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.net.url.UrlEncoder;
......@@ -31,7 +30,6 @@ import vion.vo.UserVO;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RestController
......@@ -90,10 +88,10 @@ public class UserController {
@SaCheckPermission(value = "user:role", orRole = "admin")
public List<RoleVO> listRoleById(@PathVariable Long id) {
List<Role> roleList = Opt.ofEmptyAble(userRoleService.lambdaQuery().eq(RUserRole::getUserId, id).list())
.map(l -> l.stream().map(RUserRole::getRoleId).collect(Collectors.toList()))
.map(l -> l.stream().map(RUserRole::getRoleId).toList())
.filter(CollUtil::isNotEmpty)
.map(roleIdList -> roleService.lambdaQuery().in(Role::getId, roleIdList).list())
.orElse(ListUtil.empty());
.orElse(List.of());
return converter.convert(roleList, RoleVO.class);
}
......
......@@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.JsonNode;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.math.NumberUtil;
......@@ -280,7 +279,7 @@ public class ContractRunner {
// 合同更新,同步调用一下更新项目的维保状态
Opt.ofEmptyAble(updContractIdList)
.map(contractIdList -> contractStoreService.lambdaQuery().in(RContractStore::getContractId, contractIdList).list())
.map(csList -> csList.stream().map(RContractStore::getStoreId).collect(Collectors.toList()))
.map(csList -> csList.stream().map(RContractStore::getStoreId).toList())
.filter(CollUtil::isNotEmpty)
.ifPresent(storeService::calMaintainStatus);
......@@ -473,7 +472,7 @@ public class ContractRunner {
@Scheduled(cron = "0 0 1 * * ?")
public void calMaintainStatus() {
log.info("【开始】计算门店维保状态");
storeService.calMaintainStatus(ListUtil.empty());
storeService.calMaintainStatus(List.of());
log.info("【结束】计算门店维保状态");
}
......
......@@ -2,7 +2,6 @@ package vion.interceptor;
import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.stp.StpUtil;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.lang.Opt;
import org.springframework.stereotype.Component;
import vion.model.Resource;
......@@ -10,7 +9,6 @@ import vion.vo.RoleVO;
import vion.vo.UserVO;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author vion
......@@ -23,14 +21,14 @@ public class StpInterfaceImpl implements StpInterface {
public List<String> getPermissionList(Object loginId, String loginType) {
UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser");
return Opt.ofEmptyAble(userVO.getResourceList())
.map(l -> l.stream().map(Resource::getPerm).collect(Collectors.toList()))
.orElse(ListUtil.empty());
.map(l -> l.stream().map(Resource::getPerm).toList())
.orElse(List.of());
}
@Override
public List<String> getRoleList(Object loginId, String loginType) {
UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser");
List<RoleVO> roleVOList = userVO.getRoleVOList();
return Opt.ofEmptyAble(roleVOList).map(list -> list.stream().map(RoleVO::getCode).collect(Collectors.toList())).orElse(ListUtil.empty());
return Opt.ofEmptyAble(roleVOList).map(list -> list.stream().map(RoleVO::getCode).toList()).orElse(List.of());
}
}
......@@ -34,7 +34,7 @@ public class FileInfo {
/**
* 文件来源
* <br>1项目、2工单预处理,3工单操作,4巡检,5合同,6发货记录</br>
* <br>7签订,8到货,9系统初验,10项目终验,11质保,12第一笔维保款,13第二笔维保款,14第三笔维保款</br>
* <br>7签订,8到货,9系统初验,10项目终验,11质保,12第一笔维保款,13第二笔维保款,14第三笔维保款 33维保进度款,34维保验收款</br>
* <br>15结算差异</br>
* <br>16客户提交的门店图纸,17点位设计图,18合同范本,19客户上传的合同,20安装上线,与总部邮件截图</br>
* <br>21服务单等表单富文本编辑器里传图用这个类型</br>
......
......@@ -49,7 +49,7 @@ public interface IContractService extends MPJBaseService<Contract> {
String createContract(String contractJson);
JsonNode getCRMProduct(String name, String code, Integer page, Integer pageSize);
JsonNode getCRMProduct(String name, String code, Integer pageNum, Integer pageSize);
String syncContractFile(String[] contractNoList);
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import com.github.yulichang.base.MPJBaseService;
import jakarta.servlet.http.HttpServletResponse;
import vion.dto.StatusDTO;
import vion.dto.StoreDTO;
import vion.model.FileInfo;
import vion.model.Store;
import vion.vo.StoreVO;
......@@ -28,6 +29,10 @@ public interface IStoreService extends MPJBaseService<Store> {
List<Map<String, Number>> fileDetail(List<Long> storeIdList);
List<FileInfo> contractFile(List<Long> storeIdList);
List<Map<String, Number>> contractFileDetail(List<Long> storeIdList);
Boolean logNotify(Long id, String[] userIdStr);
String addCron(Long storeId, String storeName, String cronStr, String userId);
......
......@@ -98,8 +98,8 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
Page<ContractVO> contractVOList = this.selectJoinListPage(page, ContractVO.class, result.wrapper);
var idList = Opt.ofEmptyAble(contractVOList.getRecords())
.map(r -> r.stream().map(ContractVO::getId).collect(Collectors.toList()))
.orElse(ListUtil.empty());
.map(r -> r.stream().map(ContractVO::getId).toList())
.orElse(List.of());
// 结算差异
Opt.ofEmptyAble(idList)
......@@ -113,7 +113,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.in(RContractUser::getContractId, l)
.list())
.map(list -> list.stream().collect(Collectors.groupingBy(RContractUser::getContractId)))
.ifPresent(map -> contractVOList.getRecords().forEach(vo -> map.getOrDefault(vo.getId(), ListUtil.empty()).stream()
.ifPresent(map -> contractVOList.getRecords().forEach(vo -> map.getOrDefault(vo.getId(), List.of()).stream()
.max(Comparator.comparing(RContractUser::getEnterDate))
.map(RContractUser::getUsername)
.ifPresent(vo::setSaleName)));
......@@ -137,7 +137,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
List<Long> ids = Opt.ofNullable(dto.getStoreId())
.map(storeId -> contractStoreService.listObjs(Wrappers.<RContractStore>lambdaQuery().select(RContractStore::getContractId).eq(RContractStore::getStoreId, dto.getStoreId()), o -> Long.valueOf(o.toString())))
.filter(CollUtil::isNotEmpty)
.orElse(ListUtil.of(0L));
.orElse(List.of(0L));
Page<Contract> contractList = this.lambdaQuery(converter.convert(dto, Contract.class))
.select(Contract::getId, Contract::getName, Contract::getContractNo, Contract::getType, Contract::getSignDate, Contract::getWarrantyPeriod, Contract::getFinalDate, Contract::getStatus, Contract::getSaleName, Contract::getCustomerName, Contract::getMaintainSdate, Contract::getMaintainEdate)
......@@ -159,7 +159,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
Page<ContractVO> contractVOList = this.selectJoinListPage(page, ContractVO.class, result.wrapper);
var idList = Opt.ofEmptyAble(contractVOList.getRecords())
.map(r -> r.stream().map(ContractVO::getId).collect(Collectors.toList()))
.map(r -> r.stream().map(ContractVO::getId).toList())
.orElse(List.of());
// 根据合同关联的项目,获取项目的相关信息
......@@ -178,7 +178,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.map(cs -> cs.stream().map(RContractStore::getStoreId).toList())
.map(storeIds -> storeUserService.lambdaQuery().in(RStoreUser::getStoreId, storeIds).eq(RStoreUser::getIsMain, 1).list())
.map(suList -> suList.stream().collect(Collectors.toMap(RStoreUser::getStoreId, RStoreUser::getUserId)))
.orElse(MapUtil.empty());
.orElse(Map.of());
// 合同绑定销售
Opt.ofEmptyAble(idList)
......@@ -186,7 +186,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.in(RContractUser::getContractId, l)
.list())
.map(list -> list.stream().collect(Collectors.groupingBy(RContractUser::getContractId)))
.ifPresent(map -> contractVOList.getRecords().forEach(vo -> map.getOrDefault(vo.getId(), ListUtil.empty()).stream()
.ifPresent(map -> contractVOList.getRecords().forEach(vo -> map.getOrDefault(vo.getId(), List.of()).stream()
.max(Comparator.comparing(RContractUser::getEnterDate))
.map(RContractUser::getUsername)
.ifPresent(vo::setSaleName)));
......@@ -201,7 +201,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
vo.setDiffAmount(null);
var storeList = contractId2StoresMap.getOrDefault(vo.getId(), List.of()).stream()
.map(storeMap::get)
.collect(Collectors.toList());
.toList();
var storeVOList = converter.convert(storeList, StoreVO.class);
storeVOList.forEach(storeVO -> storeVO.setMainUser(storeId2UserIdMap.getOrDefault(storeVO.getId(), null)));
vo.setStoreVOS(storeVOList);
......@@ -216,19 +216,19 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
*/
private void completeStoreName(List<ContractVO> contractVOList) {
Map<Long, List<Long>> contractStoreIdsMap = Opt.ofEmptyAble(contractVOList)
.map(list -> list.stream().map(ContractVO::getId).collect(Collectors.toList()))
.map(list -> list.stream().map(ContractVO::getId).toList())
.map(contractIds -> contractStoreService.list(Wrappers.<RContractStore>lambdaQuery().in(RContractStore::getContractId, contractIds)))
.map(contractStoreList -> contractStoreList.stream().collect(Collectors.groupingBy(RContractStore::getContractId, Collectors.mapping(RContractStore::getStoreId, Collectors.toList()))))
.orElse(MapUtil.empty());
.orElse(Map.of());
Opt.of(contractStoreIdsMap)
.filter(MapUtil::isNotEmpty)
.map(map -> map.values().stream().flatMap(List::stream).collect(Collectors.toList()))
.map(map -> map.values().stream().flatMap(List::stream).toList())
.map(storeIds -> Db.listByIds(storeIds, Store.class))
.map(storeList -> storeList.stream().collect(Collectors.toMap(Store::getId, Function.identity())))
.ifPresent(storeId2StoreMap -> contractVOList.forEach(contractVO -> {
if (contractStoreIdsMap.containsKey(contractVO.getId())) {
List<StoreVO> storeVOS = converter.convert(contractStoreIdsMap.get(contractVO.getId()).stream().map(storeId2StoreMap::get).collect(Collectors.toList()), StoreVO.class);
List<StoreVO> storeVOS = converter.convert(contractStoreIdsMap.get(contractVO.getId()).stream().map(storeId2StoreMap::get).toList(), StoreVO.class);
contractVO.setStoreVOS(storeVOS);
}
}));
......@@ -425,7 +425,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
BigDecimal recAmount = list.stream().map(v -> CompareUtil.max(BigDecimal.ZERO, v.getReceivableAmount())).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal outAmount = list.stream().map(Contract::getOutstandingAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
List<String> noList = list.stream().map(Contract::getContractNo).collect(Collectors.toList());
List<String> noList = list.stream().map(Contract::getContractNo).toList();
List<BigDecimal> invoices = Db.listObjs(Wrappers.lambdaQuery(Invoice.class).select(Invoice::getInvoiceAmount).in(BeanUtil.isNotEmpty(dto), Invoice::getContractNo, noList), Invoice::getInvoiceAmount);
BigDecimal invoiceAmount = invoices.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
......@@ -460,7 +460,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.lambdaQuery().gt(ContractPayment::getPaymentRatio, 0)
.list())
.map(list -> list.stream().collect(Collectors.groupingBy(ContractPayment::getContractId)))
.orElse(MapUtil.empty());
.orElse(Map.of());
if (MapUtil.isEmpty(id2PaymentMap)) {
return Map.of();
}
......@@ -714,7 +714,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
}
var sha256 = SecureUtil.sha256().digestHex(bytes).toUpperCase();
// sha256 对应的文件不存在已有的文件列表,才保存
if (contractId2Sha256Map.getOrDefault(contractId, ListUtil.empty()).contains(sha256)) {
if (contractId2Sha256Map.getOrDefault(contractId, List.of()).contains(sha256)) {
log.info("合同:{},文件已存在", contractNo);
continue;
}
......
......@@ -67,7 +67,7 @@ public class DeliveryRecordServiceImpl extends MPJBaseServiceImpl<DeliveryRecord
.orderByDesc(DeliveryRecord::getCreateTime);
Page<DeliveryRecordVO> voPage = this.selectJoinListPage(Page.of(dto.getPageNum(), dto.getPageSize()), DeliveryRecordVO.class, wrapper);
Opt.ofEmptyAble(voPage.getRecords())
.map(recs -> recs.stream().map(DeliveryRecordVO::getId).collect(Collectors.toList()))
.map(recs -> recs.stream().map(DeliveryRecordVO::getId).toList())
.map(ids -> {
List<FileInfo> fileInfos = fileService.lambdaQuery().in(FileInfo::getSourceId, ids).eq(FileInfo::getSourceType, 6).list();
return fileInfos.stream().collect(Collectors.groupingBy(FileInfo::getSourceId));
......
......@@ -6,7 +6,6 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.lang.Opt;
import org.springframework.stereotype.Service;
import vion.dto.InspectDTO;
......@@ -44,18 +43,18 @@ public class InspectServiceImpl extends MPJBaseServiceImpl<InspectMapper, Inspec
Page<InspectVO> inspectVOPage = this.selectJoinListPage(Page.of(data.getPageNum(), data.getPageSize()), InspectVO.class, wrapper);
Opt.ofEmptyAble(inspectVOPage.getRecords())
.map(l -> l.stream().map(InspectVO::getId).collect(Collectors.toList()))
.map(l -> l.stream().map(InspectVO::getId).toList())
.map(idList -> formService.lambdaQuery().eq(Form::getSourceId, 2).in(Form::getPid, idList).list())
.filter(CollUtil::isNotEmpty)
.ifPresent(formList -> {
Map<Long, List<FormVO>> inspectId2FormIdMap = formList.stream().collect(Collectors.groupingBy(Form::getPid, Collectors.mapping(form -> converter.convert(form, FormVO.class), Collectors.toList())));
inspectVOPage.getRecords().forEach(inspectVO -> {
inspectVO.setFormList(inspectId2FormIdMap.getOrDefault(inspectVO.getId(), ListUtil.empty()));
inspectVO.setFormList(inspectId2FormIdMap.getOrDefault(inspectVO.getId(), List.of()));
});
});
Opt.ofEmptyAble(inspectVOPage.getRecords())
.map(l -> l.stream().map(InspectVO::getId).collect(Collectors.toList()))
.map(l -> l.stream().map(InspectVO::getId).toList())
.map(idList -> fileService.lambdaQuery().in(FileInfo::getSourceId, idList).eq(FileInfo::getSourceType, 4).list())
.filter(CollUtil::isNotEmpty)
.ifPresent(fileList -> {
......
......@@ -10,7 +10,6 @@ import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.map.MapUtil;
import org.dromara.hutool.core.math.NumberUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil;
......@@ -55,7 +54,7 @@ public class InvoiceServiceImpl extends MPJBaseServiceImpl<InvoiceMapper, Invoic
public Page<InvoiceVO> list(InvoiceDTO dto) {
UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser");
String saleName = Opt.ofEmptyAble(userVO.getRoleVOList())
.map(l -> l.stream().map(RoleVO::getCode).collect(Collectors.toList()))
.map(l -> l.stream().map(RoleVO::getCode).toList())
.map(roleCodeList -> {
if (!roleCodeList.contains("admin") && !roleCodeList.contains("shangwu") && !roleCodeList.contains("caiwu")) {
return userVO.getUsername();
......@@ -81,16 +80,16 @@ public class InvoiceServiceImpl extends MPJBaseServiceImpl<InvoiceMapper, Invoic
List<Invoice> invoiceList = converter.convert(dto, Invoice.class);
this.saveBatch(invoiceList);
List<String> noList = invoiceList.stream().map(Invoice::getContractNo).collect(Collectors.toList());
List<String> noList = invoiceList.stream().map(Invoice::getContractNo).toList();
Map<String, Contract> no2ContractMap = Opt.ofEmptyAble(contractService.lambdaQuery()
.in(Contract::getContractNo, noList).list())
.map(l -> l.stream().collect(Collectors.toMap(Contract::getContractNo, Function.identity())))
.orElse(MapUtil.empty());
.orElse(Map.of());
Map<String, String> no2UseridMap = Opt.ofEmptyAble(contractUserService.lambdaQuery()
.in(RContractUser::getContractNo, noList).list())
.map(l -> l.stream().collect(Collectors.groupingBy(RContractUser::getContractNo, Collectors.mapping(RContractUser::getUserId, Collectors.joining(",")))))
.orElse(MapUtil.empty());
.orElse(Map.of());
// 推送钉钉消息
invoiceList.forEach(i -> {
String contractNo = i.getContractNo();
......
......@@ -11,7 +11,6 @@ import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.map.MapUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil;
import org.springframework.stereotype.Service;
......@@ -57,7 +56,7 @@ public class PaymentServiceImpl extends MPJBaseServiceImpl<PaymentMapper, Paymen
public Page<PaymentVO> list(PaymentDTO dto) {
UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser");
String saleName = Opt.ofEmptyAble(userVO.getRoleVOList())
.map(l -> l.stream().map(RoleVO::getCode).collect(Collectors.toList()))
.map(l -> l.stream().map(RoleVO::getCode).toList())
.map(roleCodeList -> {
if (!roleCodeList.contains("admin") && !roleCodeList.contains("shangwu") && !roleCodeList.contains("caiwu")) {
return userVO.getUsername();
......@@ -90,16 +89,16 @@ public class PaymentServiceImpl extends MPJBaseServiceImpl<PaymentMapper, Paymen
this.updateById(p);
}
});
List<String> noList = paymentList.stream().map(Payment::getContractNo).collect(Collectors.toList());
List<String> noList = paymentList.stream().map(Payment::getContractNo).toList();
Map<String, Contract> no2ContractMap = Opt.ofEmptyAble(contractService.lambdaQuery()
.in(Contract::getContractNo, noList).list())
.map(l -> l.stream().collect(Collectors.toMap(Contract::getContractNo, Function.identity())))
.orElse(MapUtil.empty());
.orElse(Map.of());
Map<String, String> no2UseridMap = Opt.ofEmptyAble(contractUserService.lambdaQuery()
.in(RContractUser::getContractNo, noList).list())
.map(l -> l.stream().collect(Collectors.groupingBy(RContractUser::getContractNo, Collectors.mapping(RContractUser::getUserId, Collectors.joining(",")))))
.orElse(MapUtil.empty());
.orElse(Map.of());
// 推送钉钉消息
paymentList.forEach(p -> {
String contractNo = p.getContractNo();
......
......@@ -172,7 +172,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po
Opt.ofNullable(dto.getContractTemplateFile()).ifPresent(infile -> {
Opt.ofNullable(fileService.lambdaQuery().eq(FileInfo::getSourceId, finalId).eq(FileInfo::getSourceType, 18).list()).ifPresent(fileInfos -> {
fileInfos.stream().map(FileInfo::getUrl).forEach(FileUtil::del);
fileService.removeBatchByIds(fileInfos.stream().map(FileInfo::getId).collect(Collectors.toList()));
fileService.removeBatchByIds(fileInfos.stream().map(FileInfo::getId).toList());
});
dto.setSourceType(18);
saveFile(finalId, infile, dto);
......@@ -279,7 +279,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po
Opt.ofEmptyAble(pointInfoVO.getRecords())
.ifPresent(vos -> {
List<Long> ids = vos.stream().map(PointInfoVO::getId).collect(Collectors.toList());
List<Long> ids = vos.stream().map(PointInfoVO::getId).toList();
List<FileInfo> fileInfoList = fileService.lambdaQuery()
.in(FileInfo::getSourceId, ids)
.in(FileInfo::getSourceType, ListUtil.of(5, 16, 17, 18, 19, 20)).list();
......@@ -333,7 +333,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po
var fileList = fileService.lambdaQuery().eq(FileInfo::getSourceId, id).in(FileInfo::getSourceType,
ListUtil.of(5, 16, 17, 18, 19, 20)).list();
fileList.forEach(f -> FileUtil.del(f.getUrl()));
fileService.removeBatchByIds(fileList.stream().map(FileInfo::getId).collect(Collectors.toList()));
fileService.removeBatchByIds(fileList.stream().map(FileInfo::getId).toList());
pointWxService.lambdaUpdate().eq(RPointWx::getPointId, id).remove();
rejectInfoService.lambdaUpdate().eq(RejectInfo::getPointId, id).remove();
pointDeviceService.lambdaUpdate().eq(RPointDevice::getPointId, id).remove();
......@@ -439,7 +439,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po
pointDevice.setPointId(pointInfo.getId());
pointDevice.setDeviceNo(no);
return pointDevice;
}).collect(Collectors.toList());
}).toList();
return pointDeviceService.saveBatch(pointDeviceList) ? "提交成功" : "提交失败";
}
......
......@@ -57,7 +57,7 @@ public class ServiceOrderServiceImpl extends MPJBaseServiceImpl<ServiceOrderMapp
List<Long> taskIds = Opt.ofNullable(data.getStoreId())
.map(storeId -> Db.listObjs(Wrappers.lambdaQuery(Task.class).eq(Task::getStoreId, storeId), Task::getId))
.orElse(ListUtil.empty());
.orElse(List.of());
Page<ServiceOrder> serviceOrderPage = this.lambdaQuery(serviceOrder)
.in(CollUtil.isNotEmpty(taskIds), ServiceOrder::getTaskId, taskIds)
.page(Page.of(data.getPageNum(), data.getPageSize()));
......
......@@ -104,12 +104,12 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
Set<Long> taskIdSet = SetUtil.zero();
Opt.ofEmptyAble(userVO.getRoleVOList())
.map(l -> l.stream().map(RoleVO::getCode).collect(Collectors.toList()))
.map(l -> l.stream().map(RoleVO::getCode).toList())
.map(roleCodeList -> {
if (CollUtil.contains(roleCodeList, "task_admin") || CollUtil.contains(roleCodeList, "admin")) {
FaultLog log = new FaultLog();
log.setTaskId(0L);
return ListUtil.of(log);
return List.of(log);
} else {
List<FaultLog> logList = faultLogService.lambdaQuery()
.select(FaultLog::getTaskId)
......@@ -123,7 +123,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
// 当前处理人的工单也要加入筛选条件
Long id = userVO.getId();
Opt.ofEmptyAble(this.lambdaQuery().eq(Task::getActiveUser, id).list())
.map(l -> l.stream().map(Task::getId).collect(Collectors.toList()))
.map(l -> l.stream().map(Task::getId).toList())
.ifPresent(taskIdSet::addAll);
return logList;
}
......
......@@ -143,7 +143,7 @@ public class TaskTempServiceImpl extends MPJBaseServiceImpl<TaskTempMapper, Task
.eq(TaskTemp::getRepairPhone, phone)
.orderByDesc(TaskTemp::getCreateTime);
var voList = this.selectJoinList(TaskTempVO.class, wrapper);
var filterList = voList.stream().filter(BeanUtil::isNotEmpty).collect(Collectors.toList());
var filterList = voList.stream().filter(BeanUtil::isNotEmpty).toList();
if (CollUtil.isNotEmpty(filterList) && filterList.size() > 1) {
return Map.of("accountId", filterList.getFirst().getAccountId(), "storeId", filterList.getFirst().getStoreId());
......
......@@ -64,11 +64,11 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem
.selectAll(Role.class)
.select(RUserRole::getUserId)
.leftJoin(RUserRole.class, RUserRole::getRoleId, Role::getId)
.in(RUserRole::getUserId, Opt.ofEmptyAble(userVOS.getRecords().stream().map(UserVO::getId).collect(Collectors.toList())).orElse(ListUtil.of(-1L)));
.in(RUserRole::getUserId, Opt.ofEmptyAble(userVOS.getRecords().stream().map(UserVO::getId).toList()).orElse(List.of(-1L)));
var roleVOList = roleService.selectJoinList(RoleVO.class, roleWrapper);
Opt.ofEmptyAble(roleVOList)
.map(l -> l.stream().collect(Collectors.groupingBy(RoleVO::getUserId)))
.ifPresent(m -> userVOS.getRecords().forEach(u -> u.setRoleVOList(m.getOrDefault(u.getId(), ListUtil.empty()))));
.ifPresent(m -> userVOS.getRecords().forEach(u -> u.setRoleVOList(m.getOrDefault(u.getId(), List.of()))));
return userVOS;
}
......
......@@ -34,7 +34,6 @@ import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author vion
......@@ -418,17 +417,17 @@ public class DingMod {
private void setRolesAndPerms(Long id, UserVO userVO) {
List<RUserRole> userRoleList = userRoleService.lambdaQuery().eq(RUserRole::getUserId, id).list();
List<RRoleResource> roleResourceList = Opt.ofEmptyAble(userRoleList)
.map(urList -> urList.stream().map(RUserRole::getRoleId).collect(Collectors.toList()))
.map(urList -> urList.stream().map(RUserRole::getRoleId).toList())
.map(roleIdList -> {
// 获取用户关联的角色
List<Role> roles = roleService.listByIds(roleIdList);
List<RoleVO> roleVOS = converter.convert(roles, RoleVO.class);
userVO.setRoleVOList(roleVOS);
return roleResourceService.lambdaQuery().select(RRoleResource::getResourceId).in(RRoleResource::getRoleId, roleIdList).list();
}).orElse(ListUtil.empty());
}).orElse(List.of());
// 获取角色关联的资源
Opt.ofEmptyAble(roleResourceList)
.map(rrList -> rrList.stream().map(RRoleResource::getResourceId).collect(Collectors.toList()))
.map(rrList -> rrList.stream().map(RRoleResource::getResourceId).toList())
.ifPresent(resourceIdList -> {
List<Resource> resourceList = resourceService.listByIds(resourceIdList);
userVO.setResourceList(resourceList);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!