|
@@ -4914,6 +4914,105 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if (reportAuditorsCell != null) {
|
|
|
|
+ String part = reportAuditorsCell.getStringCellValue().trim();
|
|
|
|
+ if (!StringUtils.isEmpty(part)) {
|
|
|
|
+ String[] partSplit = part.split("\\,|\\,");
|
|
|
|
+ for (String str : partSplit) {
|
|
|
|
+ if(str.equals(inchargerCell.getStringCellValue())){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ ProjectAuditor projectAuditor = new ProjectAuditor();
|
|
|
|
+ String s1;
|
|
|
|
+ if(str.startsWith("/")){
|
|
|
|
+ s1=str.substring(1,str.length());
|
|
|
|
+ }else s1=str;
|
|
|
|
+ String s2;
|
|
|
|
+ if(s1.endsWith("/")){
|
|
|
|
+ s2=s1.substring(0,s1.length()-1);
|
|
|
|
+ }else s2=s1;
|
|
|
|
+ String[] split = str.split("/");
|
|
|
|
+ Optional<User> first;
|
|
|
|
+ Integer exception=null;
|
|
|
|
+ if(split.length==1){
|
|
|
|
+ if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
|
|
|
|
+ Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
|
|
|
|
+ first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
|
|
|
|
+ }else {
|
|
|
|
+ first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
|
|
|
|
+ }
|
|
|
|
+ exception=0;
|
|
|
|
+ }else {
|
|
|
|
+ if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
|
|
|
|
+ Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
|
|
|
|
+ first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
|
|
|
|
+ exception=1;
|
|
|
|
+ }else {
|
|
|
|
+ first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ Participation p = new Participation();
|
|
|
|
+ if (first.isPresent()) {
|
|
|
|
+ p.setUserId(first.get().getId());
|
|
|
|
+ p.setProjectId(project.getId());
|
|
|
|
+ participationList.add(p);
|
|
|
|
+ } else {
|
|
|
|
+ switch (exception){
|
|
|
|
+ case 0:throw new Exception("["+split[0]+"]在系统中不存在");
|
|
|
|
+ case 1:throw new Exception("["+split[1]+"]在系统中不存在");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (reportCcCell != null) {
|
|
|
|
+ String part = reportCcCell.getStringCellValue().trim();
|
|
|
|
+ if (!StringUtils.isEmpty(part)) {
|
|
|
|
+ String[] partSplit = part.split("\\,|\\,");
|
|
|
|
+ for (String str : partSplit) {
|
|
|
|
+ ProjectCcuser projectCcuser = new ProjectCcuser();
|
|
|
|
+ String s1;
|
|
|
|
+ if(str.startsWith("/")){
|
|
|
|
+ s1=str.substring(1,str.length());
|
|
|
|
+ }else s1=str;
|
|
|
|
+ String s2;
|
|
|
|
+ if(s1.endsWith("/")){
|
|
|
|
+ s2=s1.substring(0,s1.length()-1);
|
|
|
|
+ }else s2=s1;
|
|
|
|
+ String[] split = str.split("/");
|
|
|
|
+ Optional<User> first;
|
|
|
|
+ Integer exception=null;
|
|
|
|
+ if(split.length==1){
|
|
|
|
+ if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
|
|
|
|
+ Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
|
|
|
|
+ first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
|
|
|
|
+ }else {
|
|
|
|
+ first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
|
|
|
|
+ }
|
|
|
|
+ exception=0;
|
|
|
|
+ }else {
|
|
|
|
+ if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
|
|
|
|
+ Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
|
|
|
|
+ first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
|
|
|
|
+ exception=1;
|
|
|
|
+ }else {
|
|
|
|
+ first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ Participation p = new Participation();
|
|
|
|
+ if (first.isPresent()) {
|
|
|
|
+ p.setUserId(first.get().getId());
|
|
|
|
+ p.setProjectId(project.getId());
|
|
|
|
+ participationList.add(p);
|
|
|
|
+ } else {
|
|
|
|
+ switch (exception){
|
|
|
|
+ case 0:throw new Exception("["+split[0]+"]在系统中不存在");
|
|
|
|
+ case 1:throw new Exception("["+split[1]+"]在系统中不存在");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if (participationList.size() > 0) {
|
|
if (participationList.size() > 0) {
|
|
//批量保存
|
|
//批量保存
|
|
List<Participation> finalOldPartList = oldPartList;
|
|
List<Participation> finalOldPartList = oldPartList;
|
|
@@ -6170,6 +6269,105 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ if (reportAuditorsCell != null) {
|
|
|
|
+ String part = reportAuditorsCell.getStringCellValue().trim();
|
|
|
|
+ if (!StringUtils.isEmpty(part)) {
|
|
|
|
+ String[] partSplit = part.split("\\,|\\,");
|
|
|
|
+ for (String str : partSplit) {
|
|
|
|
+ if(str.equals(inchargerCell.getStringCellValue())){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ ProjectAuditor projectAuditor = new ProjectAuditor();
|
|
|
|
+ String s1;
|
|
|
|
+ if(str.startsWith("/")){
|
|
|
|
+ s1=str.substring(1,str.length());
|
|
|
|
+ }else s1=str;
|
|
|
|
+ String s2;
|
|
|
|
+ if(s1.endsWith("/")){
|
|
|
|
+ s2=s1.substring(0,s1.length()-1);
|
|
|
|
+ }else s2=s1;
|
|
|
|
+ String[] split = str.split("/");
|
|
|
|
+ Optional<User> first;
|
|
|
|
+ Integer exception=null;
|
|
|
|
+ if(split.length==1){
|
|
|
|
+ if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
|
|
|
|
+ Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
|
|
|
|
+ first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
|
|
|
|
+ }else {
|
|
|
|
+ first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
|
|
|
|
+ }
|
|
|
|
+ exception=0;
|
|
|
|
+ }else {
|
|
|
|
+ if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
|
|
|
|
+ Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
|
|
|
|
+ first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
|
|
|
|
+ exception=1;
|
|
|
|
+ }else {
|
|
|
|
+ first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ Participation p = new Participation();
|
|
|
|
+ if (first.isPresent()) {
|
|
|
|
+ p.setUserId(first.get().getId());
|
|
|
|
+ p.setProjectId(project.getId());
|
|
|
|
+ participationList.add(p);
|
|
|
|
+ } else {
|
|
|
|
+ switch (exception){
|
|
|
|
+ case 0:throw new Exception("["+split[0]+"]在系统中不存在");
|
|
|
|
+ case 1:throw new Exception("["+split[1]+"]在系统中不存在");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (reportCcCell != null) {
|
|
|
|
+ String part = reportCcCell.getStringCellValue().trim();
|
|
|
|
+ if (!StringUtils.isEmpty(part)) {
|
|
|
|
+ String[] partSplit = part.split("\\,|\\,");
|
|
|
|
+ for (String str : partSplit) {
|
|
|
|
+ ProjectCcuser projectCcuser = new ProjectCcuser();
|
|
|
|
+ String s1;
|
|
|
|
+ if(str.startsWith("/")){
|
|
|
|
+ s1=str.substring(1,str.length());
|
|
|
|
+ }else s1=str;
|
|
|
|
+ String s2;
|
|
|
|
+ if(s1.endsWith("/")){
|
|
|
|
+ s2=s1.substring(0,s1.length()-1);
|
|
|
|
+ }else s2=s1;
|
|
|
|
+ String[] split = str.split("/");
|
|
|
|
+ Optional<User> first;
|
|
|
|
+ Integer exception=null;
|
|
|
|
+ if(split.length==1){
|
|
|
|
+ if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
|
|
|
|
+ Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[0])).findFirst();
|
|
|
|
+ first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
|
|
|
|
+ }else {
|
|
|
|
+ first= userList.stream().filter(u -> u.getName().equals(split[0])||(u.getJobNumber()!=null&&u.getJobNumber().equals(split[0]))).findFirst();
|
|
|
|
+ }
|
|
|
|
+ exception=0;
|
|
|
|
+ }else {
|
|
|
|
+ if((wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1)||(dingding!=null&&dingding.getContactNeedTranslate()==1)){
|
|
|
|
+ Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(split[1])).findFirst();
|
|
|
|
+ first= userList.stream().filter(u ->(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))||(optional.isPresent()&&((u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))||(u.getDingdingUserid()!=null&&u.getDingdingUserid().equals(optional.get().getCorpwxUserid()))))).findFirst();
|
|
|
|
+ exception=1;
|
|
|
|
+ }else {
|
|
|
|
+ first= userList.stream().filter(u -> u.getName().equals(split[1])&&(u.getJobNumber()!=null&&u.getJobNumber().equals(split[1]))).findFirst();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ Participation p = new Participation();
|
|
|
|
+ if (first.isPresent()) {
|
|
|
|
+ p.setUserId(first.get().getId());
|
|
|
|
+ p.setProjectId(project.getId());
|
|
|
|
+ participationList.add(p);
|
|
|
|
+ } else {
|
|
|
|
+ switch (exception){
|
|
|
|
+ case 0:throw new Exception("["+split[0]+"]在系统中不存在");
|
|
|
|
+ case 1:throw new Exception("["+split[1]+"]在系统中不存在");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if (participationList.size() > 0) {
|
|
if (participationList.size() > 0) {
|
|
//批量保存
|
|
//批量保存
|
|
List<Participation> finalOldPartList = oldPartList;
|
|
List<Participation> finalOldPartList = oldPartList;
|