|
|
@@ -16,6 +16,9 @@ import java.util.concurrent.Future;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
+import com.lc.ibps.bpmn.api.cmd.ProcInstCmd;
|
|
|
+import com.lc.ibps.bpmn.api.constant.NodeStatus;
|
|
|
+import com.lc.ibps.bpmn.cmd.IbpsProcInstCmd;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.slf4j.event.Level;
|
|
|
@@ -171,6 +174,8 @@ public class BpmTaskActionServiceImpl implements BpmTaskActionService{
|
|
|
if(!StringValidator.isZeroEmpty(bpmTask.getTaskId())){
|
|
|
StopWatchUtil.stopAndStartNewLocal(localId, step, "getByTaskId");
|
|
|
task=natTaskService.getByTaskId(bpmTask.getTaskId());//TODO 性能略低
|
|
|
+ //update subject
|
|
|
+ updateSubject(cmd,task);
|
|
|
}
|
|
|
new Thread(() ->{
|
|
|
StopWatchUtil.stopAndStartNewLocal(localId, step, "publicDoNextEvent.prev");
|
|
|
@@ -629,4 +634,21 @@ public class BpmTaskActionServiceImpl implements BpmTaskActionService{
|
|
|
//TODO 设置任务代理
|
|
|
}
|
|
|
|
|
|
+ private void updateSubject( IbpsTaskFinishCmd cmd, BpmDelegateTask delegateTask ) {
|
|
|
+ IBpmProcInst inst = bpmInstService.getProcInst(cmd.getInstId());
|
|
|
+ ProcInstCmd procInstCmd = new IbpsProcInstCmd() ;
|
|
|
+ procInstCmd.setBusData(cmd.getBusData());
|
|
|
+ procInstCmd.setCurUserName(cmd.getCurUserName());
|
|
|
+ procInstCmd.setBusinessKey(cmd.getBusinessKey());
|
|
|
+ ((IbpsProcInstCmd) procInstCmd).setVariables(cmd.getVariables());
|
|
|
+ bpmInstService.saveSubject(inst,procInstCmd);
|
|
|
+
|
|
|
+ // update bpmn variable for next task.
|
|
|
+ if(cmd.getActionName().equals(NodeStatus.SAVE.getKey())){
|
|
|
+ natTaskService.setVariable(cmd.getTaskId(), BpmConstants.SUBJECT, inst.getSubject());
|
|
|
+ }else {
|
|
|
+ cmd.getVariables().put(BpmConstants.SUBJECT, inst.getSubject());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|