|
@@ -2,10 +2,14 @@ package org.springblade.business.controller;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
|
+import org.springblade.business.entity.DefaultProject;
|
|
|
|
+import org.springblade.business.service.IDefaultProjectService;
|
|
import org.springblade.core.secure.BladeUser;
|
|
import org.springblade.core.secure.BladeUser;
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
import org.springblade.core.tool.api.R;
|
|
import org.springblade.core.tool.api.R;
|
|
@@ -21,6 +25,8 @@ import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
+import java.util.Collections;
|
|
|
|
+import java.util.Comparator;
|
|
import java.util.Iterator;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -37,6 +43,8 @@ public class UserViewProjectContractController {
|
|
|
|
|
|
private final ProjectAssignmentUserClient projectAssignmentUserClient;
|
|
private final ProjectAssignmentUserClient projectAssignmentUserClient;
|
|
|
|
|
|
|
|
+ private final IDefaultProjectService defaultProjectService;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 获取客户端首页当前用户关联的项目及合同段信息
|
|
* 获取客户端首页当前用户关联的项目及合同段信息
|
|
* @return 项目及合同段结果集
|
|
* @return 项目及合同段结果集
|
|
@@ -49,6 +57,14 @@ public class UserViewProjectContractController {
|
|
if(user == null){
|
|
if(user == null){
|
|
return R.data(null);
|
|
return R.data(null);
|
|
}
|
|
}
|
|
|
|
+ //获取当前用户的默认项目
|
|
|
|
+ List<DefaultProject> defaultProjects = this.defaultProjectService.list(Wrappers.<DefaultProject>lambdaQuery().eq(DefaultProject::getUserId, AuthUtil.getUserId().toString()));
|
|
|
|
+ String defaultProject = null, defaultContract = null;
|
|
|
|
+ if(defaultProjects != null && defaultProjects.size() > 0){
|
|
|
|
+ defaultProject = defaultProjects.get(0).getProjectId();
|
|
|
|
+ defaultContract = defaultProjects.get(0).getContractId();
|
|
|
|
+ }
|
|
|
|
+
|
|
//获取当前用户的所有相关项目及合同段ID
|
|
//获取当前用户的所有相关项目及合同段ID
|
|
List<SaveUserInfoByProjectDTO> userDownAll = this.projectAssignmentUserClient.queryCurrentUserDownAllContractAndProjectId(user.getUserId());
|
|
List<SaveUserInfoByProjectDTO> userDownAll = this.projectAssignmentUserClient.queryCurrentUserDownAllContractAndProjectId(user.getUserId());
|
|
|
|
|
|
@@ -75,9 +91,14 @@ public class UserViewProjectContractController {
|
|
List<ContractInfoVO> contractInfoVOS = JSONArray.parseArray(JSONObject.toJSONString(contractInfos), ContractInfoVO.class);
|
|
List<ContractInfoVO> contractInfoVOS = JSONArray.parseArray(JSONObject.toJSONString(contractInfos), ContractInfoVO.class);
|
|
contractInfoVOS.removeIf(vo -> !contractIds.contains(String.valueOf(vo.getId())));
|
|
contractInfoVOS.removeIf(vo -> !contractIds.contains(String.valueOf(vo.getId())));
|
|
|
|
|
|
|
|
+ //用户默认的项目及合同段
|
|
|
|
+ String finalDefaultProject = defaultProject;
|
|
|
|
+ String finalDefaultContract = defaultContract;
|
|
|
|
+
|
|
projectInfoVOS.forEach(vo -> {
|
|
projectInfoVOS.forEach(vo -> {
|
|
//统一返回格式
|
|
//统一返回格式
|
|
vo.setName(vo.getProjectName());
|
|
vo.setName(vo.getProjectName());
|
|
|
|
+ vo.setIsDefault(StringUtils.isNotEmpty(finalDefaultProject) && vo.getId().toString().equals(finalDefaultProject) ? 1 : 0);
|
|
|
|
|
|
Iterator<ContractInfoVO> iterator = contractInfoVOS.iterator();
|
|
Iterator<ContractInfoVO> iterator = contractInfoVOS.iterator();
|
|
while (iterator.hasNext()){
|
|
while (iterator.hasNext()){
|
|
@@ -87,11 +108,18 @@ public class UserViewProjectContractController {
|
|
|
|
|
|
//找到对应的合同段
|
|
//找到对应的合同段
|
|
if(String.valueOf(vo.getId()).equals(String.valueOf(next.getPId()))){
|
|
if(String.valueOf(vo.getId()).equals(String.valueOf(next.getPId()))){
|
|
|
|
+ next.setIsDefault(StringUtils.isNotEmpty(finalDefaultContract) && next.getId().toString().equals(finalDefaultContract) ? 1 : 0);
|
|
vo.getContractInfoList().add(next);
|
|
vo.getContractInfoList().add(next);
|
|
iterator.remove();
|
|
iterator.remove();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //排序合同段
|
|
|
|
+ List<ContractInfoVO> contractInfoList = vo.getContractInfoList();
|
|
|
|
+ contractInfoList.sort(Comparator.comparingInt(ContractInfoVO::getIsDefault).reversed());
|
|
|
|
+ vo.setContractInfoList(contractInfoList);
|
|
});
|
|
});
|
|
|
|
+ //排序项目
|
|
|
|
+ projectInfoVOS.sort(Comparator.comparingInt(ProjectInfoVO::getIsDefault).reversed());
|
|
}
|
|
}
|
|
return R.data(projectInfoVOS);
|
|
return R.data(projectInfoVOS);
|
|
}
|
|
}
|