标准清单流程

This commit is contained in:
yuezhihang
2021-07-05 15:49:25 +08:00
parent 261cc9448a
commit 96d9e28c57
14 changed files with 729 additions and 10 deletions
@@ -66,8 +66,9 @@ public class TaskController {
// historicTaskInstance.put("assignee", map.get("USR_NAME"));
// }
if(ChkUtil.isNull(historicTaskInstance.get("assignee"))) {
ResponseMessage<List<OrgEO>> listUser = lawsUserInfoService.getManagerByOrgIdNew("企业标准管理工程师");
if(listUser.getData()!=null){
// ResponseMessage<List<OrgEO>> listUser = lawsUserInfoService.getManagerByOrgIdNew("企业标准管理工程师");
ResponseMessage<List<OrgEO>> listUser = new ResponseMessage<>();
if(false){
List<String> qbgcs = new ArrayList<>();
for (OrgEO orgEO : listUser.getData()) {
qbgcs.add(orgEO.getUserName());
@@ -1979,17 +1979,19 @@ public class TodoTaskController extends BaseAction {
assignee += ((byId.getData().getOrgName() != null && !byId.getData().getOrgName().equals("")) ? byId.getData().getOrgName() + "-" + byId.getData().getUname() : byId.getData().getUname()) + ",";
}
}
}else{
}
else{
String end = this.isEnd(busProcessName.getPrcId());
if(end.equals("0")){
ResponseMessage<List<OrgEO>> listUser = lawsUserInfoService.getManagerByOrgIdNew("企业标准管理工程师");
if(listUser.getData()!=null){
// List<String> qbgcs = new ArrayList<>();
// ResponseMessage<List<OrgEO>> listUser = lawsUserInfoService.getManagerByOrgIdNew("企业标准管理工程师");
ResponseMessage<List<OrgEO>> listUser=new ResponseMessage<>();
if(false){
List<String> qbgcs = new ArrayList<>();
for (OrgEO orgEO : listUser.getData()) {
assignee+=orgEO.getRoleName()+"-"+orgEO.getUserName();
}
// String str= StringUtils.join(qbgcs, ",");
// assignee+=str;
String str= StringUtils.join(qbgcs, ",");
assignee+=str;
}
}
}
@@ -2,9 +2,12 @@ package com.ydw.bat.wkflow.business_auth;
import com.github.pagehelper.PageInfo;
import com.tmsps.fk.common.wrapper.Wrapper;
import com.ydw.bat.wkflow.business_main.datas.dto.AddDetailedDto;
import com.ydw.bat.wkflow.business_main.datas.dto.DetailedUpDto;
import com.ydw.bat.wkflow.business_main.datas.dto.SarLawsDetailedList;
import com.ydw.bat.wkflow.business_main.datas.entity.*;
import feign.Headers;
import feign.Param;
import org.apache.ibatis.annotations.Param;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
@@ -16,7 +19,7 @@ import java.util.Map;
import java.util.Set;
@Component
@FeignClient(value = "FotonLAWSSystem",path="/api",url="")
@FeignClient(value = "FotonLAWSSystem3",path="/api",url="")
@RequestMapping("/")
public interface LawsUserInfoService {
@@ -84,4 +87,13 @@ public interface LawsUserInfoService {
@GetMapping("lawss/mail/sendMailByUserIdFeign")
public ResponseMessage sendEmail(@RequestParam("userId") String userId, @RequestParam("msg") String msg, @RequestParam("title") String title);
@PutMapping("sarLawsDetailedList/sar-laws-detailed-list/updateList")
public ResponseMessage updateLaws(@RequestBody DetailedUpDto addDetailedDto);
@RequestMapping(value = "sarLawsDetailedList/sar-laws-detailed-list/getStandById",method = RequestMethod.POST)
public SarLawsDetailedList getStandById(@RequestParam("id") String id);
}
@@ -0,0 +1,45 @@
package com.ydw.bat.wkflow.business_main.datas.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
/**
* //TODO 添加类、接口描述
*
* @author ZhangZhiYuan
* @date 2021-06-24
*/
@Data
public class AddDetailedDto {
@ApiModelProperty(value = "国家或地区")
private String countryArea;
@ApiModelProperty(value = "项目名称")
private String projectName;
@ApiModelProperty(value = "清单类别")
private String detailedList;
@ApiModelProperty(value = "区分,国家地区为1,项目名称为2,清单类别为3")
private String sortKey;
@ApiModelProperty(value = "清单名称")
private String detailedListName;
@ApiModelProperty(value = "清单详情")
private String remark;
@ApiModelProperty(value = "清单状态,1为未发布,2为发布")
private String detailedListState;
@ApiModelProperty(value = "适用领域")
private String applicationScope;
@ApiModelProperty(value = "更新人")
private String updatePeople;
@ApiModelProperty(value = "上传的附件")
private MultipartFile[] files;
@ApiModelProperty(value = "要添加的清单id")
private String[] lawsIds;
public MultipartFile getFiles(int i) {
return files[i];
}
}
@@ -0,0 +1,60 @@
package com.ydw.bat.wkflow.business_main.datas.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* //TODO 添加类、接口描述
*
* @author ZhangZhiYuan
* @date 2021-06-25
*/
@Data
public class DetailedUpDto {
@ApiModelProperty(value = "主键")
private String id;
@ApiModelProperty(value = "国家或地区")
private String countryArea;
@ApiModelProperty(value = "项目名称")
private String projectName;
@ApiModelProperty(value = "清单类别")
private String detailedList;
@ApiModelProperty(value = "区分,国家地区为1,项目名称为2,清单类别为3")
private String sortKey;
@ApiModelProperty(value = "清单名称")
private String detailedListName;
@ApiModelProperty(value = "清单状态,1为未发布,2为发布")
private String detailedListState;
@ApiModelProperty(value = "清单版本,默认V0")
private String detailedListVision;
@ApiModelProperty(value = "适用领域")
private String applicationScope;
@ApiModelProperty(value = "附件id")
private String fileId;
@ApiModelProperty(value = "更新时间")
private Date reNewTime;
@ApiModelProperty(value = "更新人")
private String reNewPeople;
@ApiModelProperty(value = "要添加的清单id")
private String[] lawsIds;
@ApiModelProperty(value = "清单详情")
private String remark;
}
@@ -0,0 +1,71 @@
package com.ydw.bat.wkflow.business_main.datas.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author szc
* @since 2021-06-15
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value="SarLawsDetailedList对象", description="")
public class SarLawsDetailedList {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
@TableId("id")
private String id;
@ApiModelProperty(value = "国家或地区")
private String countryArea;
@ApiModelProperty(value = "项目名称")
private String projectName;
@ApiModelProperty(value = "清单类别")
private String detailedList;
@ApiModelProperty(value = "区分,国家地区为1,项目名称为2,清单类别为3")
private String sortKey;
@ApiModelProperty(value = "清单名称")
private String detailedListName;
@ApiModelProperty(value = "清单状态,1为未发布,2为发布")
private String detailedListState;
@ApiModelProperty(value = "清单版本,默认V0")
private String detailedListVision;
@ApiModelProperty(value = "适用领域")
private String applicationScope;
@ApiModelProperty(value = "清单列表")
private String remark;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "更新人")
private String updatePeople;
@ApiModelProperty(value = "附件id")
private String fileId;
}
@@ -0,0 +1,94 @@
package com.ydw.bat.wkflow.listener.standardRegulatoryProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
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.util.SpringContextUtil;
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.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 标准法规清单申请会签后manager
*/
public class CountersignSRPAfter implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
// JSONObject array = object.getJSONObject("hqsqForm");
if(StringUtils.isNotBlank(object.getString("applyUpdUserId"))){
delegateTask.setVariable("applyUserId",object.getString("applyUpdUserId"));
nextUserList.add(object.getString("applyUpdUserId"));
}else {
throw new ActivitiException("1#2申请人修订用户不存在,请配置相关人员");
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
// object.getString("standName")
String standName = object.getString("standName");
String prcName = standName+"-标准法规清单申请";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setOverTime(OVERTIME);
one1.setPrcType("3");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("TASK_ID",delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNew);
}
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busProcessNew.setUserId(nextUser);
busBean.save(busProcessNew);
}
}
}
}
@@ -0,0 +1,28 @@
package com.ydw.bat.wkflow.listener.standardRegulatoryProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.List;
/**
* 标准法规清单申请会签前
*/
public class CountersignSRPBefore implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,92 @@
package com.ydw.bat.wkflow.listener.standardRegulatoryProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
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.util.SpringContextUtil;
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.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 标准法规清单申请人修订后manager
*/
public class SRPApplyApplicantAfter implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
if(StringUtils.isNotBlank(object.getString("jlUserId"))){
delegateTask.setVariable("managerUserId",object.getString("jlUserId"));
nextUserList.add(object.getString("jlUserId"));
}else {
throw new ActivitiException("1#2经理人不存在,请配置相关人员");
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
// object.getString("standName")
String standName = object.getString("standName");
String prcName = standName+"-标准法规清单申请-修订";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setOverTime(OVERTIME);
one1.setPrcType("3");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("TASK_ID",delegateTask.getId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew busProcessNew = list.get(0);
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(busProcessNew);
}
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busProcessNew.setUserId(nextUser);
busBean.save(busProcessNew);
}
}
}
}
@@ -0,0 +1,28 @@
package com.ydw.bat.wkflow.listener.standardRegulatoryProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.List;
/**
* 标准法规清单申请人修订前
*/
public class SRPApplyApplicantBefore implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,95 @@
package com.ydw.bat.wkflow.listener.standardRegulatoryProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.dto.AddDetailedDto;
import com.ydw.bat.wkflow.business_main.datas.dto.DetailedUpDto;
import com.ydw.bat.wkflow.business_main.datas.dto.SarLawsDetailedList;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
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.util.SpringContextUtil;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 经理人审批后
*/
public class SRPManagerApproveAfter implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
String approvalOpinion = object.get("approvalOpinion") == null ? "" : object.get("approvalOpinion").toString();
if("1".equalsIgnoreCase(approvalOpinion)){
delegateTask.setVariable("jlFlag",1);
delegateTask.setVariable("applyUserId",object.getString("applyUpdUserId"));
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busProcessNew.setUserId(object.getString("applyUpdUserId"));
busBean.save(busProcessNew);
func1(delegateTask, busBean, object,"1");
}else {
SarLawsDetailedList lawsDetailedList=lawsUserInfoService.getStandById(object.getString("standId"));
if (null!=lawsDetailedList){
// 获取字母
Pattern p = Pattern.compile("[\\d]");
Matcher matcher = p.matcher(lawsDetailedList.getDetailedListVision());
String re1 = matcher.replaceAll("");
// 获取数字
Pattern p2 = Pattern.compile("[a-zA-z]");
Matcher matcher2 = p2.matcher(lawsDetailedList.getDetailedListVision());
String re2 = matcher2.replaceAll("");
DetailedUpDto detailed=new DetailedUpDto();
detailed.setId(object.getString("standId"));
detailed.setApplicationScope(object.getString("applyRegion"));
detailed.setFileId(object.getString("enclosure"));
detailed.setRemark(object.getString("descriptionList"));
detailed.setDetailedListState("1");
detailed.setDetailedListVision(re1+String.valueOf(Integer.valueOf(re2)+1));
lawsUserInfoService.updateLaws(detailed);
}else {
throw new ActivitiException("清单信息不存在,若多次出现此信息请联系管理员!!!");
}
delegateTask.setVariable("jlFlag",0);
func1(delegateTask, busBean, object,"0");
}
}
private void func1(DelegateTask delegateTask, IBusProcessNewService busBean, JSONObject object,String commitFlag) {
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.eq("TASK_ID",delegateTask.getId());
BusProcessNew one1 = busBean.getOne(queryWrapper1);
if(one1!=null){
one1.setCommitFlag(commitFlag);
one1.setCommitText(object.getString("commentText"));
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,28 @@
package com.ydw.bat.wkflow.listener.standardRegulatoryProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.List;
/**
* 经理人审批前
*/
public class SRPManagerApproveBefore implements TaskListener{
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,136 @@
package com.ydw.bat.wkflow.listener.standardRegulatoryProcess;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_auth.LawsUserInfoService;
import com.ydw.bat.wkflow.business_main.datas.dto.DetailedUpDto;
import com.ydw.bat.wkflow.business_main.datas.dto.SarLawsDetailedList;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
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.util.SpringContextUtil;
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.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SRPstartAfter implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
//默认流程数据接口
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
//流程节点信息
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
//流程信息
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
//根据流程id找到流程信息
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
Datas datas = datasService.getOne(queryWrapper);
JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
// 逻辑判断是否会签 signFlag
if(object.getString("signFlag").equals("1")){
delegateTask.setVariable("hqFlag",1);
if(StringUtils.isNotBlank(object.getString("zrUserId"))){
if(object.getString("zrUserId").contains(",")){
nextUserList = Arrays.asList(object.getString("zrUserId").split(","));
}else {
nextUserList.add(object.getString("zrUserId"));
}
// 配置多实例
delegateTask.setVariable("hqUserList",nextUserList);
}
}else {
delegateTask.setVariable("hqFlag",2);
if(StringUtils.isNotBlank(object.getString("jlUserId"))){
delegateTask.setVariable("managerUserId",object.getString("jlUserId"));
}
}
//设置审批中的状态
SarLawsDetailedList lawsDetailedList=lawsUserInfoService.getStandById(object.getString("standId"));
if (null!=lawsDetailedList){
DetailedUpDto detailed=new DetailedUpDto();
detailed.setId(object.getString("standId"));
detailed.setDetailedListState("3");
lawsUserInfoService.updateLaws(detailed);
}else {
throw new ActivitiException("清单信息不存在,若多次出现此信息请联系管理员!!!");
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName");
String standName = object.getString("standName");
String prcName = standName+"-标准法规清单申请";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
one1.setOverTime(OVERTIME);
one1.setPrcType("3");
one1.setPrcName(prcName);
one1.setCreatUser(user);
one1.setCreatUserName(username);
busProcessNameService.saveOrUpdate(one1);
}
// 存储当前节点意见
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setMsgType("clause");
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setMesg(object.toJSONString());
busProcessNew.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew);
if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setTaskInfo(delegateTask.getTaskDefinitionKey());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busBean.save(busProcessNewNext);
}
}else {
BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
busProcessNewNext.setMesg(object.toJSONString());
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo("业务经理审批");
busProcessNewNext.setUserId(object.getString("jlUserId"));
busBean.save(busProcessNewNext);
}
}
}
@@ -0,0 +1,27 @@
package com.ydw.bat.wkflow.listener.standardRegulatoryProcess;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.List;
public class SRPstartBefore implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
// IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
// QueryWrapper queryWrapper1 = new QueryWrapper();
// queryWrapper1.isNull("TASK_ID");
// List<BusProcessNew> list = busBean.list(queryWrapper1);
// if(!list.isEmpty()){
// BusProcessNew one1 = list.get(0);
// one1.setTaskId(delegateTask.getId());
// busBean.saveOrUpdate(one1);
// }
}
}