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; ...@@ -12,7 +12,6 @@ import vion.model.RRoleResource;
import vion.service.IRRoleResourceService; import vion.service.IRRoleResourceService;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 角色资源关联 * 角色资源关联
...@@ -34,7 +33,7 @@ public class RRoleResourceController { ...@@ -34,7 +33,7 @@ public class RRoleResourceController {
rRoleResource.setRoleId(dto.getRoleId()); rRoleResource.setRoleId(dto.getRoleId());
rRoleResource.setResourceId(resourceId); rRoleResource.setResourceId(resourceId);
return rRoleResource; return rRoleResource;
}).collect(Collectors.toList()); }).toList();
roleResourceService.saveBatch(list); roleResourceService.saveBatch(list);
}); });
return "成功"; return "成功";
......
...@@ -12,7 +12,6 @@ import vion.model.RUserRole; ...@@ -12,7 +12,6 @@ import vion.model.RUserRole;
import vion.service.IRUserRoleService; import vion.service.IRUserRoleService;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 用户角色关联 * 用户角色关联
...@@ -34,7 +33,7 @@ public class RUserRoleController { ...@@ -34,7 +33,7 @@ public class RUserRoleController {
rUserRole.setUserId(dto.getUserId()); rUserRole.setUserId(dto.getUserId());
rUserRole.setRoleId(roleId); rUserRole.setRoleId(roleId);
return rUserRole; return rUserRole;
}).collect(Collectors.toList()); }).toList();
rUserRoleService.saveBatch(list); rUserRoleService.saveBatch(list);
}); });
return "成功"; return "成功";
......
...@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.github.linpeilie.Converter; import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.collection.CollUtil; 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.Assert;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
...@@ -19,7 +18,6 @@ import vion.vo.RoleVO; ...@@ -19,7 +18,6 @@ import vion.vo.RoleVO;
import vion.vo.UserVO; import vion.vo.UserVO;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 角色管理 * 角色管理
...@@ -78,10 +76,10 @@ public class RoleController { ...@@ -78,10 +76,10 @@ public class RoleController {
public List<UserVO> listUserById(@PathVariable Long id) { public List<UserVO> listUserById(@PathVariable Long id) {
List<RUserRole> userRoleList = userRoleService.lambdaQuery().eq(RUserRole::getRoleId, id).list(); List<RUserRole> userRoleList = userRoleService.lambdaQuery().eq(RUserRole::getRoleId, id).list();
List<User> userList = Opt.ofEmptyAble(userRoleList) 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) .filter(CollUtil::isNotEmpty)
.map(userIdList -> userService.lambdaQuery().in(User::getId, userIdList).ne(User::getStatus, 5).list()) .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); return converter.convert(userList, UserVO.class);
} }
...@@ -90,10 +88,10 @@ public class RoleController { ...@@ -90,10 +88,10 @@ public class RoleController {
public List<ResourceVO> listResourceById(@PathVariable Long id) { public List<ResourceVO> listResourceById(@PathVariable Long id) {
List<RRoleResource> roleResourceList = roleResourceService.lambdaQuery().eq(RRoleResource::getRoleId, id).list(); List<RRoleResource> roleResourceList = roleResourceService.lambdaQuery().eq(RRoleResource::getRoleId, id).list();
List<Resource> resourceList = Opt.ofEmptyAble(roleResourceList) 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) .filter(CollUtil::isNotEmpty)
.map(resourceIdList -> resourceService.lambdaQuery().in(Resource::getId, resourceIdList).list()) .map(resourceIdList -> resourceService.lambdaQuery().in(Resource::getId, resourceIdList).list())
.orElse(ListUtil.empty()); .orElse(List.of());
return converter.convert(resourceList, ResourceVO.class); return converter.convert(resourceList, ResourceVO.class);
} }
......
...@@ -11,16 +11,12 @@ import lombok.extern.slf4j.Slf4j; ...@@ -11,16 +11,12 @@ import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.lang.Opt; 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.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil; import org.dromara.hutool.core.util.ObjUtil;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import vion.dto.StatusDTO; import vion.dto.StatusDTO;
import vion.dto.StoreDTO; import vion.dto.StoreDTO;
import vion.model.RStoreConfederate; import vion.model.*;
import vion.model.RStoreUser;
import vion.model.Store;
import vion.model.StoreLog;
import vion.service.IRStoreConfederateService; import vion.service.IRStoreConfederateService;
import vion.service.IRStoreUserService; import vion.service.IRStoreUserService;
import vion.service.IStoreLogService; import vion.service.IStoreLogService;
...@@ -71,7 +67,7 @@ public class StoreController { ...@@ -71,7 +67,7 @@ public class StoreController {
var storeId2UserIdMap = Opt.ofEmptyAble(storeIdList) var storeId2UserIdMap = Opt.ofEmptyAble(storeIdList)
.map(l -> storeUserService.lambdaQuery().in(RStoreUser::getStoreId, l).eq(RStoreUser::getIsMain, 1).list()) .map(l -> storeUserService.lambdaQuery().in(RStoreUser::getStoreId, l).eq(RStoreUser::getIsMain, 1).list())
.map(suList -> suList.stream().collect(Collectors.toMap(RStoreUser::getStoreId, RStoreUser::getUserId))) .map(suList -> suList.stream().collect(Collectors.toMap(RStoreUser::getStoreId, RStoreUser::getUserId)))
.orElse(MapUtil.empty()); .orElse(Map.of());
var voList = converter.convert(storeList, StoreVO.class); var voList = converter.convert(storeList, StoreVO.class);
voList.forEach(v -> v.setMainUser(storeId2UserIdMap.getOrDefault(v.getId(), null))); voList.forEach(v -> v.setMainUser(storeId2UserIdMap.getOrDefault(v.getId(), null)));
return voList; return voList;
...@@ -179,6 +175,18 @@ public class StoreController { ...@@ -179,6 +175,18 @@ public class StoreController {
return storeService.fileDetail(storeIdList); 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") @GetMapping("/store/logNotify")
@SaCheckPermission(value = "store:logNotify", orRole = "admin") @SaCheckPermission(value = "store:logNotify", orRole = "admin")
public String logNotify(Long id, String[] userIdStr) { public String logNotify(Long id, String[] userIdStr) {
......
...@@ -8,7 +8,6 @@ import jakarta.servlet.http.HttpServletResponse; ...@@ -8,7 +8,6 @@ import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.collection.CollUtil; 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.Assert;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.net.url.UrlEncoder; import org.dromara.hutool.core.net.url.UrlEncoder;
...@@ -31,7 +30,6 @@ import vion.vo.UserVO; ...@@ -31,7 +30,6 @@ import vion.vo.UserVO;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
@RestController @RestController
...@@ -90,10 +88,10 @@ public class UserController { ...@@ -90,10 +88,10 @@ public class UserController {
@SaCheckPermission(value = "user:role", orRole = "admin") @SaCheckPermission(value = "user:role", orRole = "admin")
public List<RoleVO> listRoleById(@PathVariable Long id) { public List<RoleVO> listRoleById(@PathVariable Long id) {
List<Role> roleList = Opt.ofEmptyAble(userRoleService.lambdaQuery().eq(RUserRole::getUserId, id).list()) 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) .filter(CollUtil::isNotEmpty)
.map(roleIdList -> roleService.lambdaQuery().in(Role::getId, roleIdList).list()) .map(roleIdList -> roleService.lambdaQuery().in(Role::getId, roleIdList).list())
.orElse(ListUtil.empty()); .orElse(List.of());
return converter.convert(roleList, RoleVO.class); return converter.convert(roleList, RoleVO.class);
} }
......
...@@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.JsonNode; ...@@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.JsonNode;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.collection.CollUtil; 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.date.TimeUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.math.NumberUtil; import org.dromara.hutool.core.math.NumberUtil;
...@@ -280,7 +279,7 @@ public class ContractRunner { ...@@ -280,7 +279,7 @@ public class ContractRunner {
// 合同更新,同步调用一下更新项目的维保状态 // 合同更新,同步调用一下更新项目的维保状态
Opt.ofEmptyAble(updContractIdList) Opt.ofEmptyAble(updContractIdList)
.map(contractIdList -> contractStoreService.lambdaQuery().in(RContractStore::getContractId, contractIdList).list()) .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) .filter(CollUtil::isNotEmpty)
.ifPresent(storeService::calMaintainStatus); .ifPresent(storeService::calMaintainStatus);
...@@ -473,7 +472,7 @@ public class ContractRunner { ...@@ -473,7 +472,7 @@ public class ContractRunner {
@Scheduled(cron = "0 0 1 * * ?") @Scheduled(cron = "0 0 1 * * ?")
public void calMaintainStatus() { public void calMaintainStatus() {
log.info("【开始】计算门店维保状态"); log.info("【开始】计算门店维保状态");
storeService.calMaintainStatus(ListUtil.empty()); storeService.calMaintainStatus(List.of());
log.info("【结束】计算门店维保状态"); log.info("【结束】计算门店维保状态");
} }
......
...@@ -2,7 +2,6 @@ package vion.interceptor; ...@@ -2,7 +2,6 @@ package vion.interceptor;
import cn.dev33.satoken.stp.StpInterface; import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import vion.model.Resource; import vion.model.Resource;
...@@ -10,7 +9,6 @@ import vion.vo.RoleVO; ...@@ -10,7 +9,6 @@ import vion.vo.RoleVO;
import vion.vo.UserVO; import vion.vo.UserVO;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @author vion * @author vion
...@@ -23,14 +21,14 @@ public class StpInterfaceImpl implements StpInterface { ...@@ -23,14 +21,14 @@ public class StpInterfaceImpl implements StpInterface {
public List<String> getPermissionList(Object loginId, String loginType) { public List<String> getPermissionList(Object loginId, String loginType) {
UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser"); UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser");
return Opt.ofEmptyAble(userVO.getResourceList()) return Opt.ofEmptyAble(userVO.getResourceList())
.map(l -> l.stream().map(Resource::getPerm).collect(Collectors.toList())) .map(l -> l.stream().map(Resource::getPerm).toList())
.orElse(ListUtil.empty()); .orElse(List.of());
} }
@Override @Override
public List<String> getRoleList(Object loginId, String loginType) { public List<String> getRoleList(Object loginId, String loginType) {
UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser"); UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser");
List<RoleVO> roleVOList = userVO.getRoleVOList(); 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 { ...@@ -34,7 +34,7 @@ public class FileInfo {
/** /**
* 文件来源 * 文件来源
* <br>1项目、2工单预处理,3工单操作,4巡检,5合同,6发货记录</br> * <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>15结算差异</br>
* <br>16客户提交的门店图纸,17点位设计图,18合同范本,19客户上传的合同,20安装上线,与总部邮件截图</br> * <br>16客户提交的门店图纸,17点位设计图,18合同范本,19客户上传的合同,20安装上线,与总部邮件截图</br>
* <br>21服务单等表单富文本编辑器里传图用这个类型</br> * <br>21服务单等表单富文本编辑器里传图用这个类型</br>
......
...@@ -49,7 +49,7 @@ public interface IContractService extends MPJBaseService<Contract> { ...@@ -49,7 +49,7 @@ public interface IContractService extends MPJBaseService<Contract> {
String createContract(String contractJson); 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); String syncContractFile(String[] contractNoList);
} }
\ No newline at end of file \ No newline at end of file
...@@ -6,6 +6,7 @@ import com.github.yulichang.base.MPJBaseService; ...@@ -6,6 +6,7 @@ import com.github.yulichang.base.MPJBaseService;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import vion.dto.StatusDTO; import vion.dto.StatusDTO;
import vion.dto.StoreDTO; import vion.dto.StoreDTO;
import vion.model.FileInfo;
import vion.model.Store; import vion.model.Store;
import vion.vo.StoreVO; import vion.vo.StoreVO;
...@@ -28,6 +29,10 @@ public interface IStoreService extends MPJBaseService<Store> { ...@@ -28,6 +29,10 @@ public interface IStoreService extends MPJBaseService<Store> {
List<Map<String, Number>> fileDetail(List<Long> storeIdList); 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); Boolean logNotify(Long id, String[] userIdStr);
String addCron(Long storeId, String storeName, String cronStr, String userId); String addCron(Long storeId, String storeName, String cronStr, String userId);
......
...@@ -98,8 +98,8 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -98,8 +98,8 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
Page<ContractVO> contractVOList = this.selectJoinListPage(page, ContractVO.class, result.wrapper); Page<ContractVO> contractVOList = this.selectJoinListPage(page, ContractVO.class, result.wrapper);
var idList = Opt.ofEmptyAble(contractVOList.getRecords()) 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(ListUtil.empty()); .orElse(List.of());
// 结算差异 // 结算差异
Opt.ofEmptyAble(idList) Opt.ofEmptyAble(idList)
...@@ -113,7 +113,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -113,7 +113,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.in(RContractUser::getContractId, l) .in(RContractUser::getContractId, l)
.list()) .list())
.map(list -> list.stream().collect(Collectors.groupingBy(RContractUser::getContractId))) .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)) .max(Comparator.comparing(RContractUser::getEnterDate))
.map(RContractUser::getUsername) .map(RContractUser::getUsername)
.ifPresent(vo::setSaleName))); .ifPresent(vo::setSaleName)));
...@@ -137,7 +137,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -137,7 +137,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
List<Long> ids = Opt.ofNullable(dto.getStoreId()) 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()))) .map(storeId -> contractStoreService.listObjs(Wrappers.<RContractStore>lambdaQuery().select(RContractStore::getContractId).eq(RContractStore::getStoreId, dto.getStoreId()), o -> Long.valueOf(o.toString())))
.filter(CollUtil::isNotEmpty) .filter(CollUtil::isNotEmpty)
.orElse(ListUtil.of(0L)); .orElse(List.of(0L));
Page<Contract> contractList = this.lambdaQuery(converter.convert(dto, Contract.class)) 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) .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 ...@@ -159,7 +159,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
Page<ContractVO> contractVOList = this.selectJoinListPage(page, ContractVO.class, result.wrapper); Page<ContractVO> contractVOList = this.selectJoinListPage(page, ContractVO.class, result.wrapper);
var idList = Opt.ofEmptyAble(contractVOList.getRecords()) 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()); .orElse(List.of());
// 根据合同关联的项目,获取项目的相关信息 // 根据合同关联的项目,获取项目的相关信息
...@@ -178,7 +178,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -178,7 +178,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.map(cs -> cs.stream().map(RContractStore::getStoreId).toList()) .map(cs -> cs.stream().map(RContractStore::getStoreId).toList())
.map(storeIds -> storeUserService.lambdaQuery().in(RStoreUser::getStoreId, storeIds).eq(RStoreUser::getIsMain, 1).list()) .map(storeIds -> storeUserService.lambdaQuery().in(RStoreUser::getStoreId, storeIds).eq(RStoreUser::getIsMain, 1).list())
.map(suList -> suList.stream().collect(Collectors.toMap(RStoreUser::getStoreId, RStoreUser::getUserId))) .map(suList -> suList.stream().collect(Collectors.toMap(RStoreUser::getStoreId, RStoreUser::getUserId)))
.orElse(MapUtil.empty()); .orElse(Map.of());
// 合同绑定销售 // 合同绑定销售
Opt.ofEmptyAble(idList) Opt.ofEmptyAble(idList)
...@@ -186,7 +186,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -186,7 +186,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.in(RContractUser::getContractId, l) .in(RContractUser::getContractId, l)
.list()) .list())
.map(list -> list.stream().collect(Collectors.groupingBy(RContractUser::getContractId))) .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)) .max(Comparator.comparing(RContractUser::getEnterDate))
.map(RContractUser::getUsername) .map(RContractUser::getUsername)
.ifPresent(vo::setSaleName))); .ifPresent(vo::setSaleName)));
...@@ -201,7 +201,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -201,7 +201,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
vo.setDiffAmount(null); vo.setDiffAmount(null);
var storeList = contractId2StoresMap.getOrDefault(vo.getId(), List.of()).stream() var storeList = contractId2StoresMap.getOrDefault(vo.getId(), List.of()).stream()
.map(storeMap::get) .map(storeMap::get)
.collect(Collectors.toList()); .toList();
var storeVOList = converter.convert(storeList, StoreVO.class); var storeVOList = converter.convert(storeList, StoreVO.class);
storeVOList.forEach(storeVO -> storeVO.setMainUser(storeId2UserIdMap.getOrDefault(storeVO.getId(), null))); storeVOList.forEach(storeVO -> storeVO.setMainUser(storeId2UserIdMap.getOrDefault(storeVO.getId(), null)));
vo.setStoreVOS(storeVOList); vo.setStoreVOS(storeVOList);
...@@ -216,19 +216,19 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -216,19 +216,19 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
*/ */
private void completeStoreName(List<ContractVO> contractVOList) { private void completeStoreName(List<ContractVO> contractVOList) {
Map<Long, List<Long>> contractStoreIdsMap = Opt.ofEmptyAble(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(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())))) .map(contractStoreList -> contractStoreList.stream().collect(Collectors.groupingBy(RContractStore::getContractId, Collectors.mapping(RContractStore::getStoreId, Collectors.toList()))))
.orElse(MapUtil.empty()); .orElse(Map.of());
Opt.of(contractStoreIdsMap) Opt.of(contractStoreIdsMap)
.filter(MapUtil::isNotEmpty) .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(storeIds -> Db.listByIds(storeIds, Store.class))
.map(storeList -> storeList.stream().collect(Collectors.toMap(Store::getId, Function.identity()))) .map(storeList -> storeList.stream().collect(Collectors.toMap(Store::getId, Function.identity())))
.ifPresent(storeId2StoreMap -> contractVOList.forEach(contractVO -> { .ifPresent(storeId2StoreMap -> contractVOList.forEach(contractVO -> {
if (contractStoreIdsMap.containsKey(contractVO.getId())) { 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); contractVO.setStoreVOS(storeVOS);
} }
})); }));
...@@ -425,7 +425,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -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 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); 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); 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); BigDecimal invoiceAmount = invoices.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
...@@ -460,7 +460,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -460,7 +460,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.lambdaQuery().gt(ContractPayment::getPaymentRatio, 0) .lambdaQuery().gt(ContractPayment::getPaymentRatio, 0)
.list()) .list())
.map(list -> list.stream().collect(Collectors.groupingBy(ContractPayment::getContractId))) .map(list -> list.stream().collect(Collectors.groupingBy(ContractPayment::getContractId)))
.orElse(MapUtil.empty()); .orElse(Map.of());
if (MapUtil.isEmpty(id2PaymentMap)) { if (MapUtil.isEmpty(id2PaymentMap)) {
return Map.of(); return Map.of();
} }
...@@ -714,7 +714,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -714,7 +714,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
} }
var sha256 = SecureUtil.sha256().digestHex(bytes).toUpperCase(); var sha256 = SecureUtil.sha256().digestHex(bytes).toUpperCase();
// sha256 对应的文件不存在已有的文件列表,才保存 // sha256 对应的文件不存在已有的文件列表,才保存
if (contractId2Sha256Map.getOrDefault(contractId, ListUtil.empty()).contains(sha256)) { if (contractId2Sha256Map.getOrDefault(contractId, List.of()).contains(sha256)) {
log.info("合同:{},文件已存在", contractNo); log.info("合同:{},文件已存在", contractNo);
continue; continue;
} }
......
...@@ -67,7 +67,7 @@ public class DeliveryRecordServiceImpl extends MPJBaseServiceImpl<DeliveryRecord ...@@ -67,7 +67,7 @@ public class DeliveryRecordServiceImpl extends MPJBaseServiceImpl<DeliveryRecord
.orderByDesc(DeliveryRecord::getCreateTime); .orderByDesc(DeliveryRecord::getCreateTime);
Page<DeliveryRecordVO> voPage = this.selectJoinListPage(Page.of(dto.getPageNum(), dto.getPageSize()), DeliveryRecordVO.class, wrapper); Page<DeliveryRecordVO> voPage = this.selectJoinListPage(Page.of(dto.getPageNum(), dto.getPageSize()), DeliveryRecordVO.class, wrapper);
Opt.ofEmptyAble(voPage.getRecords()) Opt.ofEmptyAble(voPage.getRecords())
.map(recs -> recs.stream().map(DeliveryRecordVO::getId).collect(Collectors.toList())) .map(recs -> recs.stream().map(DeliveryRecordVO::getId).toList())
.map(ids -> { .map(ids -> {
List<FileInfo> fileInfos = fileService.lambdaQuery().in(FileInfo::getSourceId, ids).eq(FileInfo::getSourceType, 6).list(); List<FileInfo> fileInfos = fileService.lambdaQuery().in(FileInfo::getSourceId, ids).eq(FileInfo::getSourceType, 6).list();
return fileInfos.stream().collect(Collectors.groupingBy(FileInfo::getSourceId)); return fileInfos.stream().collect(Collectors.groupingBy(FileInfo::getSourceId));
......
...@@ -6,7 +6,6 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; ...@@ -6,7 +6,6 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.github.linpeilie.Converter; import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import vion.dto.InspectDTO; import vion.dto.InspectDTO;
...@@ -44,18 +43,18 @@ public class InspectServiceImpl extends MPJBaseServiceImpl<InspectMapper, Inspec ...@@ -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); Page<InspectVO> inspectVOPage = this.selectJoinListPage(Page.of(data.getPageNum(), data.getPageSize()), InspectVO.class, wrapper);
Opt.ofEmptyAble(inspectVOPage.getRecords()) 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()) .map(idList -> formService.lambdaQuery().eq(Form::getSourceId, 2).in(Form::getPid, idList).list())
.filter(CollUtil::isNotEmpty) .filter(CollUtil::isNotEmpty)
.ifPresent(formList -> { .ifPresent(formList -> {
Map<Long, List<FormVO>> inspectId2FormIdMap = formList.stream().collect(Collectors.groupingBy(Form::getPid, Collectors.mapping(form -> converter.convert(form, FormVO.class), Collectors.toList()))); 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 -> { inspectVOPage.getRecords().forEach(inspectVO -> {
inspectVO.setFormList(inspectId2FormIdMap.getOrDefault(inspectVO.getId(), ListUtil.empty())); inspectVO.setFormList(inspectId2FormIdMap.getOrDefault(inspectVO.getId(), List.of()));
}); });
}); });
Opt.ofEmptyAble(inspectVOPage.getRecords()) 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()) .map(idList -> fileService.lambdaQuery().in(FileInfo::getSourceId, idList).eq(FileInfo::getSourceType, 4).list())
.filter(CollUtil::isNotEmpty) .filter(CollUtil::isNotEmpty)
.ifPresent(fileList -> { .ifPresent(fileList -> {
......
...@@ -10,7 +10,6 @@ import org.dromara.hutool.core.array.ArrayUtil; ...@@ -10,7 +10,6 @@ import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.date.TimeUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Opt; 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.math.NumberUtil;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil; import org.dromara.hutool.core.util.ObjUtil;
...@@ -55,7 +54,7 @@ public class InvoiceServiceImpl extends MPJBaseServiceImpl<InvoiceMapper, Invoic ...@@ -55,7 +54,7 @@ public class InvoiceServiceImpl extends MPJBaseServiceImpl<InvoiceMapper, Invoic
public Page<InvoiceVO> list(InvoiceDTO dto) { public Page<InvoiceVO> list(InvoiceDTO dto) {
UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser"); UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser");
String saleName = Opt.ofEmptyAble(userVO.getRoleVOList()) 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 -> { .map(roleCodeList -> {
if (!roleCodeList.contains("admin") && !roleCodeList.contains("shangwu") && !roleCodeList.contains("caiwu")) { if (!roleCodeList.contains("admin") && !roleCodeList.contains("shangwu") && !roleCodeList.contains("caiwu")) {
return userVO.getUsername(); return userVO.getUsername();
...@@ -81,16 +80,16 @@ public class InvoiceServiceImpl extends MPJBaseServiceImpl<InvoiceMapper, Invoic ...@@ -81,16 +80,16 @@ public class InvoiceServiceImpl extends MPJBaseServiceImpl<InvoiceMapper, Invoic
List<Invoice> invoiceList = converter.convert(dto, Invoice.class); List<Invoice> invoiceList = converter.convert(dto, Invoice.class);
this.saveBatch(invoiceList); 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() Map<String, Contract> no2ContractMap = Opt.ofEmptyAble(contractService.lambdaQuery()
.in(Contract::getContractNo, noList).list()) .in(Contract::getContractNo, noList).list())
.map(l -> l.stream().collect(Collectors.toMap(Contract::getContractNo, Function.identity()))) .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() Map<String, String> no2UseridMap = Opt.ofEmptyAble(contractUserService.lambdaQuery()
.in(RContractUser::getContractNo, noList).list()) .in(RContractUser::getContractNo, noList).list())
.map(l -> l.stream().collect(Collectors.groupingBy(RContractUser::getContractNo, Collectors.mapping(RContractUser::getUserId, Collectors.joining(","))))) .map(l -> l.stream().collect(Collectors.groupingBy(RContractUser::getContractNo, Collectors.mapping(RContractUser::getUserId, Collectors.joining(",")))))
.orElse(MapUtil.empty()); .orElse(Map.of());
// 推送钉钉消息 // 推送钉钉消息
invoiceList.forEach(i -> { invoiceList.forEach(i -> {
String contractNo = i.getContractNo(); String contractNo = i.getContractNo();
......
...@@ -11,7 +11,6 @@ import org.dromara.hutool.core.collection.CollUtil; ...@@ -11,7 +11,6 @@ import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.date.TimeUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.lang.Opt; 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.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil; import org.dromara.hutool.core.util.ObjUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -57,7 +56,7 @@ public class PaymentServiceImpl extends MPJBaseServiceImpl<PaymentMapper, Paymen ...@@ -57,7 +56,7 @@ public class PaymentServiceImpl extends MPJBaseServiceImpl<PaymentMapper, Paymen
public Page<PaymentVO> list(PaymentDTO dto) { public Page<PaymentVO> list(PaymentDTO dto) {
UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser"); UserVO userVO = (UserVO) StpUtil.getTokenSession().get("curLoginUser");
String saleName = Opt.ofEmptyAble(userVO.getRoleVOList()) 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 -> { .map(roleCodeList -> {
if (!roleCodeList.contains("admin") && !roleCodeList.contains("shangwu") && !roleCodeList.contains("caiwu")) { if (!roleCodeList.contains("admin") && !roleCodeList.contains("shangwu") && !roleCodeList.contains("caiwu")) {
return userVO.getUsername(); return userVO.getUsername();
...@@ -90,16 +89,16 @@ public class PaymentServiceImpl extends MPJBaseServiceImpl<PaymentMapper, Paymen ...@@ -90,16 +89,16 @@ public class PaymentServiceImpl extends MPJBaseServiceImpl<PaymentMapper, Paymen
this.updateById(p); 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() Map<String, Contract> no2ContractMap = Opt.ofEmptyAble(contractService.lambdaQuery()
.in(Contract::getContractNo, noList).list()) .in(Contract::getContractNo, noList).list())
.map(l -> l.stream().collect(Collectors.toMap(Contract::getContractNo, Function.identity()))) .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() Map<String, String> no2UseridMap = Opt.ofEmptyAble(contractUserService.lambdaQuery()
.in(RContractUser::getContractNo, noList).list()) .in(RContractUser::getContractNo, noList).list())
.map(l -> l.stream().collect(Collectors.groupingBy(RContractUser::getContractNo, Collectors.mapping(RContractUser::getUserId, Collectors.joining(","))))) .map(l -> l.stream().collect(Collectors.groupingBy(RContractUser::getContractNo, Collectors.mapping(RContractUser::getUserId, Collectors.joining(",")))))
.orElse(MapUtil.empty()); .orElse(Map.of());
// 推送钉钉消息 // 推送钉钉消息
paymentList.forEach(p -> { paymentList.forEach(p -> {
String contractNo = p.getContractNo(); String contractNo = p.getContractNo();
......
...@@ -172,7 +172,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po ...@@ -172,7 +172,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po
Opt.ofNullable(dto.getContractTemplateFile()).ifPresent(infile -> { Opt.ofNullable(dto.getContractTemplateFile()).ifPresent(infile -> {
Opt.ofNullable(fileService.lambdaQuery().eq(FileInfo::getSourceId, finalId).eq(FileInfo::getSourceType, 18).list()).ifPresent(fileInfos -> { Opt.ofNullable(fileService.lambdaQuery().eq(FileInfo::getSourceId, finalId).eq(FileInfo::getSourceType, 18).list()).ifPresent(fileInfos -> {
fileInfos.stream().map(FileInfo::getUrl).forEach(FileUtil::del); 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); dto.setSourceType(18);
saveFile(finalId, infile, dto); saveFile(finalId, infile, dto);
...@@ -279,7 +279,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po ...@@ -279,7 +279,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po
Opt.ofEmptyAble(pointInfoVO.getRecords()) Opt.ofEmptyAble(pointInfoVO.getRecords())
.ifPresent(vos -> { .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() List<FileInfo> fileInfoList = fileService.lambdaQuery()
.in(FileInfo::getSourceId, ids) .in(FileInfo::getSourceId, ids)
.in(FileInfo::getSourceType, ListUtil.of(5, 16, 17, 18, 19, 20)).list(); .in(FileInfo::getSourceType, ListUtil.of(5, 16, 17, 18, 19, 20)).list();
...@@ -333,7 +333,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po ...@@ -333,7 +333,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po
var fileList = fileService.lambdaQuery().eq(FileInfo::getSourceId, id).in(FileInfo::getSourceType, var fileList = fileService.lambdaQuery().eq(FileInfo::getSourceId, id).in(FileInfo::getSourceType,
ListUtil.of(5, 16, 17, 18, 19, 20)).list(); ListUtil.of(5, 16, 17, 18, 19, 20)).list();
fileList.forEach(f -> FileUtil.del(f.getUrl())); 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(); pointWxService.lambdaUpdate().eq(RPointWx::getPointId, id).remove();
rejectInfoService.lambdaUpdate().eq(RejectInfo::getPointId, id).remove(); rejectInfoService.lambdaUpdate().eq(RejectInfo::getPointId, id).remove();
pointDeviceService.lambdaUpdate().eq(RPointDevice::getPointId, id).remove(); pointDeviceService.lambdaUpdate().eq(RPointDevice::getPointId, id).remove();
...@@ -439,7 +439,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po ...@@ -439,7 +439,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po
pointDevice.setPointId(pointInfo.getId()); pointDevice.setPointId(pointInfo.getId());
pointDevice.setDeviceNo(no); pointDevice.setDeviceNo(no);
return pointDevice; return pointDevice;
}).collect(Collectors.toList()); }).toList();
return pointDeviceService.saveBatch(pointDeviceList) ? "提交成功" : "提交失败"; return pointDeviceService.saveBatch(pointDeviceList) ? "提交成功" : "提交失败";
} }
......
...@@ -57,7 +57,7 @@ public class ServiceOrderServiceImpl extends MPJBaseServiceImpl<ServiceOrderMapp ...@@ -57,7 +57,7 @@ public class ServiceOrderServiceImpl extends MPJBaseServiceImpl<ServiceOrderMapp
List<Long> taskIds = Opt.ofNullable(data.getStoreId()) List<Long> taskIds = Opt.ofNullable(data.getStoreId())
.map(storeId -> Db.listObjs(Wrappers.lambdaQuery(Task.class).eq(Task::getStoreId, storeId), Task::getId)) .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) Page<ServiceOrder> serviceOrderPage = this.lambdaQuery(serviceOrder)
.in(CollUtil.isNotEmpty(taskIds), ServiceOrder::getTaskId, taskIds) .in(CollUtil.isNotEmpty(taskIds), ServiceOrder::getTaskId, taskIds)
.page(Page.of(data.getPageNum(), data.getPageSize())); .page(Page.of(data.getPageNum(), data.getPageSize()));
......
...@@ -17,7 +17,6 @@ import lombok.RequiredArgsConstructor; ...@@ -17,7 +17,6 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.collection.CollUtil; 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.date.TimeUtil;
import org.dromara.hutool.core.io.file.FileNameUtil; import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;
...@@ -89,13 +88,13 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -89,13 +88,13 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
public Page<StoreVO> getStoreList(StoreDTO data, List<OrderItem> orderItemList) { public Page<StoreVO> getStoreList(StoreDTO data, List<OrderItem> orderItemList) {
var storeIdListByTagId = Optional.ofNullable(data.getTagId()) var storeIdListByTagId = Optional.ofNullable(data.getTagId())
.map(tagId -> storeTagService.lambdaQuery().eq(RStoreTag::getTagId, tagId).list()) .map(tagId -> storeTagService.lambdaQuery().eq(RStoreTag::getTagId, tagId).list())
.map(storeTagList -> storeTagList.stream().map(RStoreTag::getStoreId).collect(Collectors.toList())) .map(storeTagList -> storeTagList.stream().map(RStoreTag::getStoreId).toList())
.filter(CollUtil::isNotEmpty) .filter(CollUtil::isNotEmpty)
.orElse(List.of(-1L)); .orElse(List.of(-1L));
var storeIdListByMainUser = Optional.ofNullable(data.getMainUser()) var storeIdListByMainUser = Optional.ofNullable(data.getMainUser())
.map(mainUser -> storeUserService.lambdaQuery().eq(RStoreUser::getUserId, mainUser).eq(RStoreUser::getIsMain, 1).list()) .map(mainUser -> storeUserService.lambdaQuery().eq(RStoreUser::getUserId, mainUser).eq(RStoreUser::getIsMain, 1).list())
.map(storeUserList -> storeUserList.stream().map(RStoreUser::getStoreId).collect(Collectors.toList())) .map(storeUserList -> storeUserList.stream().map(RStoreUser::getStoreId).toList())
.filter(CollUtil::isNotEmpty) .filter(CollUtil::isNotEmpty)
.orElse(List.of(-1L)); .orElse(List.of(-1L));
...@@ -114,12 +113,11 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -114,12 +113,11 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
.in(ArrayUtil.isNotEmpty(data.getIds()), Store::getId, data.getIds()) .in(ArrayUtil.isNotEmpty(data.getIds()), Store::getId, data.getIds())
.between(ArrayUtil.isAllNotNull(data.getEstDateStart(), data.getEstDateEnd()), Store::getEstDate, data.getEstDateStart(), data.getEstDateEnd()) .between(ArrayUtil.isAllNotNull(data.getEstDateStart(), data.getEstDateEnd()), Store::getEstDate, data.getEstDateStart(), data.getEstDateEnd())
.page(page); .page(page);
// todo 缓存
List<Account> accountList = accountService.list(); List<Account> accountList = accountService.list();
var storeIdList = Opt.ofEmptyAble(storeList.getRecords()) var storeIdList = Opt.ofEmptyAble(storeList.getRecords())
.map(recs -> recs.stream().map(Store::getId).collect(Collectors.toList())) .map(recs -> recs.stream().map(Store::getId).toList())
.orElse(ListUtil.empty()); .orElse(List.of());
// storeId -> 文件数量 // storeId -> 文件数量
var store2CntMap = Opt.ofEmptyAble(storeIdList) var store2CntMap = Opt.ofEmptyAble(storeIdList)
...@@ -129,26 +127,26 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -129,26 +127,26 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
.in(FileInfo::getSourceType, 1, 24, 25, 26, 27, 28, 29, 30, 31) .in(FileInfo::getSourceType, 1, 24, 25, 26, 27, 28, 29, 30, 31)
.list()) .list())
.map(fileList -> fileList.stream().collect(Collectors.groupingBy(FileInfo::getStoreId, Collectors.counting()))) .map(fileList -> fileList.stream().collect(Collectors.groupingBy(FileInfo::getStoreId, Collectors.counting())))
.orElse(MapUtil.empty()); .orElse(Map.of());
// storeId -> 项目绑定的合同的 list // storeId -> 项目绑定的合同的 list
var storeIdMap = Opt.ofEmptyAble(storeIdList) var storeIdMap = Opt.ofEmptyAble(storeIdList)
.map(l -> contractStoreService.lambdaQuery().in(RContractStore::getStoreId, l).list()) .map(l -> contractStoreService.lambdaQuery().in(RContractStore::getStoreId, l).list())
.map(contractStoreList -> contractStoreList.stream().collect(Collectors.groupingBy(RContractStore::getStoreId))) .map(contractStoreList -> contractStoreList.stream().collect(Collectors.groupingBy(RContractStore::getStoreId)))
.orElse(MapUtil.empty()); .orElse(Map.of());
// 项目绑定的合同的id // 项目绑定的合同的id
var contractIdList = Opt.ofEmptyAble(storeIdMap.values()) var contractIdList = Opt.ofEmptyAble(storeIdMap.values())
.map(values -> values.stream() .map(values -> values.stream()
.flatMap(List::stream) .flatMap(List::stream)
.map(RContractStore::getContractId) .map(RContractStore::getContractId)
.collect(Collectors.toList())) .toList())
.orElse(Collections.emptyList()); .orElse(List.of());
// contractId -> contract // contractId -> contract
var id2ContractMap = Opt.ofEmptyAble(contractIdList) var id2ContractMap = Opt.ofEmptyAble(contractIdList)
.map(l -> contractService.lambdaQuery() .map(l -> contractService.lambdaQuery()
.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) .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)
.in(Contract::getId, l).list()) .in(Contract::getId, l).list())
.map(contractList -> contractList.stream().collect(Collectors.toMap(Contract::getId, Function.identity()))) .map(contractList -> contractList.stream().collect(Collectors.toMap(Contract::getId, Function.identity())))
.orElse(MapUtil.empty()); .orElse(Map.of());
// contractId -> 合同付款约定 // contractId -> 合同付款约定
var contractId2CpMap = Opt.ofEmptyAble(contractIdList) var contractId2CpMap = Opt.ofEmptyAble(contractIdList)
...@@ -157,26 +155,26 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -157,26 +155,26 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
v.sort(Comparator.comparing(ContractPayment::getPaymentType).reversed()); v.sort(Comparator.comparing(ContractPayment::getPaymentType).reversed());
return v; return v;
})))) }))))
.orElse(MapUtil.empty()); .orElse(Map.of());
// storeId -> taskIdList // storeId -> taskIdList
var store2TaskIdMap = Opt.ofEmptyAble(storeIdList) var store2TaskIdMap = Opt.ofEmptyAble(storeIdList)
.map(l -> taskMapper.selectList(Wrappers.lambdaQuery(Task.class).in(Task::getStoreId, l))) .map(l -> taskMapper.selectList(Wrappers.lambdaQuery(Task.class).in(Task::getStoreId, l)))
.map(taskList -> taskList.stream().collect(Collectors.groupingBy(Task::getStoreId, Collectors.mapping(Task::getId, Collectors.toList())))) .map(taskList -> taskList.stream().collect(Collectors.groupingBy(Task::getStoreId, Collectors.mapping(Task::getId, Collectors.toList()))))
.orElse(MapUtil.empty()); .orElse(Map.of());
var taskIds = store2TaskIdMap.values().stream() var taskIds = store2TaskIdMap.values().stream()
.flatMap(List::stream) .flatMap(List::stream)
.collect(Collectors.toList()); .toList();
var taskServiceOrderMap = Opt.ofEmptyAble(taskIds) var taskServiceOrderMap = Opt.ofEmptyAble(taskIds)
.map(t -> Db.list(Wrappers.lambdaQuery(ServiceOrder.class).in(ServiceOrder::getTaskId, taskIds))) .map(t -> Db.list(Wrappers.lambdaQuery(ServiceOrder.class).in(ServiceOrder::getTaskId, taskIds)))
.map(serviceOrderList -> serviceOrderList.stream().collect(Collectors.groupingBy(ServiceOrder::getTaskId))) .map(serviceOrderList -> serviceOrderList.stream().collect(Collectors.groupingBy(ServiceOrder::getTaskId)))
.orElse(MapUtil.empty()); .orElse(Map.of());
// storeId -> storeLog // storeId -> storeLog
var store2LogMap = Opt.ofEmptyAble(storeIdList) var store2LogMap = Opt.ofEmptyAble(storeIdList)
.map(l -> storeLogService.lambdaQuery().in(StoreLog::getStoreId, l).list()) .map(l -> storeLogService.lambdaQuery().in(StoreLog::getStoreId, l).list())
.map(storeLogList -> storeLogList.stream().collect(Collectors.groupingBy(StoreLog::getStoreId))) .map(storeLogList -> storeLogList.stream().collect(Collectors.groupingBy(StoreLog::getStoreId)))
.orElse(MapUtil.empty()); .orElse(Map.of());
// storeId -> tagList // storeId -> tagList
var storeId2TagMap = Opt.ofEmptyAble(storeIdList) var storeId2TagMap = Opt.ofEmptyAble(storeIdList)
...@@ -190,14 +188,14 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -190,14 +188,14 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
}) })
.filter(CollUtil::isNotEmpty) .filter(CollUtil::isNotEmpty)
.map(tagVOS -> tagVOS.stream().collect(Collectors.groupingBy(TagVO::getStoreId))) .map(tagVOS -> tagVOS.stream().collect(Collectors.groupingBy(TagVO::getStoreId)))
.orElse(MapUtil.empty()); .orElse(Map.of());
// storeId -> userId(项目主要负责人 or 项目经理) // storeId -> userId(项目主要负责人 or 项目经理)
var storeId2UserIdMap = Opt.ofEmptyAble(storeIdList) var storeId2UserIdMap = Opt.ofEmptyAble(storeIdList)
.map(l -> storeUserService.lambdaQuery().in(RStoreUser::getStoreId, l).eq(RStoreUser::getIsMain, 1).list()) .map(l -> storeUserService.lambdaQuery().in(RStoreUser::getStoreId, l).eq(RStoreUser::getIsMain, 1).list())
.map(suList -> suList.stream().collect(Collectors.toMap(RStoreUser::getStoreId, RStoreUser::getUserId))) .map(suList -> suList.stream().collect(Collectors.toMap(RStoreUser::getStoreId, RStoreUser::getUserId)))
.orElse(MapUtil.empty()); .orElse(Map.of());
List<StoreVO> storeVOList = new ArrayList<>(); List<StoreVO> storeVOList = new ArrayList<>();
storeList.getRecords().forEach(item -> { storeList.getRecords().forEach(item -> {
...@@ -212,28 +210,28 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -212,28 +210,28 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
storeVO.setContractVOList(id2ContractMap.values().stream() storeVO.setContractVOList(id2ContractMap.values().stream()
.filter(v -> CollUtil.isNotEmpty(contractStores) && contractStores.stream().map(RContractStore::getContractId).toList().contains(v.getId())) .filter(v -> CollUtil.isNotEmpty(contractStores) && contractStores.stream().map(RContractStore::getContractId).toList().contains(v.getId()))
.map(v -> converter.convert(v, ContractVO.class)) .map(v -> converter.convert(v, ContractVO.class))
.collect(Collectors.toList())); .toList());
var masterContract = id2ContractMap.getOrDefault(item.getMasterContract(), null); var masterContract = id2ContractMap.getOrDefault(item.getMasterContract(), null);
// 关联合同验收时间 // 关联合同验收时间
Opt.ofNullable(masterContract) Opt.ofNullable(masterContract)
.map(c -> contractId2CpMap.getOrDefault(c.getId(), ListUtil.empty())) .map(c -> contractId2CpMap.getOrDefault(c.getId(), List.of()))
.filter(CollUtil::isNotEmpty) .filter(CollUtil::isNotEmpty)
.map(l -> l.getFirst().getNodeDate()) .map(l -> l.getFirst().getNodeDate())
.ifPresent(nodeDate -> masterContract.setFinalDate(nodeDate)); .ifPresent(masterContract::setFinalDate);
storeVO.setMainContract(Opt.ofNullable(masterContract).map(c -> converter.convert(c, ContractVO.class)).orElse(null)); storeVO.setMainContract(Opt.ofNullable(masterContract).map(c -> converter.convert(c, ContractVO.class)).orElse(null));
storeVO.setTaskCount(store2TaskIdMap.getOrDefault(storeId, ListUtil.empty()).size()); storeVO.setTaskCount(store2TaskIdMap.getOrDefault(storeId, List.of()).size());
storeVO.setLogCount(store2LogMap.getOrDefault(storeId, ListUtil.empty()).size()); storeVO.setLogCount(store2LogMap.getOrDefault(storeId, List.of()).size());
// 补充服务单 // 补充服务单
if (store2TaskIdMap.containsKey(item.getId())) { if (store2TaskIdMap.containsKey(item.getId())) {
var cnt = store2TaskIdMap.get(item.getId()) var cnt = store2TaskIdMap.get(item.getId())
.stream().mapToLong(taskId -> taskServiceOrderMap.getOrDefault(taskId, ListUtil.empty()).size()).sum(); .stream().mapToLong(taskId -> taskServiceOrderMap.getOrDefault(taskId, List.of()).size()).sum();
storeVO.setServiceOrderCount((int) cnt); storeVO.setServiceOrderCount((int) cnt);
} }
// 关联标签 // 关联标签
storeVO.setTagList(storeId2TagMap.getOrDefault(storeId, ListUtil.empty())); storeVO.setTagList(storeId2TagMap.getOrDefault(storeId, List.of()));
// 关联项目负责人 or 项目经理 // 关联项目负责人 or 项目经理
storeVO.setMainUser(storeId2UserIdMap.getOrDefault(storeId, null)); storeVO.setMainUser(storeId2UserIdMap.getOrDefault(storeId, null));
storeVOList.add(storeVO); storeVOList.add(storeVO);
...@@ -284,35 +282,35 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -284,35 +282,35 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
List<Store> storeList = this.lambdaQuery().in(CollUtil.isNotEmpty(storeIdList), Store::getId, storeIdList).list(); List<Store> storeList = this.lambdaQuery().in(CollUtil.isNotEmpty(storeIdList), Store::getId, storeIdList).list();
Map<Long, List<Long>> storeId2ContractIdMap = Opt.ofEmptyAble(contractStoreService.list()) Map<Long, List<Long>> storeId2ContractIdMap = Opt.ofEmptyAble(contractStoreService.list())
.map(l -> l.stream().collect(Collectors.groupingBy(RContractStore::getStoreId, Collectors.mapping(RContractStore::getContractId, Collectors.toList())))) .map(l -> l.stream().collect(Collectors.groupingBy(RContractStore::getStoreId, Collectors.mapping(RContractStore::getContractId, Collectors.toList()))))
.orElse(MapUtil.empty()); .orElse(Map.of());
List<Contract> contractList = contractService.listByIds(storeId2ContractIdMap.values().stream().flatMap(List::stream).collect(Collectors.toList())); List<Contract> contractList = contractService.listByIds(storeId2ContractIdMap.values().stream().flatMap(List::stream).toList());
// storeId 为 key,List<Contract> 为 value 的 map // storeId 为 key,List<Contract> 为 value 的 map
Map<Long, List<Contract>> storeId2ContractListMap = storeList.stream() Map<Long, List<Contract>> storeId2ContractListMap = storeList.stream()
.collect(Collectors.toMap(Store::getId, store -> .collect(Collectors.toMap(Store::getId, store ->
storeId2ContractIdMap.getOrDefault(store.getId(), ListUtil.empty()) storeId2ContractIdMap.getOrDefault(store.getId(), List.of())
.stream() .stream()
.map(contractId -> contractList.stream().filter(contract -> contract.getId().equals(contractId)).findFirst().orElse(null)) .map(contractId -> contractList.stream().filter(contract -> contract.getId().equals(contractId)).findFirst().orElse(null))
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toList()))); .toList()));
var contractId2CpMap = Opt.ofEmptyAble(contractPaymentService.lambdaQuery().in(ContractPayment::getPaymentType, 3, 4).isNotNull(ContractPayment::getNodeDate).list()) var contractId2CpMap = Opt.ofEmptyAble(contractPaymentService.lambdaQuery().in(ContractPayment::getPaymentType, 3, 4).isNotNull(ContractPayment::getNodeDate).list())
.map(contractPaymentList -> contractPaymentList.stream().collect(Collectors.groupingBy(ContractPayment::getContractId, Collectors.collectingAndThen(Collectors.toList(), v -> { .map(contractPaymentList -> contractPaymentList.stream().collect(Collectors.groupingBy(ContractPayment::getContractId, Collectors.collectingAndThen(Collectors.toList(), v -> {
v.sort(Comparator.comparing(ContractPayment::getPaymentType).reversed()); v.sort(Comparator.comparing(ContractPayment::getPaymentType).reversed());
return v; return v;
})))) }))))
.orElse(MapUtil.empty()); .orElse(Map.of());
List<Store> updStoreList = new ArrayList<>(); List<Store> updStoreList = new ArrayList<>();
for (Store s : storeList) { for (Store s : storeList) {
s.setMaintainStatus("--"); s.setMaintainStatus("--");
List<Contract> contracts = storeId2ContractListMap.getOrDefault(s.getId(), ListUtil.empty()); List<Contract> contracts = storeId2ContractListMap.getOrDefault(s.getId(), List.of());
if (CollUtil.isNotEmpty(contracts)) { if (CollUtil.isNotEmpty(contracts)) {
// 1.项目关联的主合同在维保期内,那么这个项目就是在保 // 1.项目关联的主合同在维保期内,那么这个项目就是在保
Contract masterContract = contracts.stream().filter(contract -> ObjUtil.equals(contract.getId(), s.getMasterContract())).findFirst().orElse(null); Contract masterContract = contracts.stream().filter(contract -> ObjUtil.equals(contract.getId(), s.getMasterContract())).findFirst().orElse(null);
if (ObjUtil.isNotNull(masterContract)) { if (ObjUtil.isNotNull(masterContract)) {
Integer warrantyPeriod = masterContract.getWarrantyPeriod(); Integer warrantyPeriod = masterContract.getWarrantyPeriod();
Opt.ofNullable(contractId2CpMap.getOrDefault(masterContract.getId(), ListUtil.empty())) Opt.ofNullable(contractId2CpMap.getOrDefault(masterContract.getId(), List.of()))
.filter(CollUtil::isNotEmpty) .filter(CollUtil::isNotEmpty)
.map(l -> l.getFirst().getNodeDate()) .map(l -> l.getFirst().getNodeDate())
.ifPresent(masterContract::setFinalDate); .ifPresent(masterContract::setFinalDate);
...@@ -381,7 +379,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -381,7 +379,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
contractStore.setContractId(v.getContractId()); contractStore.setContractId(v.getContractId());
contractStore.setStoreId(sourceId); contractStore.setStoreId(sourceId);
return contractStore; return contractStore;
}).collect(Collectors.toList()); }).toList();
contractStoreService.saveBatch(insList); contractStoreService.saveBatch(insList);
contractStoreService.lambdaUpdate().eq(RContractStore::getStoreId, targetId).remove(); contractStoreService.lambdaUpdate().eq(RContractStore::getStoreId, targetId).remove();
}); });
...@@ -408,7 +406,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -408,7 +406,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
storeTag.setStoreId(id); storeTag.setStoreId(id);
storeTag.setTagId(tagId); storeTag.setTagId(tagId);
return storeTag; return storeTag;
}).collect(Collectors.toList()); }).toList();
storeTagService.saveBatch(list); storeTagService.saveBatch(list);
}); });
return "成功"; return "成功";
...@@ -423,7 +421,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -423,7 +421,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
.list(); .list();
var storeId2FileMap = fileList.stream().collect(Collectors.groupingBy(FileInfo::getStoreId, Collectors.groupingBy(FileInfo::getSourceType))); var storeId2FileMap = fileList.stream().collect(Collectors.groupingBy(FileInfo::getStoreId, Collectors.groupingBy(FileInfo::getSourceType)));
return storeIdList.stream().map(storeId -> { return storeIdList.stream().map(storeId -> {
var fileMap = storeId2FileMap.getOrDefault(storeId, MapUtil.empty()); var fileMap = storeId2FileMap.getOrDefault(storeId, Map.of());
Map<String, Number> map = new HashMap<>(); Map<String, Number> map = new HashMap<>();
map.put("storeId", storeId); map.put("storeId", storeId);
map.put("1", fileMap.getOrDefault(1, List.of()).size()); map.put("1", fileMap.getOrDefault(1, List.of()).size());
...@@ -433,7 +431,46 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -433,7 +431,46 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
map.put("27", fileMap.getOrDefault(27, List.of()).size()); map.put("27", fileMap.getOrDefault(27, List.of()).size());
map.put("28", fileMap.getOrDefault(28, List.of()).size()); map.put("28", fileMap.getOrDefault(28, List.of()).size());
return map; return map;
}).collect(Collectors.toList()); }).toList();
}
@Override
public List<FileInfo> contractFile(List<Long> storeIdList) {
var contractStoreList = contractStoreService.lambdaQuery().in(RContractStore::getStoreId, storeIdList).list();
var contractIdList = contractStoreList.stream().map(RContractStore::getContractId).toList();
return fileService.lambdaQuery()
.in(FileInfo::getSourceId, contractIdList)
.in(FileInfo::getStoreId, -1L)
.in(FileInfo::getSourceType, 7, 8, 9, 10, 11, 12, 13, 14, 33, 34)
.list();
}
@Override
public List<Map<String, Number>> contractFileDetail(List<Long> storeIdList) {
var contractStoreList = contractStoreService.lambdaQuery().in(RContractStore::getStoreId, storeIdList).list();
var contractIdList = contractStoreList.stream().map(RContractStore::getContractId).toList();
var fileList = fileService.lambdaQuery()
.in(FileInfo::getSourceId, contractIdList)
.in(FileInfo::getStoreId, -1L)
.in(FileInfo::getSourceType, 7, 8, 9, 10, 11, 12, 13, 14, 33, 34)
.list();
var storeId2FileMap = fileList.stream().collect(Collectors.groupingBy(FileInfo::getStoreId, Collectors.groupingBy(FileInfo::getSourceType)));
return storeIdList.stream().map(storeId -> {
var fileMap = storeId2FileMap.getOrDefault(storeId, Map.of());
Map<String, Number> map = new HashMap<>();
map.put("storeId", storeId);
map.put("7", fileMap.getOrDefault(7, List.of()).size());
map.put("8", fileMap.getOrDefault(8, List.of()).size());
map.put("9", fileMap.getOrDefault(9, List.of()).size());
map.put("10", fileMap.getOrDefault(10, List.of()).size());
map.put("11", fileMap.getOrDefault(11, List.of()).size());
map.put("12", fileMap.getOrDefault(12, List.of()).size());
map.put("13", fileMap.getOrDefault(13, List.of()).size());
map.put("14", fileMap.getOrDefault(14, List.of()).size());
map.put("33", fileMap.getOrDefault(33, List.of()).size());
map.put("34", fileMap.getOrDefault(34, List.of()).size());
return map;
}).toList();
} }
@Override @Override
......
...@@ -104,12 +104,12 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -104,12 +104,12 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
Set<Long> taskIdSet = SetUtil.zero(); Set<Long> taskIdSet = SetUtil.zero();
Opt.ofEmptyAble(userVO.getRoleVOList()) Opt.ofEmptyAble(userVO.getRoleVOList())
.map(l -> l.stream().map(RoleVO::getCode).collect(Collectors.toList())) .map(l -> l.stream().map(RoleVO::getCode).toList())
.map(roleCodeList -> { .map(roleCodeList -> {
if (CollUtil.contains(roleCodeList, "task_admin") || CollUtil.contains(roleCodeList, "admin")) { if (CollUtil.contains(roleCodeList, "task_admin") || CollUtil.contains(roleCodeList, "admin")) {
FaultLog log = new FaultLog(); FaultLog log = new FaultLog();
log.setTaskId(0L); log.setTaskId(0L);
return ListUtil.of(log); return List.of(log);
} else { } else {
List<FaultLog> logList = faultLogService.lambdaQuery() List<FaultLog> logList = faultLogService.lambdaQuery()
.select(FaultLog::getTaskId) .select(FaultLog::getTaskId)
...@@ -123,7 +123,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -123,7 +123,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
// 当前处理人的工单也要加入筛选条件 // 当前处理人的工单也要加入筛选条件
Long id = userVO.getId(); Long id = userVO.getId();
Opt.ofEmptyAble(this.lambdaQuery().eq(Task::getActiveUser, id).list()) 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); .ifPresent(taskIdSet::addAll);
return logList; return logList;
} }
......
...@@ -143,7 +143,7 @@ public class TaskTempServiceImpl extends MPJBaseServiceImpl<TaskTempMapper, Task ...@@ -143,7 +143,7 @@ public class TaskTempServiceImpl extends MPJBaseServiceImpl<TaskTempMapper, Task
.eq(TaskTemp::getRepairPhone, phone) .eq(TaskTemp::getRepairPhone, phone)
.orderByDesc(TaskTemp::getCreateTime); .orderByDesc(TaskTemp::getCreateTime);
var voList = this.selectJoinList(TaskTempVO.class, wrapper); 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) { if (CollUtil.isNotEmpty(filterList) && filterList.size() > 1) {
return Map.of("accountId", filterList.getFirst().getAccountId(), "storeId", filterList.getFirst().getStoreId()); return Map.of("accountId", filterList.getFirst().getAccountId(), "storeId", filterList.getFirst().getStoreId());
......
...@@ -64,11 +64,11 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem ...@@ -64,11 +64,11 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem
.selectAll(Role.class) .selectAll(Role.class)
.select(RUserRole::getUserId) .select(RUserRole::getUserId)
.leftJoin(RUserRole.class, RUserRole::getRoleId, Role::getId) .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); var roleVOList = roleService.selectJoinList(RoleVO.class, roleWrapper);
Opt.ofEmptyAble(roleVOList) Opt.ofEmptyAble(roleVOList)
.map(l -> l.stream().collect(Collectors.groupingBy(RoleVO::getUserId))) .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; return userVOS;
} }
......
...@@ -34,7 +34,6 @@ import java.nio.charset.StandardCharsets; ...@@ -34,7 +34,6 @@ import java.nio.charset.StandardCharsets;
import java.time.Duration; import java.time.Duration;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @author vion * @author vion
...@@ -418,17 +417,17 @@ public class DingMod { ...@@ -418,17 +417,17 @@ public class DingMod {
private void setRolesAndPerms(Long id, UserVO userVO) { private void setRolesAndPerms(Long id, UserVO userVO) {
List<RUserRole> userRoleList = userRoleService.lambdaQuery().eq(RUserRole::getUserId, id).list(); List<RUserRole> userRoleList = userRoleService.lambdaQuery().eq(RUserRole::getUserId, id).list();
List<RRoleResource> roleResourceList = Opt.ofEmptyAble(userRoleList) 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 -> { .map(roleIdList -> {
// 获取用户关联的角色 // 获取用户关联的角色
List<Role> roles = roleService.listByIds(roleIdList); List<Role> roles = roleService.listByIds(roleIdList);
List<RoleVO> roleVOS = converter.convert(roles, RoleVO.class); List<RoleVO> roleVOS = converter.convert(roles, RoleVO.class);
userVO.setRoleVOList(roleVOS); userVO.setRoleVOList(roleVOS);
return roleResourceService.lambdaQuery().select(RRoleResource::getResourceId).in(RRoleResource::getRoleId, roleIdList).list(); return roleResourceService.lambdaQuery().select(RRoleResource::getResourceId).in(RRoleResource::getRoleId, roleIdList).list();
}).orElse(ListUtil.empty()); }).orElse(List.of());
// 获取角色关联的资源 // 获取角色关联的资源
Opt.ofEmptyAble(roleResourceList) Opt.ofEmptyAble(roleResourceList)
.map(rrList -> rrList.stream().map(RRoleResource::getResourceId).collect(Collectors.toList())) .map(rrList -> rrList.stream().map(RRoleResource::getResourceId).toList())
.ifPresent(resourceIdList -> { .ifPresent(resourceIdList -> {
List<Resource> resourceList = resourceService.listByIds(resourceIdList); List<Resource> resourceList = resourceService.listByIds(resourceIdList);
userVO.setResourceList(resourceList); userVO.setResourceList(resourceList);
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!