Просмотр исходного кода

Merge branch 'FIXBUG_subject_not_updated' of wy/zdqy_ibps into matser

吴懿 2 лет назад
Родитель
Сommit
cfaa2eb9de

+ 17 - 40
ibps-bpmn-root/modules/bpmn-biz/src/main/java/com/lc/ibps/bpmn/listener/TaskCompleteEventListener.java

@@ -1,25 +1,10 @@
 package com.lc.ibps.bpmn.listener;
 
-import java.util.Date;
-import java.util.Map;
-
-import javax.annotation.Resource;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.ApplicationListener;
-import org.springframework.core.Ordered;
-import org.springframework.stereotype.Service;
-
 import com.lc.ibps.base.core.util.BeanUtils;
 import com.lc.ibps.base.core.util.string.StringUtil;
 import com.lc.ibps.bpmn.api.cmd.ActionCmd;
 import com.lc.ibps.bpmn.api.cmd.TaskFinishCmd;
-import com.lc.ibps.bpmn.api.constant.ActionType;
-import com.lc.ibps.bpmn.api.constant.BpmConstants;
-import com.lc.ibps.bpmn.api.constant.NodeStatus;
-import com.lc.ibps.bpmn.api.constant.TemplateType;
-import com.lc.ibps.bpmn.api.constant.TemplateVar;
+import com.lc.ibps.bpmn.api.constant.*;
 import com.lc.ibps.bpmn.api.context.BpmnContextUtil;
 import com.lc.ibps.bpmn.api.context.ContextVariableUtil;
 import com.lc.ibps.bpmn.api.event.TaskCompleteEvent;
@@ -29,30 +14,21 @@ import com.lc.ibps.bpmn.api.model.task.SkipRes;
 import com.lc.ibps.bpmn.api.nat.inst.NatProInstService;
 import com.lc.ibps.bpmn.api.nat.task.NatTaskService;
 import com.lc.ibps.bpmn.builder.BpmOperLogBuilder;
-import com.lc.ibps.bpmn.domain.ActExecution;
-import com.lc.ibps.bpmn.domain.BpmApprove;
-import com.lc.ibps.bpmn.domain.BpmExec;
-import com.lc.ibps.bpmn.domain.BpmOperNotify;
-import com.lc.ibps.bpmn.domain.BpmTask;
-import com.lc.ibps.bpmn.domain.BpmTaskAssign;
-import com.lc.ibps.bpmn.domain.BpmTaskChange;
-import com.lc.ibps.bpmn.persistence.entity.ActExecutionPo;
-import com.lc.ibps.bpmn.persistence.entity.BpmApprovePo;
-import com.lc.ibps.bpmn.persistence.entity.BpmExecPo;
-import com.lc.ibps.bpmn.persistence.entity.BpmInstPo;
-import com.lc.ibps.bpmn.persistence.entity.BpmOperLogPo;
-import com.lc.ibps.bpmn.persistence.entity.BpmOperNotifyPo;
-import com.lc.ibps.bpmn.persistence.entity.BpmTaskPo;
-import com.lc.ibps.bpmn.repository.ActExecutionRepository;
-import com.lc.ibps.bpmn.repository.BpmApproveRepository;
-import com.lc.ibps.bpmn.repository.BpmExecRepository;
-import com.lc.ibps.bpmn.repository.BpmInstRepository;
-import com.lc.ibps.bpmn.repository.BpmOperNotifyRepository;
-import com.lc.ibps.bpmn.repository.BpmTaskChangeRepository;
-import com.lc.ibps.bpmn.repository.BpmTaskRepository;
+import com.lc.ibps.bpmn.domain.*;
+import com.lc.ibps.bpmn.persistence.entity.*;
+import com.lc.ibps.bpmn.repository.*;
 import com.lc.ibps.bpmn.utils.BpmExecUtil;
 import com.lc.ibps.bpmn.utils.BpmUtil;
 import com.lc.ibps.bpmn.utils.NotifyUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ApplicationListener;
+import org.springframework.core.Ordered;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.Map;
 
 /** 
  * 任务完成监听器,做相应动作
@@ -97,7 +73,7 @@ public class TaskCompleteEventListener implements ApplicationListener<TaskComple
 	private BpmOperNotifyRepository bpmOperNotifyRepository;
 	@Resource
 	private BpmTaskChangeRepository bpmTaskChangeRepository;
-	
+
 	@Override
 	public int getOrder(){return 1;}
 
@@ -148,6 +124,7 @@ public class TaskCompleteEventListener implements ApplicationListener<TaskComple
 		
 		// 更新流程实例
 //		updateProcInst(cmd);
+
 		
 		// 完成转办代理任务
 		BpmTaskChange bpmTaskChangeDomain = bpmTaskChangeRepository.newInstance();
@@ -166,7 +143,8 @@ public class TaskCompleteEventListener implements ApplicationListener<TaskComple
 			this.handleRevokedComplete(delegateTask, cmd, actionCmd);
 		}
 	}
-	
+
+
 	private void saveLog(TaskFinishCmd cmd, IBpmTask bpmTask){
 		// 流程操作日志
 		BpmOperLogPo po = BpmOperLogBuilder.build(bpmTask, cmd);
@@ -606,5 +584,4 @@ public class TaskCompleteEventListener implements ApplicationListener<TaskComple
 		bpmTaskAssignDomain.delByTask(taskId);
 		bpmTaskDomain.delete(taskId);
 	}
-
 }

+ 18 - 14
ibps-bpmn-root/modules/bpmn-biz/src/main/java/com/lc/ibps/bpmn/listener/TaskCreateEventListener.java

@@ -6,15 +6,9 @@ import java.util.Map;
 import javax.annotation.Resource;
 
 import com.lc.ibps.bpmn.api.IBpmTaskService;
-import com.lc.ibps.cloud.redis.utils.RedisUtil;
-import io.netty.bootstrap.ServerBootstrap;
-import io.netty.channel.AdaptiveRecvByteBufAllocator;
-import io.netty.channel.Channel;
-import io.netty.channel.ChannelOption;
-import io.netty.channel.EventLoopGroup;
-import io.netty.channel.epoll.EpollChannelOption;
-import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.channel.socket.nio.NioServerSocketChannel;
+import com.lc.ibps.bpmn.api.cmd.ProcInstCmd;
+import com.lc.ibps.bpmn.api.service.BpmProcInstService;
+import com.lc.ibps.bpmn.cmd.IbpsProcInstCmd;
 import org.activiti.engine.ProcessEngine;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -67,7 +61,8 @@ public class TaskCreateEventListener implements ApplicationListener<TaskCreateEv
 	private ProcessEngine processEngine;
 	@Autowired
 	IBpmTaskService services;
-
+	@Autowired
+	private BpmProcInstService bpmProcInstService;
 	@Override
 	public int getOrder(){return 5;}
 
@@ -75,8 +70,8 @@ public class TaskCreateEventListener implements ApplicationListener<TaskCreateEv
 	@Override
 	public void onApplicationEvent(TaskCreateEvent event){
 		BpmDelegateTask delegateTask = (BpmDelegateTask)event.getSource();
-		
-		String subject =delegateTask.getVariableString(BpmConstants.SUBJECT);
+
+		String subject = delegateTask.getVariableString(BpmConstants.SUBJECT);
 		String instId = delegateTask.getVariableString(BpmConstants.PROCESS_INST_ID);
 		String userId = delegateTask.getVariableString(BpmConstants.CUR_USER);
 		String nodeId = delegateTask.getTaskDefinitionKey();
@@ -191,7 +186,8 @@ public class TaskCreateEventListener implements ApplicationListener<TaskCreateEv
 //
 //			}
 //		}).start();
-
+		//更新流程和任务的subject
+		updateSubject(delegateTask, taskCmd,instance);
 	}
 
 	/**
@@ -215,5 +211,13 @@ public class TaskCreateEventListener implements ApplicationListener<TaskCreateEv
 		BpmApprove bpmApproveDomain = bpmApproveRepository.newInstance(approvePo);
 		bpmApproveDomain.create();
 	}
-
+	private void updateSubject(BpmDelegateTask delegateTask, ActionCmd cmd, IBpmProcInst instance) {
+
+		ProcInstCmd procInstCmd = new IbpsProcInstCmd() ;
+		procInstCmd.setBusData(cmd.getBusData());
+		procInstCmd.setCurUserName(cmd.getCurUserName());
+		procInstCmd.setBusinessKey(cmd.getBusinessKey());
+		((IbpsProcInstCmd) procInstCmd).setVariables(cmd.getVariables());
+		bpmProcInstService.saveSubject(instance,procInstCmd);
+	}
 }

+ 21 - 18
ibps-bpmn-root/modules/bpmn-biz/src/main/java/com/lc/ibps/bpmn/service/impl/BpmProcInstServiceImpl.java

@@ -129,15 +129,8 @@ public class BpmProcInstServiceImpl implements BpmProcInstService {
 		try {
 			StopWatchUtil.initAndStartLocal(stepId, Level.DEBUG, step, "getBpmInst");
 			instance = getBpmInst(procInstCmd, false);//TODO 性能点
-			//名称后拼接年份,部门,人员名称
 
-			APIResult<PartyEmployeePo> user = iPartyEmployeeService.get(ContextUtil.getCurrentUserId());
-			String orgName =user.getData().getOrgName();
-			String name = user.getData().getName();
-//			if(name==null||name.equals("")){ //回滚已办事宜任务发起人数据不对问题
-//				name="张维敏";
-//			}
-			instance.setSubject(instance.getSubject()+"{"+this.getSysYear()+"/"+orgName+"/"+name+"}");
+			instance.setSubject(instance.getSubject());
 
 			StopWatchUtil.stopAndStartNewLocal(stepId, step, "baseActionCmd");
 			// 当前用户
@@ -240,10 +233,7 @@ public class BpmProcInstServiceImpl implements BpmProcInstService {
 			if(StringUtil.isNotEmpty(subject)) {
 				instance.setSubject(subject); //设置标题
 			}else{
-				APIResult<PartyEmployeePo> user = iPartyEmployeeService.get(ContextUtil.getCurrentUserId());
-				String orgName = user.getData().getOrgName();
-				String name = user.getData().getName();
-				instance.setSubject(instance.getSubject()+"{"+this.getSysYear()+"/"+orgName+"/"+name+"}");
+				instance.setSubject(instance.getSubject());
 			}
 			StopWatchUtil.stopAndStartNewLocal(stepId, step, "baseActionCmd");
 			String curUser = StringUtil.isNotEmpty(userId)  ? userId :  procInstCmd.getCurUser();
@@ -434,16 +424,29 @@ public class BpmProcInstServiceImpl implements BpmProcInstService {
 	 * @param instance
 	 * @param procInstCmd
 	 */
-	private void saveSubject(BpmInstPo instance, ProcInstCmd procInstCmd) {
+	@Override
+	public void saveSubject(IBpmProcInst instance, ProcInstCmd procInstCmd) {
 		// 设置实例标题
-		IBpmProcDefine<IBpmProcExtendDefine> processDef = bpmDefineReader.getBpmProcDefine(instance.getProcDefId());
-		String subject = bpmInstRepository.getSubject(processDef, procInstCmd, instance);
-		instance.setSubject(subject);
-		BpmInst bpmInst = bpmInstRepository.newInstance(instance);
+		if(!(instance instanceof BpmInstPo)){
+			return;
+		}
+		//名称后拼接年份,部门,人员名称
+		APIResult<PartyEmployeePo> user = iPartyEmployeeService.get(ContextUtil.getCurrentUserId());
+		String orgName =user.getData().getOrgName();
+		String name = user.getData().getName();
+		String moreInfo = "{"+this.getSysYear()+"/"+orgName+"/"+name+"}";
+
+		BpmInstPo bpmInstPo = (BpmInstPo)instance;
+		IBpmProcDefine<IBpmProcExtendDefine> processDef = bpmDefineReader.getBpmProcDefine(bpmInstPo.getProcDefId());
+		String subject = bpmInstRepository.getSubject(processDef, procInstCmd, bpmInstPo);
+		subject = subject + moreInfo;
+
+		bpmInstPo.setSubject(subject);
+		BpmInst bpmInst = bpmInstRepository.newInstance(bpmInstPo);
 		bpmInst.update();
 		// 修改任务标题
 		bpmTaskRepository.setForUpdate();
-		List<BpmTaskPo> listTasks = bpmTaskRepository.findByInstId(instance.getId());
+		List<BpmTaskPo> listTasks = bpmTaskRepository.findByInstId(bpmInstPo.getId());
 		bpmTaskRepository.removeForUpdate();
 		for (BpmTaskPo defaultBpmTask : listTasks) {
 			defaultBpmTask.setSubject(subject);

+ 3 - 1
ibps-bpmnbase-root/modules/bpmn-api/src/main/java/com/lc/ibps/bpmn/api/service/BpmProcInstService.java

@@ -80,7 +80,9 @@ public interface BpmProcInstService extends IScript {
 	 * @return
 	 */
 	Future<IBpmProcInst> startProcInstAsync(ProcInstCmd procInstCmd);
-	
+
+	void saveSubject(IBpmProcInst instance, ProcInstCmd procInstCmd);
+
 	/**
 	 * 保存流程实例为草稿。
 	 * <pre>