|
@@ -192,43 +192,92 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
|
|
|
throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
|
|
|
}
|
|
|
//获取Role信息
|
|
|
-// if (user.getProjectAndUserList().size() <= 0) {
|
|
|
-// throw new ServiceException("请关联项目合同段用户类型信息");
|
|
|
-// }
|
|
|
-// StringBuffer stringBuffer = new StringBuffer();
|
|
|
-// Set<String> set = new TreeSet<>();
|
|
|
-// List<SaveUserInfoByProjectDTO> projectAndUserList = user.getProjectAndUserList();
|
|
|
-// projectAndUserList.forEach(i -> {
|
|
|
-// String roleId = i.getRoleId();
|
|
|
-// set.add(roleId);
|
|
|
-// });
|
|
|
-// for (String s : set) {
|
|
|
-// stringBuffer.append(s).append(",");
|
|
|
-// }
|
|
|
-// user.setRoleId(String.valueOf(stringBuffer.deleteCharAt(stringBuffer.length() - 1)));
|
|
|
+ if (user.getProjectAndUserList().size() <= 0) {
|
|
|
+ throw new ServiceException("请关联项目合同段用户类型信息");
|
|
|
+ }
|
|
|
+ StringBuffer stringBuffer = new StringBuffer();
|
|
|
+ Set<String> set = new TreeSet<>();
|
|
|
+ List<SaveUserInfoByProjectDTO> projectAndUserList = user.getProjectAndUserList();
|
|
|
+ projectAndUserList.forEach(i -> {
|
|
|
+ String roleId = i.getRoleId();
|
|
|
+ set.add(roleId);
|
|
|
+ });
|
|
|
+ for (String s : set) {
|
|
|
+ stringBuffer.append(s).append(",");
|
|
|
+ }
|
|
|
+ user.setRoleId(String.valueOf(stringBuffer.deleteCharAt(stringBuffer.length() - 1)));
|
|
|
+
|
|
|
//user.setUserType(1); //用户平台-WEB
|
|
|
user.setName(user.getRealName());
|
|
|
boolean b1 = save(user);
|
|
|
- boolean b = submitUserDept(user);
|
|
|
- return b1;
|
|
|
-//
|
|
|
-// if (b1) {
|
|
|
-// //绑定用户与部门关系
|
|
|
-// boolean b = submitUserDept(user);
|
|
|
-// if (b) {
|
|
|
-// //比较
|
|
|
-// if (checkContractId(user.getProjectAndUserList())) {
|
|
|
-// throw new ServiceException("一个合同段只允许分配一个用户类型信息,请重新选择");
|
|
|
-// }
|
|
|
-// //新增用户绑定项目合同段
|
|
|
-// user.getProjectAndUserList().forEach((i) -> {
|
|
|
-// i.setUserId(String.valueOf(user.getId()));
|
|
|
-// });
|
|
|
-// contractClient.saveUserInfoByProjectThree(user.getProjectAndUserList());
|
|
|
-// return true;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// throw new ServiceException("操作失败");
|
|
|
+ if (b1) {
|
|
|
+ //绑定用户与部门关系
|
|
|
+ boolean b = submitUserDept(user);
|
|
|
+ if (b) {
|
|
|
+ //比较
|
|
|
+ if (checkContractId(user.getProjectAndUserList())) {
|
|
|
+ throw new ServiceException("一个合同段只允许分配一个用户类型信息,请重新选择");
|
|
|
+ }
|
|
|
+ //新增用户绑定项目合同段
|
|
|
+ user.getProjectAndUserList().forEach((i) -> {
|
|
|
+ i.setUserId(String.valueOf(user.getId()));
|
|
|
+ ContractInfo contractInfo = contractClient.getContractById(Long.valueOf(i.getContractId()));
|
|
|
+ //监理、业主、中西试验室合同段新增
|
|
|
+ if (contractInfo!=null&&(contractInfo.getContractType() == 2 || contractInfo.getContractType() == 3 || contractInfo.getContractType() == 4)) {
|
|
|
+ //同步到对应关联的施工合同段中
|
|
|
+ String sql = "select * from m_contract_relation_jlyz where contract_id_jlyz = " + contractInfo.getId();
|
|
|
+ List<String> record_SG = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ContractRelationJlyz.class)).stream().map(ContractRelationJlyz::getContractIdSg).collect(Collectors.toList()).stream().map(String::valueOf).collect(Collectors.toList());
|
|
|
+ if (record_SG.size() > 0) {
|
|
|
+ for (String sgId : record_SG) {
|
|
|
+ //当前施工合同段所有用户角色信息
|
|
|
+ String sql2 = "select * from m_project_assignment_user where contract_id = " + sgId + " and post_id is null and status = 1 and is_deleted = 0";
|
|
|
+ List<SaveUserInfoByProjectDTO> userRoleInfoSG = jdbcTemplate.query(sql2, new BeanPropertyRowMapper<>(SaveUserInfoByProjectDTO.class));
|
|
|
+
|
|
|
+ //去重
|
|
|
+ List<SaveUserInfoByProjectDTO> lists = BeanUtil.copyProperties(user.getProjectAndUserList(), SaveUserInfoByProjectDTO.class);
|
|
|
+ if (lists.size() > 0) {
|
|
|
+ Iterator<SaveUserInfoByProjectDTO> iterator = lists.iterator();
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ SaveUserInfoByProjectDTO jl = iterator.next();
|
|
|
+ for (SaveUserInfoByProjectDTO sg : userRoleInfoSG) {
|
|
|
+ if (sg.getUserId().equals(jl.getUserId())) {
|
|
|
+ //如果监理合同段与施工合同段中有相同的用户信息,就移除,一个用户只能存在一个合同段中
|
|
|
+ iterator.remove();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //重构入参
|
|
|
+ List<SaveUserInfoByProjectDTO> addList = new ArrayList<>();
|
|
|
+ for (SaveUserInfoByProjectDTO jl : lists) {
|
|
|
+ SaveUserInfoByProjectDTO newObj = BeanUtil.copyProperties(jl, SaveUserInfoByProjectDTO.class);
|
|
|
+ assert newObj != null;
|
|
|
+ newObj.setId(SnowFlakeUtil.getId());
|
|
|
+ newObj.setContractId(sgId);
|
|
|
+ newObj.setStatus(1);
|
|
|
+ if (ObjectUtil.isNotEmpty(SecureUtil.getUser())) {
|
|
|
+ newObj.setCreateUser(SecureUtil.getUser().getUserId());
|
|
|
+ newObj.setCreateDept(Long.parseLong(SecureUtil.getUser().getDeptId().split(",")[0]));
|
|
|
+ }
|
|
|
+ newObj.setCreateTime(new Date());
|
|
|
+ newObj.setIsRecordJlId(contractInfo.getId()); //从监理合同段关联的数据,用于删除关联时同步删除用户信息
|
|
|
+ addList.add(newObj);
|
|
|
+ }
|
|
|
+
|
|
|
+ //保存监理数据时,同步到对应关联的施工合同段中去
|
|
|
+ if (addList.size() > 0) {
|
|
|
+ contractClient.saveUserInfoByProjectThree(addList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ contractClient.saveUserInfoByProjectThree(user.getProjectAndUserList());
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ throw new ServiceException("操作失败");
|
|
|
}
|
|
|
|
|
|
/**
|