Merge branch 'test_20240409_for39' into 'master'

Test 20240409 for39

See merge request laws-foton-slrs/foton-wkflow-rest!92
This commit is contained in:
王晓勇
2024-05-22 09:59:41 +00:00
53 changed files with 485 additions and 145 deletions
@@ -25,11 +25,11 @@ public class BusProcessHistoryController {
* @return
*/
@GetMapping("/queryFlowHistoryList")
public List<BusProcessHistory> queryFlowHistoryList(String actiProcInstId,String flowType) {
public List<BusProcessHistory> queryFlowHistoryList(String actiProcInstId,String flowType,String userId) {
BusProcessHistory busProcessHistory = new BusProcessHistory();
busProcessHistory.setActiProcInstId(actiProcInstId);
busProcessHistory.setFlowType(flowType);
return this.busProcessHistoryService.queryFlowHistoryList(busProcessHistory);
return this.busProcessHistoryService.queryFlowHistoryList(busProcessHistory,userId);
}
/**
@@ -10,7 +10,7 @@ import java.util.Map;
public interface IBusProcessHistoryService extends IService<BusProcessHistory> {
List<BusProcessHistory> queryFlowHistoryList(BusProcessHistory busProcessHistory);
List<BusProcessHistory> queryFlowHistoryList(BusProcessHistory busProcessHistory,String userId);
List<BusProcessHistory> queryByList(BusProcessHistory busProcessHistory);
@@ -39,13 +39,37 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl<BusProcessHistory
private IBusProcessEntrustService iBusProcessEntrustService;
@Override
public List<BusProcessHistory> queryFlowHistoryList(BusProcessHistory busProcessHistory) {
public List<BusProcessHistory> queryFlowHistoryList(BusProcessHistory busProcessHistory,String userId) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(busProcessHistory, bphQueryWrap);
bphQueryWrap.orderByAsc("order_num","create_time");
bphQueryWrap.lambda().and(
query -> query.isNull(BusProcessHistory::getTaskId).isNull(BusProcessHistory::getUserId).eq(BusProcessHistory::getIsMany,"1").or().isNotNull(BusProcessHistory::getTaskId)
);
// 验证当前操作用户,是否只是该流程中子流程中参与的人员(用户参与了外面的节点,也参与了子流程节点,这种情况不属于子流程用户)
// 如果是,查询出非子流程节点所有数据,和他自己参与过的子流程数据,如果不是,查询所有的数据。
boolean isChildProcess = this.checkUserIsChildProcess(busProcessHistory,userId);
if (isChildProcess) {
// 查询出,当前登录用户,所在的子流程数据id
QueryWrapper<BusProcessHistory> childBphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(busProcessHistory, childBphQueryWrap);
childBphQueryWrap.lambda().eq(BusProcessHistory::getUserId,userId);
List<BusProcessHistory> childBpnList = this.list(childBphQueryWrap);
List<String> manyPidList = childBpnList.stream().map(BusProcessHistory::getManyPId)
.distinct().filter(manyPid -> StringUtils.isNotEmpty(manyPid)).collect(Collectors.toList());
bphQueryWrap.lambda().and(
query -> query.isNull(BusProcessHistory::getTaskId).isNull(BusProcessHistory::getUserId)
.eq(BusProcessHistory::getIsMany,"1")
.notLike(BusProcessHistory::getTaskKey,StandardCommentNewProcessNodeKeyEnum.SUB_PROCESS.getLable())
.or().in(BusProcessHistory::getId,manyPidList)
.or().isNotNull(BusProcessHistory::getTaskId)
);
} else {
bphQueryWrap.lambda().and(
query -> query.isNull(BusProcessHistory::getTaskId)
.isNull(BusProcessHistory::getUserId)
.eq(BusProcessHistory::getIsMany,"1")
.or().isNotNull(BusProcessHistory::getTaskId)
);
}
// bphQueryWrap.isNotNull("task_id");
List<BusProcessHistory> bphList = this.list(bphQueryWrap);
this.disposeData(bphList,busProcessHistory.getActiProcInstId());
@@ -97,6 +121,38 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl<BusProcessHistory
return results;
}
/**
* 验证用户是否只是参与子流程的。
* @param bph
* @param userId
* @return
*/
public boolean checkUserIsChildProcess(BusProcessHistory bph,String userId){
boolean result = false;
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
this.setQueryCondition(bph, bphQueryWrap);
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,userId);
List<BusProcessHistory> busProcessHistoryList = this.list(bphQueryWrap);
if (CollectionUtils.isNotEmpty(busProcessHistoryList)) {
for (BusProcessHistory busProcessHistory : busProcessHistoryList) {
if (StringUtils.isNotEmpty(busProcessHistory.getManyPId())) {
BusProcessHistory byId = this.getById(busProcessHistory.getManyPId());
if (StringUtils.contains(byId.getTaskKey(),StandardCommentNewProcessNodeKeyEnum.SUB_PROCESS.getLable())) {
result = true;
continue;
} else {
result = false;
break;
}
} else {
result = false;
break;
}
}
}
return result;
}
@Override
public List<BusProcessHistory> queryByList(BusProcessHistory busProcessHistory) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
@@ -210,7 +266,9 @@ public class IBusProcessHistoryServiceImpl extends ServiceImpl<BusProcessHistory
}
busProcessHistory.setImgShowColor(imgShowColor);
busProcessHistory.setImgShowFlag("1");
busProcessHistory.setCreateTime(new Date());
if (null == busProcessHistory.getCreateTime()) {
busProcessHistory.setCreateTime(new Date());
}
}
this.saveBatch(busProcessHistoryList);
}
@@ -21,6 +21,7 @@ public class JSFApproveBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -21,6 +21,7 @@ public class JSFAuditBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -22,6 +22,7 @@ public class JSFFillinformationBefore implements TaskListener {
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
CreateMQService oaService = SpringContextUtil.getBean(CreateMQService.class);
@@ -11,6 +11,7 @@ import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
@@ -66,20 +67,21 @@ public class JSFstartAfter implements TaskListener {
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
if (null != object.getString("commentText")) {
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
if (object.containsKey("commentText") && StringUtils.isNotBlank(object.getString("commentText"))) {
busProcessNews.setCommitFlag("1");
busProcessNews.setCommitText(object.getString("commentText"));
busBean.save(busProcessNews);
}
busBean.save(busProcessNews);
if (nextUserList != null && !nextUserList.isEmpty()) {
for (String nextUser : nextUserList) {
@@ -21,6 +21,7 @@ public class PRFApproveBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -21,6 +21,7 @@ public class PRFEngineerreviewBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -21,6 +21,7 @@ public class PRFFillinformationBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -21,6 +21,7 @@ public class PRFReviewdockBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -21,6 +21,7 @@ public class PRFUnderengineerBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -11,6 +11,7 @@ import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
@@ -33,7 +34,7 @@ public class PRFstartAfter implements TaskListener {
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
String ids=object.getString("dockUser");
if(ids.contains(",")){
nextUserList=new ArrayList<>(Arrays.asList(ids.split(",")));
@@ -55,7 +56,7 @@ public class PRFstartAfter implements TaskListener {
delegateTask.setVariable("prcCreateUserName", username);
String prcName = "参与外部标准制修订备案-备案任务下发";
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -67,20 +68,21 @@ public class PRFstartAfter implements TaskListener {
busProcessNameService.saveOrUpdate(one1);
}
if (null != object.getString("commentText")) {
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
if (object.containsKey("commentText") && StringUtils.isNotBlank(object.getString("commentText"))) {
busProcessNews.setCommitFlag("1");
busProcessNews.setCommitText(object.getString("commentText"));
busBean.save(busProcessNews);
}
busBean.save(busProcessNews);
if (nextUserList != null && !nextUserList.isEmpty()) {
for (String nextUser : nextUserList) {
@@ -21,6 +21,7 @@ public class RAApproveBefore implements TaskListener{
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -31,6 +31,7 @@ public class RAAuditAfter implements TaskListener {
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject roleForm = object.getJSONObject("roleForm");
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
@@ -46,8 +47,8 @@ public class RAAuditAfter implements TaskListener {
}
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String user = roleForm.getString("prcCreateUser");
String username = roleForm.getString("prcCreateUserName");
delegateTask.setVariable("prcCreateUser", user);
delegateTask.setVariable("prcCreateUserName", username);
String prcName="";
@@ -21,6 +21,7 @@ public class RAAuditBefore implements TaskListener{
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -12,6 +12,7 @@ import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class RAModifyInformationAfter implements TaskListener {
@@ -31,19 +32,27 @@ public class RAModifyInformationAfter implements TaskListener {
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
nextUserList.addAll(delegateTask.getVariable("leadershiplist",List.class));
List<String> nextUserList = new ArrayList<>();
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
JSONObject roleForm = object.getJSONObject("roleForm");
String user = roleForm.getString("prcCreateUser");
String username = roleForm.getString("prcCreateUserName");
String dockUser = roleForm.getString("dockUser");
List<String> dockUserList = Arrays.asList(dockUser.split(","));
delegateTask.setVariable("prcCreateUser", user);
delegateTask.setVariable("prcCreateUserName", username);
// 赋值
delegateTask.setVariable("leadershiplist", dockUserList);
delegateTask.setVariable("statuteminister1", roleForm.getString("ministerUser"));
delegateTask.setVariable("director1", roleForm.getString("directorUser"));
delegateTask.setVariable("dean1", roleForm.getString("president"));
delegateTask.setVariable("statuteengineer3", roleForm.getString("passUser"));
nextUserList.addAll(dockUserList);
String prcName = "外部署名推荐批准-署名领导会签";
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -52,6 +61,7 @@ public class RAModifyInformationAfter implements TaskListener {
// one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
one1.setMes(datas.getFormValsJson());
busProcessNameService.saveOrUpdate(one1);
}
@@ -21,6 +21,7 @@ public class RAModifyInformationBefore implements TaskListener{
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -31,6 +31,7 @@ public class RASignAfter implements TaskListener {
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject roleForm = object.getJSONObject("roleForm");
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
@@ -46,8 +47,8 @@ public class RASignAfter implements TaskListener {
}
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String user = roleForm.getString("prcCreateUser");
String username = roleForm.getString("prcCreateUserName");
delegateTask.setVariable("prcCreateUser", user);
delegateTask.setVariable("prcCreateUserName", username);
String prcName="";
@@ -58,7 +59,7 @@ public class RASignAfter implements TaskListener {
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -21,6 +21,7 @@ public class RASignBefore implements TaskListener{
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -32,9 +32,10 @@ public class RAValidationAfter implements TaskListener {
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
JSONObject roleForm = object.getJSONObject("roleForm");
delegateTask.setVariable("objectJson", object);
List<String> nextUserList = new ArrayList();
List<String> nextUserList = new ArrayList<>();
if(object.getString("signFlag").equals("1")) {
delegateTask.setVariable("zrFlag", 1);
@@ -47,8 +48,8 @@ public class RAValidationAfter implements TaskListener {
}
//截止时间 流程描述 创建人
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String user = roleForm.getString("prcCreateUser");
String username = roleForm.getString("prcCreateUserName");
delegateTask.setVariable("prcCreateUser", user);
delegateTask.setVariable("prcCreateUserName", username);
@@ -59,7 +60,7 @@ public class RAValidationAfter implements TaskListener {
prcName = "外部署名推荐批准-修改信息";
}
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -21,6 +21,7 @@ public class RAValidationBefore implements TaskListener{
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -11,6 +11,8 @@ import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -69,20 +71,22 @@ public class RAstartAfter implements TaskListener {
busProcessNameService.saveOrUpdate(one1);
}
if (null != object.getString("commentText")) {
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
if (object.containsKey("commentText") && StringUtils.isNotBlank(object.getString("commentText"))) {
busProcessNews.setCommitFlag("1");
busProcessNews.setCommitText(object.getString("commentText"));
busBean.save(busProcessNews);
}
busBean.save(busProcessNews);
if (nextUserList != null && !nextUserList.isEmpty()) {
for (String nextUser : nextUserList) {
@@ -102,6 +102,11 @@ public class StartSurveyAfter implements TaskListener {
int i=0;
for(String nextUser : nextUserList){
object.put("onlyKey", i);
// 定义一个子流程id,子流程id,就是子流程的发起人id + - + 流程实例id
String subProcessKey = nextUser + "-" + delegateTask.getProcessInstanceId();
String subProcessId = UUID.randomUUID().toString();
delegateTask.setVariable(subProcessKey,subProcessId);
object.put("subProcessId",subProcessId);
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
@@ -210,8 +215,24 @@ public class StartSurveyAfter implements TaskListener {
}
if (CollectionUtils.isNotEmpty(zrUserIdList)) {
int subProcessIndex = 1;
for (String zrUserId : zrUserIdList) {
// 任务分发
// 获取在上面设置的子流程主键id
String subProcessKey = zrUserId + "-" + delegateTask.getProcessInstanceId();
String subProcessId = (String) delegateTask.getVariable(subProcessKey);
BusProcessHistory rwffBphP = new BusProcessHistory();
rwffBphP.setId(subProcessId);
rwffBphP.setActiProcInstId(delegateTask.getProcessInstanceId());
rwffBphP.setTaskKey(StandardCommentNewProcessNodeKeyEnum.SUB_PROCESS.getLable() + subProcessIndex);
rwffBphP.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
rwffBphP.setOrderNum(StandardCommentNewProcessNodeKeyEnum.SUB_PROCESS.getOrderNum());
rwffBphP.setIsSub("1");
rwffBphP.setIsMany("1");
rwffBphP.setCreateTime(new Date());
bphList.add(rwffBphP);
BusProcessHistory rwffBph = new BusProcessHistory();
rwffBph.setActiProcInstId(delegateTask.getProcessInstanceId());
rwffBph.setUserId(zrUserId);
@@ -220,8 +241,18 @@ public class StartSurveyAfter implements TaskListener {
rwffBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION2.getOrderNum());
rwffBph.setIsSub("2");
rwffBph.setIsMany("2");
rwffBph.setManyPId(subProcessId);
rwffBph.setCreateTime(new Date());
bphList.add(rwffBph);
// 停1秒钟,确保流程历史中的子流程没问题。
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
subProcessIndex ++;
// // 意见汇总审批
// BusProcessHistory yjhzspBph = new BusProcessHistory();
// yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
@@ -138,35 +138,54 @@ public class Step1After implements TaskListener {
List<String> yjfkUserIdList = Arrays.asList(json.getString("responUserList").split(","));
// 意见反馈
if (CollectionUtils.isNotEmpty(yjfkUserIdList)) {
String yjfkPBphId = (String) delegateTask.getVariable("yjfkPBphId");
if (StringUtils.isEmpty(yjfkPBphId)) {
BusProcessHistory yjfkPBph = new BusProcessHistory();
yjfkPBphId = UUID.randomUUID().toString();
yjfkPBph.setId(yjfkPBphId);
yjfkPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjfkPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
yjfkPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjfkPBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum());
yjfkPBph.setIsSub("2");
yjfkPBph.setIsMany("1");
bphList.add(yjfkPBph);
String subProcessId = json.getString("subProcessId");
if (StringUtils.isNotEmpty(subProcessId)) {
for (String yjfkUserId : yjfkUserIdList) {
BusProcessHistory yjfkBph = new BusProcessHistory();
yjfkBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjfkBph.setUserId(yjfkUserId);
yjfkBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
yjfkBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjfkBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum());
yjfkBph.setIsSub("2");
yjfkBph.setIsMany("1");
yjfkBph.setManyPId(subProcessId);
yjfkBph.setParentUserId(delegateTask.getAssignee());
bphList.add(yjfkBph);
}
} else {
String yjfkPBphId = (String) delegateTask.getVariable("yjfkPBphId");
if (StringUtils.isEmpty(yjfkPBphId)) {
BusProcessHistory yjfkPBph = new BusProcessHistory();
yjfkPBphId = UUID.randomUUID().toString();
yjfkPBph.setId(yjfkPBphId);
yjfkPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjfkPBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
yjfkPBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjfkPBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum());
yjfkPBph.setIsSub("2");
yjfkPBph.setIsMany("1");
bphList.add(yjfkPBph);
}
for (String yjfkUserId : yjfkUserIdList) {
BusProcessHistory yjfkBph = new BusProcessHistory();
yjfkBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjfkBph.setUserId(yjfkUserId);
yjfkBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
yjfkBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjfkBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum());
yjfkBph.setIsSub("2");
yjfkBph.setIsMany("1");
yjfkBph.setManyPId(yjfkPBphId);
yjfkBph.setParentUserId(delegateTask.getAssignee());
bphList.add(yjfkBph);
}
delegateTask.setVariable("yjfkPBphId",yjfkPBphId);
}
for (String yjfkUserId : yjfkUserIdList) {
BusProcessHistory yjfkBph = new BusProcessHistory();
yjfkBph.setActiProcInstId(delegateTask.getProcessInstanceId());
yjfkBph.setUserId(yjfkUserId);
yjfkBph.setTaskKey(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getValue());
yjfkBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
yjfkBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION3.getOrderNum());
yjfkBph.setIsSub("2");
yjfkBph.setIsMany("1");
yjfkBph.setManyPId(yjfkPBphId);
yjfkBph.setParentUserId(delegateTask.getAssignee());
bphList.add(yjfkBph);
}
delegateTask.setVariable("yjfkPBphId",yjfkPBphId);
}
bphService.insertBatch(bphList);
@@ -19,6 +19,7 @@ import com.ydw.bat.wkflow.util.enums.TaskStatusEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -141,6 +142,7 @@ public class Step2After implements TaskListener {
if (count == 0) {
List<BusProcessHistory> bphList = new ArrayList<>();
String subProcessId = json.getString("subProcessId");
// 意见汇总审批
BusProcessHistory yjhzspBph = new BusProcessHistory();
yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
@@ -150,6 +152,9 @@ public class Step2After implements TaskListener {
yjhzspBph.setOrderNum(StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getOrderNum());
yjhzspBph.setIsSub("2");
yjhzspBph.setIsMany("2");
if (StringUtils.isNotEmpty(subProcessId)) {
yjhzspBph.setManyPId(subProcessId);
}
bphList.add(yjhzspBph);
bphService.insertBatch(bphList);
@@ -17,6 +17,7 @@ import com.ydw.bat.wkflow.util.enums.StandardCommentNewProcessNodeKeyEnum;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -117,6 +118,10 @@ public class Step3After implements TaskListener {
pzBph.setFlowType(FlowTypeEnum.BZZQYJLC.getValue());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
String subProcessId = json.getString("subProcessId");
if (StringUtils.isNotEmpty(subProcessId)) {
pzBph.setManyPId(subProcessId);
}
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),StandardCommentNewProcessNodeKeyEnum.STAND_ASK_FOR_OPINION4.getValue());
pzBph.setOrderNum(orderNum + 1);
@@ -113,6 +113,7 @@ public class Step4After implements TaskListener {
String spFlag = json.getString("spFlag");
List<BusProcessHistory> bphList = new ArrayList<>();
String subProcessId = json.getString("subProcessId");
// 如果是驳回,流程走向意见处理节点,否则流程结束
if (!StringUtils.equals(spFlag,"0")) {
String zrUserId = json.getString("SKS");
@@ -126,6 +127,9 @@ public class Step4After implements TaskListener {
yjhzspBph.setOrderNum(orderNum + 1);
yjhzspBph.setIsSub("2");
yjhzspBph.setIsMany("2");
if (StringUtils.isNotEmpty(subProcessId)) {
yjhzspBph.setManyPId(subProcessId);
}
bphList.add(yjhzspBph);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
@@ -155,6 +159,9 @@ public class Step4After implements TaskListener {
glyBph.setOrderNum(orderNum + 1);
glyBph.setIsSub("2");
glyBph.setIsMany("2");
if (StringUtils.isNotEmpty(subProcessId)) {
glyBph.setManyPId(subProcessId);
}
glyBph.setParentUserId(delegateTask.getAssignee());
bphList.add(glyBph);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
@@ -141,6 +141,8 @@ public class Step5After implements TaskListener {
if (!StringUtils.equals(bzFlag,"0")) {
String zrUserId = json.getString("SKS");
List<BusProcessHistory> bphList = new ArrayList<>();
String subProcessId = json.getString("subProcessId");
// 意见汇总审批
BusProcessHistory yjhzspBph = new BusProcessHistory();
yjhzspBph.setActiProcInstId(delegateTask.getProcessInstanceId());
@@ -151,6 +153,9 @@ public class Step5After implements TaskListener {
yjhzspBph.setOrderNum(orderNum + 1);
yjhzspBph.setIsSub("2");
yjhzspBph.setIsMany("2");
if (StringUtils.isNotEmpty(subProcessId)) {
yjhzspBph.setManyPId(subProcessId);
}
bphList.add(yjhzspBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
@@ -24,6 +24,7 @@ public class ChargeVerifyBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class DirectorChooseBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class EngineerReviseBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class EngineerReviseDoneBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class LeaderVerifyBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class ManageSignBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class PresidentVerifyBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -61,7 +61,7 @@ public class WriteMaterialAfter implements TaskListener {
String standName = object.getString("listName");
delegateTask.setVariable("listName", standName);
QueryWrapper queryWrapper2 = new QueryWrapper();
QueryWrapper<BusProcessName> queryWrapper2 = new QueryWrapper<>();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if (one1 != null) {
@@ -71,7 +71,6 @@ public class WriteMaterialAfter implements TaskListener {
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
if (null != object.getString("commentText")) {
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
@@ -82,9 +81,11 @@ public class WriteMaterialAfter implements TaskListener {
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
busProcessNews.setCommitText(object.getString("commentText"));
if (object.containsKey("commentText") && StringUtils.isNotBlank(object.getString("commentText"))) {
busProcessNews.setCommitFlag("1");
busProcessNews.setCommitText(object.getString("commentText"));
}
busBean.save(busProcessNews);
}
JSONObject object1 = object.getJSONObject("ch_pageData");
@@ -24,6 +24,7 @@ public class WriteMaterialBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -23,6 +23,7 @@ public class WriteMemberInfoBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -26,6 +26,7 @@ import org.apache.tomcat.util.digester.ArrayStack;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* 发起企标制修订流程后
@@ -369,15 +370,34 @@ public class BLApplicantAfter implements TaskListener{
// 批准
String zhrUserId = json.getString("zhrUserId");
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(zhrUserId);
pzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getOrderNum());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
bphList.add(pzBph);
List<String> zhrUserIdList = Arrays.stream(zhrUserId.split(",")).filter(StringUtils::isNotBlank).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(qcUserIdList)) {
// 批准节点父节点信息
BusProcessHistory pzPBph = new BusProcessHistory();
String pzPBphId = UUID.randomUUID().toString();
pzPBph.setId(pzPBphId);
pzPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getOrderNum());
pzPBph.setIsSub("2");
pzPBph.setIsMany("1");
bphList.add(pzPBph);
for (String eachZhrUserId : zhrUserIdList) {
// 批准子节点信息
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(eachZhrUserId);
pzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getOrderNum());
pzBph.setIsSub("2");
pzBph.setIsMany("1");
pzBph.setManyPId(pzPBphId);
bphList.add(pzBph);
}
}
// 培训
String pxUserId = json.getString("pxUserId");
@@ -1,7 +1,6 @@
package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessHistory;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
@@ -15,13 +14,18 @@ import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.repository.ProcessDefinition;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
/**
* 专委会副主任/起草单位中心主任审定后
@@ -29,6 +33,11 @@ import java.util.List;
public class BussLibrary10After implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
RepositoryService repositoryService = SpringContextUtil.getBean(RepositoryService.class);
// 获取当前流程的流程定义
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionId(delegateTask.getProcessDefinitionId())
.singleResult();
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
@@ -70,10 +79,16 @@ public class BussLibrary10After implements TaskListener{
if(StringUtils.isNotBlank(approvalOpinion)){
if ("0".equalsIgnoreCase(approvalOpinion)) {
if(StringUtils.isNotBlank(object.getString("zhrUserId"))){
delegateTask.setVariable("zhrUserId",object.getString("zhrUserId"));
nextUserList.add(object.getString("zhrUserId"));
String zhrUserId = object.getString("zhrUserId");
if(StringUtils.isNotBlank(zhrUserId)){
List<String> zhrUserIdList = Arrays.stream(zhrUserId.split(",")).filter(StringUtils::isNotBlank).collect(Collectors.toList());
// 对旧数据做兼容,如果流程定义版本低于13则是旧数据,批准节点是单人处理,之后的版本是多人处理
if (processDefinition.getVersion() <= 13) {
delegateTask.setVariable("zhrUserId",zhrUserIdList.get(0));
} else {
delegateTask.setVariable("zhrUserId",zhrUserIdList);
}
nextUserList.addAll(zhrUserIdList);
// BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
BussUtils.approvalFunc3(delegateTask, object, prcName, nextUserList);
@@ -104,43 +119,90 @@ public class BussLibrary10After implements TaskListener{
}else {
throw new ActivitiException("1#2 提交OR驳回参数不存在");
}
this.addBusProcessHistory(object,delegateTask);
this.addBusProcessHistory(object,delegateTask, processDefinition);
}
private String verifyObj(String str){
return (str == null || str.equals("")) ? "" : str;
}
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask) {
public void addBusProcessHistory(JSONObject json,DelegateTask delegateTask, ProcessDefinition processDefinition) {
IBusProcessHistoryService bphService = SpringContextUtil.getBean(IBusProcessHistoryService.class);
Integer fzrFlag = (Integer) delegateTask.getVariable("fzrFlag");
if (fzrFlag == 0) {
String zhrUserId = json.getString("zhrUserId");
// 如果存在 批准 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, zhrUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<String> zhrUserIdList = Arrays.stream(zhrUserId.split(",")).filter(StringUtils::isNotBlank).collect(Collectors.toList());
// 对旧数据做兼容,如果流程定义版本低于13则是旧数据,批准节点是单人处理,之后的版本是多人处理
if (processDefinition.getVersion() <= 13) {
// 如果存在 批准 节点的数据,taskId为空。 不用添加,否则需要添加。
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId, delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId, zhrUserId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 批准
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(zhrUserId);
pzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
pzBph.setOrderNum(orderNum + 1);
bphList.add(pzBph);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
// 批准
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(zhrUserId);
pzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzBph.setIsSub("2");
pzBph.setIsMany("2");
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(), BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
pzBph.setOrderNum(orderNum + 1);
bphList.add(pzBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(), orderNum + 1, bphList.size());
}
} else {
if (CollectionUtils.isNotEmpty(zhrUserIdList)) {
List<BusProcessHistory> bphList = new ArrayList<>();
int orderNum = bphService.getMaxOrderNum(delegateTask.getProcessInstanceId(),BussLibraryNodeKeyEnum.BUSS_LIBRARY10.getValue());
String pzPBphId = UUID.randomUUID().toString();
for (String userId : zhrUserIdList) {
QueryWrapper<BusProcessHistory> bphQueryWrap = new QueryWrapper<>();
bphQueryWrap.lambda().eq(BusProcessHistory::getActiProcInstId,delegateTask.getProcessInstanceId());
bphQueryWrap.lambda().eq(BusProcessHistory::getUserId,userId);
bphQueryWrap.lambda().eq(BusProcessHistory::getTaskKey, BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
bphQueryWrap.lambda().isNull(BusProcessHistory::getTaskId);
List<BusProcessHistory> busProcessHistoryList = bphService.list(bphQueryWrap);
if (CollectionUtils.isEmpty(busProcessHistoryList)) {
BusProcessHistory pzBph = new BusProcessHistory();
pzBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzBph.setUserId(userId);
pzBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getOrderNum());
pzBph.setIsSub("2");
pzBph.setIsMany("1");
pzBph.setManyPId(pzPBphId);
pzBph.setOrderNum(orderNum + 1);
bphList.add(pzBph);
}
}
if (CollectionUtils.isNotEmpty(bphList)) {
BusProcessHistory pzPBph = new BusProcessHistory();
pzPBph.setId(pzPBphId);
pzPBph.setActiProcInstId(delegateTask.getProcessInstanceId());
pzPBph.setTaskKey(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getValue());
pzPBph.setFlowType(FlowTypeEnum.QBZXD_JSBZ.getValue());
pzPBph.setOrderNum(BussLibraryNodeKeyEnum.BUSS_LIBRARY11.getOrderNum());
pzPBph.setIsSub("2");
pzPBph.setIsMany("1");
pzPBph.setOrderNum(orderNum + 1);
bphList.add(pzPBph);
bphService.insertBatch(bphList);
bphService.updateOrderNum(delegateTask.getProcessInstanceId(),orderNum + 1,bphList.size());
}
}
}
} else if (fzrFlag == 1) {
String cxdUserId = (String) delegateTask.getVariable("cxdUserId");
@@ -11,17 +11,22 @@ import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessHistoryService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.business_oa.webService.service.WebServiceOAService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.enums.BussLibraryNodeKeyEnum;
import com.ydw.bat.wkflow.util.enums.FlowTypeEnum;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.HistoryService;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.history.HistoricTaskInstance;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 专委会主任/总院院长或主管副院长批准后
@@ -32,6 +37,7 @@ public class BussLibrary11After implements TaskListener{
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
WebServiceOAService webServiceOAService = SpringContextUtil.getBean(WebServiceOAService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
@@ -75,13 +81,76 @@ public class BussLibrary11After implements TaskListener{
delegateTask.setVariable("pxUserId",object.getString("pxUserId"));
nextUserList.add(object.getString("pxUserId"));
// BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
BussUtils.approvalFunc3(delegateTask, object, prcName, nextUserList);
// 存储当前节点意见
LambdaQueryWrapper<BusProcessNew> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(BusProcessNew::getTaskId,delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if (list.isEmpty()) {
throw new ActivitiException("流程实例不存在");
}
// 当前节点
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(busProcessNew);
// 下一个节点
try {
Integer nrOfCompletedInstances = delegateTask.getVariable("nrOfCompletedInstances", Integer.class);
if (nrOfCompletedInstances == 0) {
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
} catch (NullPointerException e) {
// 对旧数据做兼容,旧流程是单人处理节点没有 nrOfCompletedInstances
for (String nextUser : nextUserList) {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
delegateTask.setVariable("zrFlag", 0);
}else {
throw new ActivitiException("1#2主起草人用户参数不存在,请配置相关用户");
}
} else {
HistoryService historyService = SpringContextUtil.getBean(HistoryService.class);
// 改为多人处理节点后需要驳回需要删除未完成人员的待办OA
List<HistoricTaskInstance> historicTaskInstanceList = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(delegateTask.getProcessInstanceId())
.taskDefinitionKey(delegateTask.getTaskDefinitionKey())
.unfinished()
.list();
List<String> unFinishedTaskIdList = historicTaskInstanceList.stream()
.map(HistoricTaskInstance::getId)
.filter(taskId -> !Objects.equals(taskId, delegateTask.getId()))
.collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(unFinishedTaskIdList)) {
LambdaQueryWrapper<BusProcessNew> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BusProcessNew::getPId, delegateTask.getProcessInstanceId());
wrapper.in(BusProcessNew::getTaskId, unFinishedTaskIdList);
List<BusProcessNew> busProcessNewList = busBean.list(wrapper);
for (BusProcessNew busProcessNew : busProcessNewList) {
webServiceOAService.deleteOAByMandatory(busProcessNew.getId(), busProcessNew.getUserId());
}
}
if(StringUtils.isNotBlank(object.getString("xdUserId"))) {
// 驳回节点数据
BusProcessNew busProcessNew = new BusProcessNew();
@@ -23,6 +23,7 @@ public class ChargeVerifyBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -24,6 +24,7 @@ public class DirectorChooseBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -24,6 +24,7 @@ public class EngineerReviseBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -24,6 +24,7 @@ public class EngineerReviseDoneBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -26,6 +26,7 @@ public class LeaderVerifyBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -24,6 +24,7 @@ public class ManageSignBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -24,6 +24,7 @@ public class PresidentVerifyBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -77,20 +77,21 @@ public class WriteMaterialAfter implements TaskListener {
busProcessNameService.saveOrUpdate(one1);
}
if (null != object.getString("commentText")) {
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
BusProcessNew busProcessNews = new BusProcessNew();
busProcessNews.setMsgType("clause");
busProcessNews.setPId(delegateTask.getProcessInstanceId());
busProcessNews.setMesg(object.toJSONString());
busProcessNews.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNews.setFinishFlag("0");
busProcessNews.setTaskInfo(delegateTask.getName());
busProcessNews.setTaskId(delegateTask.getId());
busProcessNews.setUserId("start");
busProcessNews.setPrcName(prcName);
if (object.containsKey("commentText") && StringUtils.isNotBlank(object.getString("commentText"))) {
busProcessNews.setCommitFlag("1");
busProcessNews.setCommitText(object.getString("commentText"));
busBean.save(busProcessNews);
}
busBean.save(busProcessNews);
JSONObject object1 = object.getJSONObject("rh_pageData");
WgWorkGroupShowDTO wgWorkGroupShowDTO = new WgWorkGroupShowDTO();
@@ -24,6 +24,7 @@ public class WriteMemberInfoBefore implements TaskListener {
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskInfo(delegateTask.getName());
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
@@ -58,6 +58,9 @@ public enum BussLibraryNodeKeyEnum {
break;
}
}
if (StringUtils.isEmpty(result)) {
result = value;
}
return result;
}
@@ -11,7 +11,7 @@ import java.util.List;
*/
public enum StandardCommentNewProcessNodeKeyEnum {
STAND_ASK_FOR_OPINION1("StandAskForOpinion1","起草",0,true),
// SUB_PROCESS("subProcess","子流程",1),
SUB_PROCESS("subProcess","子流程",1,false),
STAND_ASK_FOR_OPINION2("StandAskForOpinion2","任务分发",2,true),
STAND_ASK_FOR_OPINION3("StandAskForOpinion3","意见反馈",3,true),
STAND_ASK_FOR_OPINION4("StandAskForOpinion4","意见汇总审批",4,true),
@@ -53,6 +53,9 @@ public enum StandardCommentNewProcessNodeKeyEnum {
break;
}
}
if (StringUtils.isEmpty(result)) {
result = value;
}
return result;
}