Bläddra i källkod

取消办结时,修改任务的最后一个阶段时间为任务完成时间

wanyuan 7 månader sedan
förälder
incheckning
727c5a0f32

+ 41 - 35
tc-service/tap-task/src/main/java/com/minto/app/task/manager/TaskManagerImpl.java

@@ -11903,41 +11903,7 @@ public class TaskManagerImpl implements ITaskManager {
 						t.setEndDate(endTime);
 						Date endDate = endTime;
 						updateTaskSummary(t);
-						//需要将事项最后一个阶段时间自动修改至事项完成时间才对
-						List<TaskPhase> phaseList=findTaskPhaseByTaskId(taskId);
-						if(CollectionUtil.isNotEmpty(phaseList)){
-							TaskPhase phase=phaseList.get(phaseList.size()-1);
-							phase.setEndDate(endDate);
-							//相关数据修改
-							Criterion cr=Restrictions.eq("taskId",taskId);
-							cr=Restrictions.and(cr, Restrictions.eq("phaseId",phase.getId()));
-							List<TaskMemberPhase> memberPhases=AppContext.getBean(ITaskMemberDao.class).findTaskMemberPhaseByTaskIdAndType(cr);
-							if(CollectionUtil.isNotEmpty(memberPhases)){
-								for(TaskMemberPhase tmp:memberPhases){
-									tmp.setEndDate(endDate);
-									saveOrUpdateAll(Arrays.asList(tmp));
-								}
-							}
-							List<TaskMemberPhaseReportConfig> tmpsList=findTaskMemberPhaseReportConfigByTaskIdAndPhaseId(new Long[]{phase.getId()},taskId);
-							if(CollectionUtil.isNotEmpty(tmpsList)){
-								for(TaskMemberPhaseReportConfig c:tmpsList){
-									c.setEndDate(endTime);
-									saveOrUpdateAll(Arrays.asList(c));
-								}
-							}
-
-							//这张表里面的最后一个阶段时间也要自动修改至事项完成时间
-							List<TaskPhaseReportConfig> taskPhaseReportConfig = findTaskPhaseReportConfigByPhaseId(phase.getId());
-							if (CollectionUtil.isNotEmpty(taskPhaseReportConfig)) {
-								for (TaskPhaseReportConfig c : taskPhaseReportConfig) {
-									c.setTime(endDate);
-									c.setConfigName(DateUtil.monthAndDayByDate(endTime)+"前完成");
-									saveOrUpdateAll(Arrays.asList(c));
-								}
-								saveOrUpdateAll(Arrays.asList(phase));
-							}
-							saveOrUpdateAll(Arrays.asList(phase));
-						}
+						updateTaskPhaseEndDate(taskId, endDate);
 						if (!isSys) {
 							// 行为
 
@@ -11969,6 +11935,46 @@ public class TaskManagerImpl implements ITaskManager {
 		}
 	}
 
+	@Override
+	public void updateTaskPhaseEndDate(Long taskId, Date endDate){
+		//需要将事项最后一个阶段时间自动修改至事项完成时间才对
+		List<TaskPhase> phaseList=findTaskPhaseByTaskId(taskId);
+		if(CollectionUtil.isNotEmpty(phaseList)){
+			TaskPhase phase=phaseList.get(phaseList.size()-1);
+			phase.setEndDate(endDate);
+			//相关数据修改
+			Criterion cr=Restrictions.eq("taskId", taskId);
+			cr=Restrictions.and(cr, Restrictions.eq("phaseId",phase.getId()));
+			List<TaskMemberPhase> memberPhases=AppContext.getBean(ITaskMemberDao.class).findTaskMemberPhaseByTaskIdAndType(cr);
+			if(CollectionUtil.isNotEmpty(memberPhases)){
+				for(TaskMemberPhase tmp:memberPhases){
+					tmp.setEndDate(endDate);
+					saveOrUpdateAll(Arrays.asList(tmp));
+				}
+			}
+			List<TaskMemberPhaseReportConfig> tmpsList=findTaskMemberPhaseReportConfigByTaskIdAndPhaseId(new Long[]{phase.getId()},
+					taskId);
+			if(CollectionUtil.isNotEmpty(tmpsList)){
+				for(TaskMemberPhaseReportConfig c:tmpsList){
+					c.setEndDate(endDate);
+					saveOrUpdateAll(Arrays.asList(c));
+				}
+			}
+
+			//这张表里面的最后一个阶段时间也要自动修改至事项完成时间
+			List<TaskPhaseReportConfig> taskPhaseReportConfig = findTaskPhaseReportConfigByPhaseId(phase.getId());
+			if (CollectionUtil.isNotEmpty(taskPhaseReportConfig)) {
+				for (TaskPhaseReportConfig c : taskPhaseReportConfig) {
+					c.setTime(endDate);
+					c.setConfigName(DateUtil.monthAndDayByDate(endDate)+"前完成");
+					saveOrUpdateAll(Arrays.asList(c));
+				}
+				saveOrUpdateAll(Arrays.asList(phase));
+			}
+			saveOrUpdateAll(Arrays.asList(phase));
+		}
+	}
+
 
 	@Override
 	public List<Map<String,Object>> findAllTaskFileByTaskId(Long taskId) throws BusinessException {

+ 8 - 0
tip-api/src/main/java/com/minto/app/task/manager/ITaskManager.java

@@ -2666,6 +2666,14 @@ public interface ITaskManager {
      */
     void updateTaskEndTime(List<Long> taskIds, Date endTime, Long curUserId, boolean isSys) throws BusinessException;
 
+    /**
+     * 更新最后一个阶段的完成时间
+     * @param taskId
+     * @param endDate
+     * @return
+     */
+    void updateTaskPhaseEndDate(Long taskId, Date endDate);
+
     /**
      * 根据事项ID查询该事项所有的附件
      * @param taskId

+ 6 - 0
tip-front/src/main/java/com/minto/app/task/controller/TaskByTypeProcessController.java

@@ -84,6 +84,7 @@ import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.xml.crypto.Data;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -4140,6 +4141,11 @@ public class TaskByTypeProcessController extends BaseController {
 
             taskSummary.setReportState(TaskEnum.TaskSummaryReportStatusEnum.normal.getKey());
             taskManager.updateTaskSummary(taskSummary);
+            //事项最后一个阶段时间自动修改至事项完成时间
+            String endTimeStr = ReqUtil.getString(request, "endDate");
+            if(StringUtil.isNotEmpty(endTimeStr)){
+                taskManager.updateTaskPhaseEndDate(taskId, DateUtil.getDate(endTimeStr + " 18:00:00", DateUtil.FORMAT_DATE_TIME));
+            }
 
             List<TaskMemberBean> taskMemberBeans = new ArrayList<>();
             List<TaskMemberBean> needSendMessageMembers = new ArrayList<>();