|
@@ -108,7 +108,7 @@ public class TaskController {
|
|
//当前用户
|
|
//当前用户
|
|
User user = userMapper.selectById(userId);
|
|
User user = userMapper.selectById(userId);
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
-
|
|
|
|
|
|
+ WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
|
|
//新建的任务,需要设置创建人,创建时间
|
|
//新建的任务,需要设置创建人,创建时间
|
|
if (task.getId() == null) {
|
|
if (task.getId() == null) {
|
|
task.setCreateDate(LocalDate.now());
|
|
task.setCreateDate(LocalDate.now());
|
|
@@ -217,6 +217,7 @@ public class TaskController {
|
|
boolean needRecalculateProgress = false;
|
|
boolean needRecalculateProgress = false;
|
|
List<String> msgRecepientList = new ArrayList<>();
|
|
List<String> msgRecepientList = new ArrayList<>();
|
|
List<Task> needReOrderList = new ArrayList<>();
|
|
List<Task> needReOrderList = new ArrayList<>();
|
|
|
|
+ StringBuilder taskCommentString=new StringBuilder();
|
|
//新建的任务需要计算排序
|
|
//新建的任务需要计算排序
|
|
if (task.getId() == null) {
|
|
if (task.getId() == null) {
|
|
isNew = true;
|
|
isNew = true;
|
|
@@ -256,15 +257,47 @@ public class TaskController {
|
|
//计算需要移除的执行人
|
|
//计算需要移除的执行人
|
|
List<Integer> ids = oldExeList.stream().filter(old->!task.getExecutorList().stream().anyMatch(newT->newT.getId()!=null&&newT.getId().equals(old.getId())))
|
|
List<Integer> ids = oldExeList.stream().filter(old->!task.getExecutorList().stream().anyMatch(newT->newT.getId()!=null&&newT.getId().equals(old.getId())))
|
|
.map(TaskExecutor::getId).collect(Collectors.toList());
|
|
.map(TaskExecutor::getId).collect(Collectors.toList());
|
|
|
|
+ List<TaskExecutor> hasRemoveExecutor = oldExeList.stream().filter(old -> !task.getExecutorList().stream().anyMatch(newT -> newT.getId() != null && newT.getId().equals(old.getId()))).collect(Collectors.toList());
|
|
|
|
+ if(hasRemoveExecutor.size()>0){
|
|
|
|
+ if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
|
+ taskCommentString.append(",移除了执行人["+hasRemoveExecutor.stream().map(h->"$userName="+h.getExecutorName()+"$").collect(Collectors.joining(","))+"]");
|
|
|
|
+ }else {
|
|
|
|
+ taskCommentString.append(",移除了执行人["+hasRemoveExecutor.stream().map(TaskExecutor::getExecutorName).collect(Collectors.joining(","))+"]");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
if (ids.size() > 0) {
|
|
if (ids.size() > 0) {
|
|
taskExecutorService.removeByIds(ids);
|
|
taskExecutorService.removeByIds(ids);
|
|
}
|
|
}
|
|
if (task.getExecutorList().size() > 0) {
|
|
if (task.getExecutorList().size() > 0) {
|
|
task.getExecutorList().forEach(exe->exe.setTaskId(task.getId()));
|
|
task.getExecutorList().forEach(exe->exe.setTaskId(task.getId()));
|
|
|
|
+ //之前就存在的执行人数据
|
|
|
|
+ List<TaskExecutor> oldHas = task.getExecutorList().stream().filter(t -> t.getId() != null).collect(Collectors.toList());
|
|
taskExecutorService.saveOrUpdateBatch(task.getExecutorList());
|
|
taskExecutorService.saveOrUpdateBatch(task.getExecutorList());
|
|
//新增的执行人
|
|
//新增的执行人
|
|
msgRecepientList = task.getExecutorList().stream().filter(newT->!StringUtils.isEmpty(newT.getExecutorId()) && !oldExeList.stream().anyMatch(old->newT.getExecutorId().equals(old.getExecutorId())))
|
|
msgRecepientList = task.getExecutorList().stream().filter(newT->!StringUtils.isEmpty(newT.getExecutorId()) && !oldExeList.stream().anyMatch(old->newT.getExecutorId().equals(old.getExecutorId())))
|
|
.map(TaskExecutor::getExecutorId).collect(Collectors.toList());
|
|
.map(TaskExecutor::getExecutorId).collect(Collectors.toList());
|
|
|
|
+ List<TaskExecutor> newAddExecutor = task.getExecutorList().stream().filter(newT -> !StringUtils.isEmpty(newT.getExecutorId()) && !oldExeList.stream().anyMatch(old -> newT.getExecutorId().equals(old.getExecutorId()))).collect(Collectors.toList());
|
|
|
|
+ if(newAddExecutor.size()>0){
|
|
|
|
+ if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
|
+ taskCommentString.append(",新增了执行人["+newAddExecutor.stream().map(h->"$userName="+h.getExecutorName()+"$").collect(Collectors.joining(","))+"]");
|
|
|
|
+ }else {
|
|
|
|
+ taskCommentString.append(",新增了执行人["+newAddExecutor.stream().map(TaskExecutor::getExecutorName).collect(Collectors.joining(","))+"]");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for (TaskExecutor oldHa : oldHas) {
|
|
|
|
+ Optional<TaskExecutor> first = oldExeList.stream().filter(o -> o.getId().equals(oldHa.getId())).findFirst();
|
|
|
|
+ if(first.isPresent()){
|
|
|
|
+ if(!oldHa.getPlanHours().equals(first.get().getPlanHours())){
|
|
|
|
+ if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
|
|
|
|
+ taskCommentString.append(",修改了执行人["+"$userName"+oldHa.getExecutorName()+"$"+"]计划工时为"+oldHa.getPlanHours()+"小时");
|
|
|
|
+ }else {
|
|
|
|
+ taskCommentString.append(",修改了执行人["+oldHa.getExecutorName()+"]计划工时为"+oldHa.getPlanHours()+"小时");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
if(task.getStartDate()==null){
|
|
if(task.getStartDate()==null){
|
|
taskMapper.updateStartDate(task.getId());
|
|
taskMapper.updateStartDate(task.getId());
|
|
@@ -303,7 +336,7 @@ public class TaskController {
|
|
comment.setUserName(user.getName());
|
|
comment.setUserName(user.getName());
|
|
comment.setType(isNew?1:2);
|
|
comment.setType(isNew?1:2);
|
|
//comment.setContent(user.getName()+(isNew?"创建":"编辑")+"了任务");
|
|
//comment.setContent(user.getName()+(isNew?"创建":"编辑")+"了任务");
|
|
- comment.setContent(user.getName()+(isNew?MessageUtils.message("entry.create"):MessageUtils.message("entry.editedTask"))+MessageUtils.message("entry.task"));
|
|
|
|
|
|
+ comment.setContent(user.getName()+(isNew?MessageUtils.message("entry.create"):MessageUtils.message("entry.editedTask"))+MessageUtils.message("entry.task")+(isNew?"":taskCommentString.toString()));
|
|
taskCommentMapper.insert(comment);
|
|
taskCommentMapper.insert(comment);
|
|
|
|
|
|
//需要重新计算项目进度
|
|
//需要重新计算项目进度
|
|
@@ -328,8 +361,6 @@ public class TaskController {
|
|
companyDingdingService.sendNewTaskMsg(dingding, recpUserList.stream().map(User::getDingdingUserid).collect(Collectors.joining(",")),
|
|
companyDingdingService.sendNewTaskMsg(dingding, recpUserList.stream().map(User::getDingdingUserid).collect(Collectors.joining(",")),
|
|
task.getName(), endStr);
|
|
task.getName(), endStr);
|
|
} else if (recpUserList.get(0).getCorpwxUserid() != null) {
|
|
} else if (recpUserList.get(0).getCorpwxUserid() != null) {
|
|
- //企业微信用户
|
|
|
|
- WxCorpInfo wxCorpInfo = wxCorpInfoService.getOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
|
|
|
|
String corpUid = recpUserList.stream().map(User::getCorpwxUserid).distinct().collect(Collectors.joining("|"));
|
|
String corpUid = recpUserList.stream().map(User::getCorpwxUserid).distinct().collect(Collectors.joining("|"));
|
|
JSONObject json=new JSONObject();
|
|
JSONObject json=new JSONObject();
|
|
JSONArray dataJson=new JSONArray();
|
|
JSONArray dataJson=new JSONArray();
|