|
@@ -57,7 +57,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
if(name.contains("变更")){
|
|
if(name.contains("变更")){
|
|
log.info("变更流程");
|
|
log.info("变更流程");
|
|
taskChange(task,taskId);
|
|
taskChange(task,taskId);
|
|
- }else if(name.equals("年度指标")){
|
|
|
|
|
|
+ }else if(name.contains("年度指标")){
|
|
log.info("年度指标");
|
|
log.info("年度指标");
|
|
updateTaskState(task,tfid);
|
|
updateTaskState(task,tfid);
|
|
}else{
|
|
}else{
|
|
@@ -314,7 +314,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
if(sonTasks!=null&&sonTasks.size()>0){
|
|
if(sonTasks!=null&&sonTasks.size()>0){
|
|
for (int i = 0; i < sonTasks.size(); i++) {
|
|
for (int i = 0; i < sonTasks.size(); i++) {
|
|
String sonTaskId=sonTasks.getJSONObject(i).getString("id");
|
|
String sonTaskId=sonTasks.getJSONObject(i).getString("id");
|
|
- JSONObject sonTaskType=tbApiService.getTasksType(projectId,sonTaskId).getJSONObject(0);
|
|
|
|
|
|
+ JSONObject sonTaskType=tbApiService.getTasksType(projectId,sonTasks.getJSONObject(i).getString("sfcId")).getJSONObject(0);
|
|
taskCancel(projectId,sonTaskType,sonTaskId);
|
|
taskCancel(projectId,sonTaskType,sonTaskId);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -380,19 +380,38 @@ public class ThTbServiceImpl implements ThTbService {
|
|
public void taskCustChange(JSONObject task,JSONObject data){
|
|
public void taskCustChange(JSONObject task,JSONObject data){
|
|
String projectId=task.getString("projectId");// 项目ID
|
|
String projectId=task.getString("projectId");// 项目ID
|
|
String customfieldId=data.getString("customfieldId");// 变更的自定义字段ID
|
|
String customfieldId=data.getString("customfieldId");// 变更的自定义字段ID
|
|
- JSONArray array=data.getJSONArray("customfieldValue");// 负责人
|
|
|
|
|
|
+ JSONArray array=data.getJSONArray("customfieldValue");// 责任人
|
|
Map<String,String> projectCusts=new HashMap<>();
|
|
Map<String,String> projectCusts=new HashMap<>();
|
|
List<JSONObject> list=tbApiService.getProjectCustomfield(projectId).toJavaList(JSONObject.class);
|
|
List<JSONObject> list=tbApiService.getProjectCustomfield(projectId).toJavaList(JSONObject.class);
|
|
list.forEach(item -> projectCusts.put(item.getString("name"),item.getString("id")));
|
|
list.forEach(item -> projectCusts.put(item.getString("name"),item.getString("id")));
|
|
if(!customfieldId.equals(projectCusts.get("责任人"))){
|
|
if(!customfieldId.equals(projectCusts.get("责任人"))){
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ Map<String,String> projectSfc=new HashMap<>();
|
|
|
|
+ List<JSONObject> list2=tbApiService.getTasksType(projectId).toJavaList(JSONObject.class);
|
|
|
|
+ list2.forEach(item -> projectSfc.put(item.getString("id"),item.getString("name")));
|
|
String cid=projectCusts.get("上级任务责任人");
|
|
String cid=projectCusts.get("上级任务责任人");
|
|
JSONArray tasks=tbApiService.getTasksByParent(task.getString("id"));
|
|
JSONArray tasks=tbApiService.getTasksByParent(task.getString("id"));
|
|
for (int i = 0; i < tasks.size(); i++) {
|
|
for (int i = 0; i < tasks.size(); i++) {
|
|
JSONObject taskDetail=tasks.getJSONObject(i);
|
|
JSONObject taskDetail=tasks.getJSONObject(i);
|
|
String id=taskDetail.getString("id");
|
|
String id=taskDetail.getString("id");
|
|
- tbApiService.updateTaskCustomfield(id,cid,array);
|
|
|
|
|
|
+ if(projectSfc.get(taskDetail.getString("sfcId")).contains("指标")){
|
|
|
|
+ // 指标 查询下级任务
|
|
|
|
+ JSONArray tasks2=tbApiService.getTasksByParent(id);
|
|
|
|
+ for (int j = 0; j < tasks2.size(); j++) {
|
|
|
|
+ JSONObject taskDetail2=tasks2.getJSONObject(j);
|
|
|
|
+ String id2=taskDetail2.getString("id");
|
|
|
|
+ if(projectSfc.get(taskDetail2.getString("sfcId")).contains("指标")){
|
|
|
|
+ // 还是指标不处理
|
|
|
|
+ }else{
|
|
|
|
+ // 任务 更新 上级任务责任人
|
|
|
|
+ tbApiService.updateTaskCustomfield(id2,cid,array);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ // 任务 更新 上级任务责任人
|
|
|
|
+ tbApiService.updateTaskCustomfield(id,cid,array);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -434,6 +453,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
tbApiService.updateTaskCustomfield(task.getString("id"),projectCusts.get(custName),value);
|
|
tbApiService.updateTaskCustomfield(task.getString("id"),projectCusts.get(custName),value);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void syncState() {
|
|
public void syncState() {
|
|
syncStateByTag(PROJECT_TAG_ID);
|
|
syncStateByTag(PROJECT_TAG_ID);
|
|
@@ -522,6 +542,9 @@ public class ThTbServiceImpl implements ThTbService {
|
|
for (int i = 0; i < tasks.size(); i++) {
|
|
for (int i = 0; i < tasks.size(); i++) {
|
|
JSONObject task = tasks.getJSONObject(i);
|
|
JSONObject task = tasks.getJSONObject(i);
|
|
log.info("同步任务,任务编号:[{}]进度:[{}/{}]",task.getString("id"),i+1,tasks.size());
|
|
log.info("同步任务,任务编号:[{}]进度:[{}/{}]",task.getString("id"),i+1,tasks.size());
|
|
|
|
+ if("取消".equals(map.get(task.getString("tfsId")))){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
Map saveMap=UtilMap.map("textField_m0rkuewb, textField_m0rkuewd, textField_m0rkuewc, textField_m0rkuewe, selectField_m0rkuewk, textField_m0vtq84z, textField_m0vtq850"
|
|
Map saveMap=UtilMap.map("textField_m0rkuewb, textField_m0rkuewd, textField_m0rkuewc, textField_m0rkuewe, selectField_m0rkuewk, textField_m0vtq84z, textField_m0vtq850"
|
|
,task.getString("id"),task.getString("content")
|
|
,task.getString("id"),task.getString("content")
|
|
,projectId,project.getString("name"),map.get(task.getString("tfsId"))
|
|
,projectId,project.getString("name"),map.get(task.getString("tfsId"))
|
|
@@ -646,16 +669,19 @@ public class ThTbServiceImpl implements ThTbService {
|
|
public McR taskUpdate(JSONObject param) {
|
|
public McR taskUpdate(JSONObject param) {
|
|
String type=param.getString("type");
|
|
String type=param.getString("type");
|
|
String taskId=param.getString("taskId");
|
|
String taskId=param.getString("taskId");
|
|
|
|
+ String ydKey=param.getString("ydKey");
|
|
if(type.equals("content")){
|
|
if(type.equals("content")){
|
|
// 标题
|
|
// 标题
|
|
tbApiService.updateTaskLock(taskId,false,Arrays.asList(UtilMap.map("action","content$update")));
|
|
tbApiService.updateTaskLock(taskId,false,Arrays.asList(UtilMap.map("action","content$update")));
|
|
tbApiService.updateTaskContent(taskId,param.getString("content"));
|
|
tbApiService.updateTaskContent(taskId,param.getString("content"));
|
|
tbApiService.updateTaskLock(taskId,true,Arrays.asList(UtilMap.map("action","content$update")));
|
|
tbApiService.updateTaskLock(taskId,true,Arrays.asList(UtilMap.map("action","content$update")));
|
|
|
|
+ updateYdData(UtilMap.map(ydKey,param.getString("content")),taskId);
|
|
}else if(type.equals("executorId")){
|
|
}else if(type.equals("executorId")){
|
|
// 执行人
|
|
// 执行人
|
|
tbApiService.updateTaskLock(taskId,false,Arrays.asList(UtilMap.map("action","executorId$update")));
|
|
tbApiService.updateTaskLock(taskId,false,Arrays.asList(UtilMap.map("action","executorId$update")));
|
|
tbApiService.updateTaskExecutor(taskId,tbApiService.getUserId(param.getString("executorId"),false));
|
|
tbApiService.updateTaskExecutor(taskId,tbApiService.getUserId(param.getString("executorId"),false));
|
|
tbApiService.updateTaskLock(taskId,true,Arrays.asList(UtilMap.map("action","executorId$update")));
|
|
tbApiService.updateTaskLock(taskId,true,Arrays.asList(UtilMap.map("action","executorId$update")));
|
|
|
|
+ updateYdData(UtilMap.map(ydKey,Arrays.asList(param.getString("executorId"))),taskId);
|
|
}else if(type.equals("qz")){
|
|
}else if(type.equals("qz")){
|
|
// 权重
|
|
// 权重
|
|
String[] taskIds=taskId.split(",");
|
|
String[] taskIds=taskId.split(",");
|
|
@@ -667,6 +693,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
tbApiService.updateTaskLock(taskIds[i],false,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
tbApiService.updateTaskLock(taskIds[i],false,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
tbApiService.updateTaskCustomfield(taskIds[i],param.getString("cId"),qzValues[i]);
|
|
tbApiService.updateTaskCustomfield(taskIds[i],param.getString("cId"),qzValues[i]);
|
|
tbApiService.updateTaskLock(taskIds[i],false,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
tbApiService.updateTaskLock(taskIds[i],false,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
|
|
+ updateYdData(UtilMap.map(ydKey,qzValues[i]),taskIds[i]);
|
|
}
|
|
}
|
|
}else if(type.equals("lxzrr")){
|
|
}else if(type.equals("lxzrr")){
|
|
// 联系责任人
|
|
// 联系责任人
|
|
@@ -679,17 +706,37 @@ public class ThTbServiceImpl implements ThTbService {
|
|
tbApiService.updateTaskLock(taskId,false,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
tbApiService.updateTaskLock(taskId,false,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
tbApiService.updateTaskCustomfield(taskId,param.getString("cId"),array);
|
|
tbApiService.updateTaskCustomfield(taskId,param.getString("cId"),array);
|
|
tbApiService.updateTaskLock(taskId,true,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
tbApiService.updateTaskLock(taskId,true,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
|
|
+ updateYdData(UtilMap.map(ydKey,ids),taskId);
|
|
}else if(type.equals("custValue")){
|
|
}else if(type.equals("custValue")){
|
|
// 自定义字段
|
|
// 自定义字段
|
|
tbApiService.updateTaskLock(taskId,false,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
tbApiService.updateTaskLock(taskId,false,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
tbApiService.updateTaskCustomfield(taskId,param.getString("cId"),param.getString("cValue"));
|
|
tbApiService.updateTaskCustomfield(taskId,param.getString("cId"),param.getString("cValue"));
|
|
tbApiService.updateTaskLock(taskId,true,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
tbApiService.updateTaskLock(taskId,true,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
|
|
+ updateYdData(UtilMap.map(ydKey,param.getString("cValue")),taskId);
|
|
}else{
|
|
}else{
|
|
return McR.error("201","type 错误");
|
|
return McR.error("201","type 错误");
|
|
}
|
|
}
|
|
return McR.success();
|
|
return McR.success();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void updateYdData(Map saveMap,String taskid){
|
|
|
|
+ ydClient.operateData(YDParam.builder().formUuid(_matchFormUuid("TASK"))
|
|
|
|
+ .formDataJson(JSONObject.toJSONString(saveMap))
|
|
|
|
+ .searchCondition(JSONObject.toJSONString(Arrays.asList(new YDSearch("textField_m0rkuewb",taskid,"taskid", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ))))
|
|
|
|
+ .build(), YDConf.FORM_OPERATION.upsert);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public McR taskCancel(JSONObject param) {
|
|
|
|
+ String taskId = param.getString("taskId");
|
|
|
|
+ JSONObject task = tbApiService.getTasksInfo(taskId).getJSONObject(0);
|
|
|
|
+ String projectId = task.getString("projectId");
|
|
|
|
+ String sfcId=task.getString("sfcId");
|
|
|
|
+ JSONObject taskType=tbApiService.getTasksType(projectId,sfcId).getJSONObject(0);
|
|
|
|
+ taskCancel(projectId,taskType,taskId);
|
|
|
|
+ return McR.success();
|
|
|
|
+ }
|
|
|
|
+
|
|
//获取项目任务类型
|
|
//获取项目任务类型
|
|
public JSONArray getXiangmuRenwuLeixing(String xmid){
|
|
public JSONArray getXiangmuRenwuLeixing(String xmid){
|
|
JSONArray array=tbApiService.getTasksType(xmid);
|
|
JSONArray array=tbApiService.getTasksType(xmid);
|