Merge branch 'develop' into FOTON

# Conflicts:
#	src/main/resources/application.yml
This commit is contained in:
super_liu
2021-12-14 21:45:45 +08:00
52 changed files with 2766 additions and 87 deletions
+32
View File
@@ -165,6 +165,38 @@
<artifactId>spring-boot-devtools</artifactId> <artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 --> <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency> </dependency>
<!-- poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.9.1</version>
</dependency>
<!-- Test --> <!-- Test -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
@@ -0,0 +1,36 @@
package com.ydw.bat.wkflow.business_main.datas.controller;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEvaluationHisService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
* <p>
* 流程评分历史表 前端控制器
* </p>
*
* @author super_liu
* @since 2021-09-17
*/
@RestController
@RequestMapping("/busProcessEvaluation")
public class BusProcessEvaluationHisController {
@Autowired
private IBusProcessEvaluationHisService busProcessEvaluationHisService;
@GetMapping("/evaluationHisList")
public List<BusProcessEvaluationHis> evaluationHisList(String pid) {
List<BusProcessEvaluationHis> processEvaluationHis = busProcessEvaluationHisService.evaluationHisList(pid);
return processEvaluationHis;
}
}
@@ -0,0 +1,42 @@
package com.ydw.bat.wkflow.business_main.datas.controller;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessModelHis;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEvaluationHisService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessModelHisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 流程模块历史表 前端控制器
* </p>
*
* @author super_liu
* @since 2021-09-17
*/
@RestController
@RequestMapping("/busProcessModel")
public class BusProcessModelHisController {
@Autowired
private IBusProcessModelHisService busProcessModelHisService;
@GetMapping("/processModelHisOne")
public BusProcessModelHis modelHisOne(String pid,String taskId) {
BusProcessModelHis modelHisOne = busProcessModelHisService.modelHisOne(pid,taskId);
return modelHisOne;
}
@GetMapping("/processModelHisList")
public List<BusProcessModelHis> evaluationHisList(String pid) {
List<BusProcessModelHis> processModelHisList = busProcessModelHisService.modelHisList(pid);
return processModelHisList;
}
}
@@ -0,0 +1,78 @@
package com.ydw.bat.wkflow.business_main.datas.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 流程评分历史表
* </p>
*
* @author super_liu
* @since 2021-09-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="BusProcessEvaluationHis对象", description="流程评分历史表")
public class BusProcessEvaluationHis implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键")
@TableId(value = "ID", type = IdType.UUID)
private String id;
@ApiModelProperty(value = "标准id")
@TableField("STAND_ID")
private String standId;
@ApiModelProperty(value = "处理人")
@TableField("USER_ID")
private String userId;
@ApiModelProperty(value = "信息")
@TableField("MESG")
private String mesg;
@ApiModelProperty(value = "节点信息")
@TableField("TASK_INFO")
private String taskInfo;
@ApiModelProperty(value = "任务id")
@TableField("TASK_ID")
private String taskId;
@ApiModelProperty(value = "流程实例id")
@TableField("P_ID")
private String pId;
@ApiModelProperty(value = "流程名称")
@TableField("PRC_NAME")
private String prcName;
@ApiModelProperty(value = "创建时间")
@TableField("CREATE_TIME")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private String createTime;
@ApiModelProperty(value = "更新时间")
@TableField("UPDATE_TIME")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private String updateTime;
@ApiModelProperty(value = "逻辑状态")
@TableField("FLAG")
private String flag;
}
@@ -0,0 +1,92 @@
package com.ydw.bat.wkflow.business_main.datas.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
* 流程模块历史表
* </p>
*
* @author super_liu
* @since 2021-09-17
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="BusProcessModelHis对象", description="流程模块历史表")
public class BusProcessModelHis implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "主键")
@TableId(value = "ID", type = IdType.UUID)
private String id;
@ApiModelProperty(value = "标准id")
@TableField("STAND_ID")
private String standId;
@ApiModelProperty(value = "处理人")
@TableField("USER_ID")
private String userId;
@ApiModelProperty(value = "信息")
@TableField("MESG")
private String mesg;
@ApiModelProperty(value = "节点信息")
@TableField("TASK_INFO")
private String taskInfo;
@ApiModelProperty(value = "任务id")
@TableField("TASK_ID")
private String taskId;
@ApiModelProperty(value = "流程实例id")
@TableField("P_ID")
private String pId;
@ApiModelProperty(value = "流程名称")
@TableField("PRC_NAME")
private String prcName;
@ApiModelProperty(value = "创建时间")
@TableField("CREATE_TIME")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private String createTime;
@ApiModelProperty(value = "更新时间")
@TableField("UPDATE_TIME")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private String updateTime;
@ApiModelProperty(value = "onlyOffice 是否编辑 0 未编辑 1 已编辑")
@TableField("EDIT_STATUS")
private String editStatus;
@ApiModelProperty(value = "onlyOffice 编辑文件存储路径")
@TableField("EDIT_FILE_PATH")
private String editFilePath;
@ApiModelProperty(value = "onlyOffice 编辑类型 node 节点编辑 count 汇总编辑")
@TableField("EDIT_TYPE")
private String editType;
@ApiModelProperty(value = "逻辑状态")
@TableField("FLAG")
private String flag;
@ApiModelProperty(value = "onlyOffice 访问编辑文件全路径")
@TableField(exist = false)
private String downLoadUrl;
}
@@ -0,0 +1,18 @@
package com.ydw.bat.wkflow.business_main.datas.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import org.springframework.stereotype.Repository;
/**
* <p>
* 流程评分历史表 Mapper 接口
* </p>
*
* @author super_liu
* @since 2021-09-17
*/
@Repository
public interface BusProcessEvaluationHisMapper extends BaseMapper<BusProcessEvaluationHis> {
}
@@ -0,0 +1,19 @@
package com.ydw.bat.wkflow.business_main.datas.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessModelHis;
import org.springframework.stereotype.Repository;
/**
* <p>
* 流程模块历史表 Mapper 接口
* </p>
*
* @author super_liu
* @since 2021-09-17
*/
@Repository
public interface BusProcessModelHisMapper extends BaseMapper<BusProcessModelHis> {
}
@@ -0,0 +1,19 @@
package com.ydw.bat.wkflow.business_main.datas.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import java.util.List;
/**
* <p>
* 流程评分历史表 服务类
* </p>
*
* @author super_liu
* @since 2021-09-17
*/
public interface IBusProcessEvaluationHisService extends IService<BusProcessEvaluationHis> {
List<BusProcessEvaluationHis> evaluationHisList(String pid);
}
@@ -0,0 +1,29 @@
package com.ydw.bat.wkflow.business_main.datas.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessModelHis;
import java.util.List;
/**
* <p>
* 流程模块历史表 服务类
* </p>
*
* @author super_liu
* @since 2021-09-17
*/
public interface IBusProcessModelHisService extends IService<BusProcessModelHis> {
BusProcessModelHis modelHisOne(String pid,String taskId);
List<BusProcessModelHis> modelHisList(String pid);
String saveBussModelFile(String pid, String taskId);
String mergeModelFile(String pid, String taskId,String fileSuffix);
void saveBussTemplateFile(JSONObject object, String pid);
}
@@ -0,0 +1,32 @@
package com.ydw.bat.wkflow.business_main.datas.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessEvaluationHisMapper;
import com.ydw.bat.wkflow.business_main.datas.mapper.SendTodoLogMapper;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEvaluationHisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 流程评分历史表 服务实现类
* </p>
*
* @author super_liu
* @since 2021-09-17
*/
@Service
public class BusProcessEvaluationHisServiceImpl extends ServiceImpl<BusProcessEvaluationHisMapper, BusProcessEvaluationHis> implements IBusProcessEvaluationHisService {
@Override
public List<BusProcessEvaluationHis> evaluationHisList(String pid){
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("P_ID",pid);
return this.baseMapper.selectList(wrapper);
}
}
@@ -0,0 +1,155 @@
package com.ydw.bat.wkflow.business_main.datas.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessModelHis;
import com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessEvaluationHisMapper;
import com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessModelHisMapper;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEvaluationHisService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessModelHisService;
import com.ydw.bat.wkflow.listener.bussLibrary.Utils.PoiUtil;
import com.ydw.bat.wkflow.listener.bussLibrary.Utils.PoiWord;
import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.IOException;
import java.util.List;
/**
* <p>
* 流程模块历史表 服务实现类
* </p>
*
* @author super_liu
* @since 2021-09-17
*/
@Service
public class BusProcessModelHisServiceImpl extends ServiceImpl<BusProcessModelHisMapper, BusProcessModelHis> implements IBusProcessModelHisService {
private static final Logger logger = LoggerFactory.getLogger(BusProcessModelHisServiceImpl.class);
@Value("${buss.edit.file.path}")
private String filePath;//文件存储路径
/**
* 文件下载路径
*/
@Value("${buss.down.file.path}")
private String downloadUrl;
@Override
public String mergeModelFile(String pid, String taskId,String fileSuffix){
String fileSavePath = filePath +"bussEdit"+ getUUIDPath(pid,taskId);
StringBuilder builder=new StringBuilder();
builder.append(filePath);
builder.append("buss").append("/");
builder.append(pid).append("/");
String saveFileUrl = builder.toString();
String modelPath = saveFileUrl+"model.docx";
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("P_ID",pid);
wrapper.eq("EDIT_TYPE","node");
List<BusProcessModelHis> hisList = this.baseMapper.selectList(wrapper);
String newFileName = "";
try {
if(!hisList.isEmpty()){
newFileName = fileSavePath+taskId + "_" + pid + "_count." + fileSuffix;
for (int i = 0; i < hisList.size(); i++) {
if(i == 0){
PoiWord.wordRedDocument(modelPath,null,newFileName,hisList.get(i).getEditFilePath());
}else {
PoiWord.wordRedDocument(newFileName,null,newFileName,hisList.get(i).getEditFilePath());
}
}
}
}catch (Exception e){
logger.error(e.getMessage());
}
return newFileName;
}
@Override
public String saveBussModelFile(String pid, String taskId){
return saveProcessFile(filePath,pid,taskId,"docx");
}
@Override
public void saveBussTemplateFile(JSONObject object,String pid){
PoiWord.writeWordModel(filePath, object, pid);
}
/**
* 企标流程文件存储
* @param pid
* @param taskId
* @param fileSuffix
* @param filePath 文件存储路径
* @throws IOException
*/
public String saveProcessFile(String filePath,String pid,String taskId,String fileSuffix){
String fileSavePath = filePath +"bussEdit"+ getUUIDPath(pid,taskId);
String newFileName = "";
try {
File dir = new File(fileSavePath);
if (!dir.exists()) {
dir.mkdirs();
}
newFileName = taskId + "_" + pid + "_node." + fileSuffix;
File saveFile = new File(fileSavePath + newFileName);
FileUtils.write(saveFile, "","UTF-8");
}catch (Exception e){
logger.error(e.getMessage(),e);
}
return fileSavePath+newFileName;
}
public static String getUUIDPath(String pid,String taskId){
StringBuilder builder=new StringBuilder();
builder.append("/");
builder.append(pid).append("/");
// builder.append(taskId).append("/");
return builder.toString();
}
@Override
public BusProcessModelHis modelHisOne(String pid,String taskId){
BusProcessModelHis modelHis = new BusProcessModelHis();
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("P_ID",pid);
wrapper.eq("TASK_ID",taskId);
List<BusProcessModelHis> hisList = this.baseMapper.selectList(wrapper);
if(!hisList.isEmpty()){
modelHis = hisList.get(0);
StringBuffer downloadFileUrl = new StringBuffer();
downloadFileUrl.append(downloadUrl).append(modelHis.getEditFilePath() == null ? "" : modelHis.getEditFilePath());
modelHis.setDownLoadUrl(downloadFileUrl.toString());
}
return modelHis;
}
@Override
public List<BusProcessModelHis> modelHisList(String pid){
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("P_ID",pid);
return this.baseMapper.selectList(wrapper);
}
}
@@ -67,7 +67,7 @@ public class RAApproveAfter implements TaskListener {
if (one2 != null) { if (one2 != null) {
// one2.setPrcName("入库流程结束"); // one2.setPrcName("入库流程结束");
one2.setOverTime(OVERTIME); one2.setOverTime(OVERTIME);
one2.setPrcType("1"); one2.setPrcType("16");
busProcessNameService.saveOrUpdate(one2); busProcessNameService.saveOrUpdate(one2);
} }
@@ -39,12 +39,18 @@ public class StartSurveyAfter implements TaskListener {
List<String> nextUserList = new ArrayList(); List<String> nextUserList = new ArrayList();
//整备数据 //整备数据
//责任部门对接人集合==》 //责任部门对接人集合==》
if (object.getString("zrUserIdList").contains(",")){ if (object.getString("dockUserList").contains(",")){
nextUserList.addAll(new ArrayList<>(Arrays.asList(object.getString("zrUserIdList").split(",")))); nextUserList.addAll(new ArrayList<>(Arrays.asList(object.getString("dockUserList").split(","))));
}else { }else {
nextUserList.add(object.getString("zrUserIdList")); nextUserList.add(object.getString("dockUserList"));
} }
delegateTask.setVariable("zrUserIdList",nextUserList); delegateTask.setVariable("zrUserIdList",nextUserList);
//存标准法规部部长id
delegateTask.setVariable("bzLeaderId",object.getString("ministerUser"));
//技术委员会相关专委会主任/研究总院职能部门领导,技术管理中心主任审定
delegateTask.setVariable("directorUser",object.getString("directorUser"));
//工程总院院长
delegateTask.setVariable("gcLeaderFirst",object.getString("presidentUser"));
//为新生成的公开征求意见建立id //为新生成的公开征求意见建立id
String uniques= String.valueOf(UUID.randomUUID()); String uniques= String.valueOf(UUID.randomUUID());
@@ -55,8 +61,10 @@ public class StartSurveyAfter implements TaskListener {
String user = object.getString("startUser"); String user = object.getString("startUser");
String username = object.getString("startUserName"); String username = object.getString("startUserName");
String standName = object.getString("cid"); String standName = object.getString("cid");
delegateTask.setVariable("userName",username);
delegateTask.setVariable("user",user);
delegateTask.setVariable("cid",standName); delegateTask.setVariable("cid",standName);
String prcName = standName+"-标准征求意见流程"; String prcName = standName+"-标准征求意见流程-责任部门对接人选择责任人";
QueryWrapper queryWrapper2 = new QueryWrapper(); QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId()); queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -12,16 +12,16 @@ import java.util.List;
public class StartSurveyBefore implements TaskListener { public class StartSurveyBefore implements TaskListener {
@Override @Override
public void notify(DelegateTask delegateTask) { public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); // IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper(); // QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID"); // queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId()); // queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1); // List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){ // if(!list.isEmpty()){
BusProcessNew one1 = list.get(0); // BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId()); // one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName()); // one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1); // busBean.saveOrUpdate(one1);
} // }
} }
} }
@@ -0,0 +1,109 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.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.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
//新征求意见流程!!!!!
public class Step10After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
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();
String prcName ="";
if ("0".equals(object.getString("presidentFlag"))){
delegateTask.setVariable("presidentFlag","0");
prcName=delegateTask.getVariable("cid")+"-标准征求意见流程-流程结束";
}else {
delegateTask.setVariable("presidentFlag","1");
nextUserList.add(delegateTask.getVariable("bzfgIdSum",String.class));
prcName =delegateTask.getVariable("cid")+"-标准征求意见流程-标准法规工程师汇总";
}
nextUserList.add(object.getString("presidentUser"));
delegateTask.setVariable("presidentUser",object.getString("presidentUser"));
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("user",String.class);
String username = delegateTask.getVariable("userName",String.class);
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
if ("0".equals(object.getString("presidentFlag"))){
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.setUserId(delegateTask.getAssignee());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(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);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}else {
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.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
@@ -0,0 +1,27 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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 Step10Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,115 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.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.business_slrs.dao.SarPublicIdea;
import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.http.ResponseMessage;
import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.*;
//新征求意见流程!!!!!
public class Step1After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
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 (object.getString("responUserList").contains(",")){
nextUserList.addAll(new ArrayList<>(Arrays.asList(object.getString("responUserList").split(","))));
}else {
nextUserList.add(object.getString("responUserList"));
}
delegateTask.setVariable("zrIdList",nextUserList);
if (null==delegateTask.getVariable("zrList")){
delegateTask.setVariable("zrList",nextUserList);
}else {
List<String> strings=delegateTask.getVariable("zrList",List.class);
List<String> middle=new ArrayList<>();
nextUserList.forEach(s -> {
if (!strings.contains(s)){
middle.add(s);
}
});
strings.addAll(middle);
delegateTask.setVariable("zrList",strings);
}
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("user",String.class);
String username = delegateTask.getVariable("userName",String.class);
String prcName = delegateTask.getVariable("cid")+"-标准征求意见流程-责任人反馈";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
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.setUserId(delegateTask.getAssignee());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(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);
busProcessNewNext.setPrcName(prcName);
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.setPrcName(prcName);
busProcessNewNext.setUserId(delegateTask.getVariable("dockUser",String.class));
busBean.save(busProcessNewNext);
}
}
}
@@ -0,0 +1,27 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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 Step1Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,114 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONArray;
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.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 java.text.SimpleDateFormat;
import java.util.*;
//新征求意见流程!!!!!
public class Step2After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
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 (null==delegateTask.getVariable("count")){
delegateTask.setVariable("count",1);
}else {
delegateTask.setVariable("count",delegateTask.getVariable("count",Integer.class)+1);
}
if (delegateTask.getVariable("count",Integer.class) == delegateTask.getVariable("zrIdList",List.class).size()){
//对数据进行合并归属
QueryWrapper<BusProcessNew> wrapper=new QueryWrapper<>();
wrapper.eq("TASK_ID","SCN");
wrapper.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> busProcessNews= busBean.list(wrapper);
if (!busProcessNews.isEmpty()){
System.out.println(busProcessNews);
busProcessNews.forEach(busProcessNew -> {
JSONObject jsonObject=JSONObject.parseObject(busProcessNew.getMesg());
JSONArray jsonArray=jsonObject.getJSONArray("info");
object.getJSONArray("info").addAll(jsonArray);
});
}
}
nextUserList.add(delegateTask.getVariable("zrUserId",String.class));
delegateTask.setVariable("zrUserId1",delegateTask.getVariable("zrUserId"));
//截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = delegateTask.getVariable("user",String.class);
String username = delegateTask.getVariable("userName",String.class);
String prcName = delegateTask.getVariable("cid")+"-标准征求意见流程-责任部门对接人汇总并选择审批人";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
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.setUserId(delegateTask.getAssignee());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(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");
if (delegateTask.getVariable("count",Integer.class) < delegateTask.getVariable("zrIdList",List.class).size()){
busProcessNewNext.setTaskId("SCN");
}
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,27 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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 Step2Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,90 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.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.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
//新征求意见流程!!!!!
public class Step3After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
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();
//整备数据
nextUserList.add(object.getString("spId"));
delegateTask.setVariable("spId",object.getString("spId"));
//截止时间 流程描述 创建人
String user = delegateTask.getVariable("user",String.class);
String username = delegateTask.getVariable("userName",String.class);
String prcName = delegateTask.getVariable("cid")+"-标准征求意见流程-审批人审批";
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
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.setUserId(delegateTask.getAssignee());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(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);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,27 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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 Step3Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,96 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.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.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
//新征求意见流程!!!!!
public class Step4After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
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();
String prcName = "";
//整备数据
if ("0".equals(object.getString("spFlag"))) {
nextUserList.add(delegateTask.getVariable("user",String.class));
delegateTask.setVariable("bzfgId", delegateTask.getVariable("user",String.class));
prcName = delegateTask.getVariable("cid")+"-标准征求意见流程-标准法规工程师分线审核";
delegateTask.setVariable("spFlag","0");
}else {
nextUserList.add(delegateTask.getVariable("zrUserId1",String.class));
prcName = delegateTask.getVariable("cid")+"-标准征求意见流程-责任部门对接人汇总并选择审批人";
delegateTask.setVariable("spFlag","1");
}
//截止时间 流程描述 创建人
String user = delegateTask.getVariable("user",String.class);
String username = delegateTask.getVariable("userName",String.class);
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
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.setUserId(delegateTask.getAssignee());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(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);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,27 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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 Step4Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,124 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
import com.alibaba.fastjson.JSONArray;
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.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.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
//新征求意见流程!!!!!
public class Step5After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
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();
String prcName = "";
//整备数据
if ("0".equals(object.getString("bzFlag"))) {
//存储了一个计数器
if (null==delegateTask.getVariable("count2")){
delegateTask.setVariable("count2",1);
}else {
delegateTask.setVariable("count2",delegateTask.getVariable("count2",Integer.class)+1);
}
if (delegateTask.getVariable("count2",Integer.class)==delegateTask.getVariable("zrUserIdList",List.class).size()){
//数据合并
QueryWrapper<BusProcessNew> wrapper=new QueryWrapper<>();
wrapper.eq("TASK_ID","SUM");
wrapper.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> busProcessNews= busBean.list(wrapper);
if (!busProcessNews.isEmpty()){
busProcessNews.forEach(busProcessNew -> {
JSONObject jsonObject=JSONObject.parseObject(busProcessNew.getMesg());
if ("0".equals(jsonObject.getString("bzFlag"))) {
JSONArray jsonArray = jsonObject.getJSONArray("info");
object.getJSONArray("info").addAll(jsonArray);
}
});
}
}
nextUserList.add(delegateTask.getVariable("user",String.class));
delegateTask.setVariable("bzfgIdSum",delegateTask.getVariable("user",String.class));
delegateTask.setVariable("bzFlag","0");
prcName = delegateTask.getVariable("cid")+"-标准征求意见流程-标准法规工程师汇总";
}else {
nextUserList.add(delegateTask.getVariable("zrUserId1",String.class));
prcName = delegateTask.getVariable("cid")+"-标准征求意见流程-责任部门对接人汇总并选择审批人";
delegateTask.setVariable("bzFlag","1");
}
//截止时间 流程描述 创建人
String user = delegateTask.getVariable("user",String.class);
String username = delegateTask.getVariable("userName",String.class);
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
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.setUserId(delegateTask.getAssignee());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(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");
if ("0".equals(object.getString("bzFlag")) && delegateTask.getVariable("count2",Integer.class)<delegateTask.getVariable("zrUserIdList",List.class).size()){
//数据合并
busProcessNewNext.setTaskId("SUM");
}
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,27 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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 Step5Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,91 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.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.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
//新征求意见流程!!!!!
public class Step6After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
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();
String prcName = delegateTask.getVariable("cid")+"-标准征求意见流程-责任人会签";;
//整备数据
nextUserList.addAll(delegateTask.getVariable("zrList",List.class));
delegateTask.setVariable("responUserList",delegateTask.getVariable("zrList",List.class));
delegateTask.setVariable("hqMark",0);
delegateTask.setVariable("bdMark",0);
delegateTask.setVariable("hqCount",null);
delegateTask.setVariable("bdCount",null);
//截止时间 流程描述 创建人
String user = delegateTask.getVariable("user",String.class);
String username = delegateTask.getVariable("userName",String.class);
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
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.setUserId(delegateTask.getAssignee());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(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);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,27 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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 Step6Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,115 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.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.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
//新征求意见流程!!!!!
public class Step7After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
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();
String prcName =delegateTask.getVariable("cid")+"-标准征求意见流程";
if (null==delegateTask.getVariable("hqCount")){
delegateTask.setVariable("hqCount",1);
}else {
delegateTask.setVariable("hqCount",delegateTask.getVariable("hqCount",Integer.class)+1);
}
//整备数据
if ("0".equals(object.getString("hqFlag"))) {
delegateTask.setVariable("hqMark",delegateTask.getVariable("hqMark",Integer.class));
nextUserList.add(delegateTask.getVariable("bzLeaderId",String.class));
delegateTask.setVariable("hqFlag", "0");
}else {
delegateTask.setVariable("hqMark",delegateTask.getVariable("hqMark",Integer.class)+1);
nextUserList.add(delegateTask.getVariable("bzfgIdSum",String.class));
delegateTask.setVariable("hqFlag", "1");
}
if (delegateTask.getVariable("hqCount",Integer.class)==delegateTask.getVariable("responUserList",List.class).size()) {
if (0 == delegateTask.getVariable("hqMark", Integer.class)) {
prcName =delegateTask.getVariable("cid")+"-标准征求意见流程-部长+对接人审批";
nextUserList.addAll(delegateTask.getVariable("zrUserIdList",List.class));
} else {
prcName =delegateTask.getVariable("cid")+"-标准征求意见流程-标准法规工程师汇总";
}
}
delegateTask.setVariable("userList",nextUserList);
//截止时间 流程描述 创建人
String user = delegateTask.getVariable("user",String.class);
String username = delegateTask.getVariable("userName",String.class);
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
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.setUserId(delegateTask.getAssignee());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(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");
if ("0".equals(object.getString("hqFlag")) && delegateTask.getVariable("hqCount",Integer.class)<delegateTask.getVariable("responUserList",List.class).size()) {
busProcessNewNext.setTaskId("Step7");
}
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,27 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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 Step7Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,113 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.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.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.ArrayList;
import java.util.List;
//新征求意见流程!!!!!
public class Step8After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
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();
String prcName =delegateTask.getVariable("cid")+"-标准征求意见流程";
if (null==delegateTask.getVariable("bdCount")){
delegateTask.setVariable("bdCount",1);
}else {
delegateTask.setVariable("bdCount",delegateTask.getVariable("bdCount",Integer.class)+1);
}
//整备数据
if ("0".equals(object.getString("bdFlag"))) {
delegateTask.setVariable("bdMark",delegateTask.getVariable("bdMark",Integer.class));
nextUserList.add(delegateTask.getVariable("directorUser",String.class));
delegateTask.setVariable("hqFlag", "0");
}else {
delegateTask.setVariable("bdMark",delegateTask.getVariable("bdMark",Integer.class)+1);
nextUserList.add(delegateTask.getVariable("bzfgIdSum",String.class));
delegateTask.setVariable("hqFlag", "1");
}
if (delegateTask.getVariable("bdCount",Integer.class)==delegateTask.getVariable("userList",List.class).size()) {
if (0 == delegateTask.getVariable("bdMark", Integer.class)) {
prcName =delegateTask.getVariable("cid")+"-标准征求意见流程-技术委员会相关专委会主任/研究总院职能部门领导,技术管理中心主任审定";
delegateTask.setVariable("bdFlag","0");
} else {
prcName =delegateTask.getVariable("cid")+"-标准征求意见流程-标准法规工程师汇总";
delegateTask.setVariable("bdFlag","1");
}
}
delegateTask.setVariable("directorUser",delegateTask.getVariable("directorUser",String.class));
//截止时间 流程描述 创建人
String user = delegateTask.getVariable("user",String.class);
String username = delegateTask.getVariable("userName",String.class);
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
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.setUserId(delegateTask.getAssignee());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(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());
if ("0".equals(object.getString("bdFlag")) && delegateTask.getVariable("bdCount",Integer.class)<delegateTask.getVariable("userList",List.class).size()) {
busProcessNewNext.setTaskId("Step8");
}
busProcessNewNext.setFinishFlag("0");
busProcessNewNext.setTaskInfo(delegateTask.getName());
busProcessNewNext.setUserId(nextUser);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,27 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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 Step8Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
}
}
}
@@ -0,0 +1,92 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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.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.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.ArrayList;
import java.util.List;
//新征求意见流程!!!!!
public class Step9After implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
LawsUserInfoService lawsUserInfoService = SpringContextUtil.getBean(LawsUserInfoService.class);
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();
String prcName="";
if ("0".equals(object.getString("directorFlag"))){
delegateTask.setVariable("directorFlag","0");
prcName =delegateTask.getVariable("cid")+"-标准征求意见流程-工程研究总院院长批准";
nextUserList.add(object.getString("presidentUser"));
delegateTask.setVariable("presidentUser",object.getString("presidentUser"));
}else {
delegateTask.setVariable("directorFlag","1");
nextUserList.add(delegateTask.getVariable("bzfgIdSum",String.class));
prcName =delegateTask.getVariable("cid")+"-标准征求意见流程-标准法规工程师汇总";
}
//截止时间 流程描述 创建人
String user = delegateTask.getVariable("user",String.class);
String username = delegateTask.getVariable("userName",String.class);
QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
if(one1!=null){
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.setUserId(delegateTask.getAssignee());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setCommitText(object.getString("commentText"));
busProcessNew.setFinishFlag("0");
busProcessNew.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(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);
busProcessNewNext.setPrcName(prcName);
busBean.save(busProcessNewNext);
}
}
}
}
@@ -0,0 +1,27 @@
package com.ydw.bat.wkflow.listener.StandardCommentNewProcess;
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 Step9Before implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
QueryWrapper queryWrapper1 = new QueryWrapper();
queryWrapper1.isNull("TASK_ID");
queryWrapper1.eq("P_ID",delegateTask.getProcessInstanceId());
List<BusProcessNew> list = busBean.list(queryWrapper1);
if(!list.isEmpty()){
BusProcessNew one1 = list.get(0);
one1.setTaskId(delegateTask.getId());
one1.setTaskInfo(delegateTask.getName());
busBean.saveOrUpdate(one1);
}
}
}
@@ -1,24 +1,27 @@
package com.ydw.bat.wkflow.listener.bussLibrary; package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessModelHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; 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.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessModelHisService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; 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.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
import com.ydw.bat.wkflow.listener.bussLibrary.Utils.PoiWord;
import com.ydw.bat.wkflow.util.SpringContextUtil; import com.ydw.bat.wkflow.util.SpringContextUtil;
import com.ydw.bat.wkflow.util.Utils;
import org.activiti.engine.ActivitiException; import org.activiti.engine.ActivitiException;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays; import java.util.stream.Collectors;
import java.util.Date;
import java.util.List;
/** /**
* 发起企标制修订流程后 * 发起企标制修订流程后
@@ -30,6 +33,7 @@ public class BLApplicantAfter implements TaskListener{
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
IBusProcessModelHisService busProcessModelHisService = SpringContextUtil.getBean(IBusProcessModelHisService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>(); QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
@@ -38,23 +42,6 @@ public class BLApplicantAfter implements TaskListener{
JSONObject object = JSONObject.parseObject(datas.getFormValsJson()); JSONObject object = JSONObject.parseObject(datas.getFormValsJson());
delegateTask.setVariable("objectJson",object); delegateTask.setVariable("objectJson",object);
List<String> nextUserList = new ArrayList();
if(StringUtils.isNotBlank(object.getString("qcUserId"))){
if(object.getString("qcUserId").contains(",")){
nextUserList = Arrays.asList(object.getString("qcUserId").split(","));
}else {
nextUserList.add(object.getString("qcUserId"));
}
// 配置多实例
delegateTask.setVariable("qcUserList",nextUserList);
delegateTask.addCandidateUsers(nextUserList);
}else {
throw new ActivitiException("1#2其他起草人参数不存在,请配置相关用户");
}
//截止时间 流程描述 创建人 //截止时间 流程描述 创建人
String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); String OVERTIME = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String user = object.getString("prcCreateUser"); String user = object.getString("prcCreateUser");
@@ -62,6 +49,43 @@ public class BLApplicantAfter implements TaskListener{
// object.getString("standName") // object.getString("standName")
String standName = ""; String standName = "";
String prcName = "企标制修订流程及企业标准库流程"; String prcName = "企标制修订流程及企业标准库流程";
// 下个节点执行人处理逻辑
List<String> nextUserList = new ArrayList();
List<BusProcessModelHis> busProcessModelHisList = new ArrayList<>();
if(StringUtils.isNotBlank(object.getString("modelData"))){
List<JSONObject> valueArr = JSONArray.parseArray(object.getString("modelData"),JSONObject.class);
Map<String, List<JSONObject>> listMap = valueArr.stream().collect(
Collectors.groupingBy(a -> Utils.format("{0}", a.getString("userId"))));
List<String> finalNextUserList = nextUserList;
listMap.forEach((s, jsonObjects) -> {
String json = JSONArray.toJSONString(jsonObjects);
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
BusProcessModelHis modelHis = new BusProcessModelHis();
modelHis.setPId(delegateTask.getProcessInstanceId());
modelHis.setMesg(json);
modelHis.setTaskInfo(delegateTask.getName());
modelHis.setUserId(s);
modelHis.setPrcName(prcName);
modelHis.setEditType("node");
modelHis.setCreateTime(sdf.format(new Date()));
modelHis.setUpdateTime(sdf.format(new Date()));
busProcessModelHisList.add(modelHis);
finalNextUserList.add(s);
});
nextUserList.addAll(finalNextUserList);
// if(object.getString("qcUserId").contains(",")){
// nextUserList = Arrays.asList(object.getString("qcUserId").split(","));
// }else {
// nextUserList.add(object.getString("qcUserId"));
// }
// 配置多实例
delegateTask.setVariable("qcUserList",nextUserList);
delegateTask.addCandidateUsers(nextUserList);
}else {
throw new ActivitiException("1#2其他起草人参数不存在,请配置相关用户");
}
QueryWrapper queryWrapper2 = new QueryWrapper(); QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId()); queryWrapper2.eq("PRC_ID",delegateTask.getProcessInstanceId());
BusProcessName one1 = busProcessNameService.getOne(queryWrapper2); BusProcessName one1 = busProcessNameService.getOne(queryWrapper2);
@@ -100,6 +124,12 @@ public class BLApplicantAfter implements TaskListener{
busBean.save(busProcessNewNext); busBean.save(busProcessNewNext);
} }
} }
if(!busProcessModelHisList.isEmpty()){
busProcessModelHisService.saveBatch(busProcessModelHisList);
}
// 生成 模板
busProcessModelHisService.saveBussTemplateFile(object,delegateTask.getProcessInstanceId());
} }
private String verifyObj(String str){ private String verifyObj(String str){
@@ -54,10 +54,10 @@ public class BussLibrary11After implements TaskListener{
if(StringUtils.isNotBlank(approvalOpinion)){ if(StringUtils.isNotBlank(approvalOpinion)){
if ("0".equalsIgnoreCase(approvalOpinion)) { if ("0".equalsIgnoreCase(approvalOpinion)) {
if(StringUtils.isNotBlank(object.getString("zqcUsrId"))){ if(StringUtils.isNotBlank(object.getString("pxUserId"))){
delegateTask.setVariable("pxUserId",object.getString("zqcUsrId")); delegateTask.setVariable("pxUserId",object.getString("pxUserId"));
nextUserList.add(object.getString("zqcUsrId")); nextUserList.add(object.getString("pxUserId"));
BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList); BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
delegateTask.setVariable("zrFlag", 0); delegateTask.setVariable("zrFlag", 0);
@@ -21,7 +21,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* 企标协同编写后 * 企标编写后
*/ */
public class BussLibrary2After implements TaskListener{ public class BussLibrary2After implements TaskListener{
@Override @Override
@@ -1,17 +1,21 @@
package com.ydw.bat.wkflow.listener.bussLibrary; package com.ydw.bat.wkflow.listener.bussLibrary;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessModelHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessModelHisService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil; import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* 企标协同编写前 * 企标编写前
*/ */
public class BussLibrary2Before implements TaskListener{ public class BussLibrary2Before implements TaskListener{
@Override @Override
@@ -33,5 +37,24 @@ public class BussLibrary2Before implements TaskListener{
one1.setTaskInfo(delegateTask.getName()); one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1); oaService.sendTodoMq(one1);
} }
// 创建当前节点文件 - 暂时为空文件
IBusProcessModelHisService hisService = SpringContextUtil.getBean(IBusProcessModelHisService.class);
QueryWrapper wrapperModel = new QueryWrapper();
wrapperModel.eq("P_ID",delegateTask.getProcessInstanceId());
wrapperModel.eq("USER_ID",delegateTask.getAssignee());
wrapperModel.isNull("TASK_ID");
List<BusProcessModelHis> hisList = hisService.list(wrapperModel);
if(!hisList.isEmpty()){
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
BusProcessModelHis modelHis = hisList.get(0);
modelHis.setTaskId(delegateTask.getId());
String filePath = hisService.saveBussModelFile(delegateTask.getProcessInstanceId(),delegateTask.getId());
modelHis.setEditFilePath(filePath);
modelHis.setUpdateTime(sdf.format(new Date()));
hisService.saveOrUpdate(modelHis);
}
} }
} }
@@ -1,13 +1,17 @@
package com.ydw.bat.wkflow.listener.bussLibrary; package com.ydw.bat.wkflow.listener.bussLibrary;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessModelHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessModelHisService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService;
import com.ydw.bat.wkflow.business_mq.service.CreateMQService; import com.ydw.bat.wkflow.business_mq.service.CreateMQService;
import com.ydw.bat.wkflow.util.SpringContextUtil; import com.ydw.bat.wkflow.util.SpringContextUtil;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.delegate.TaskListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@@ -32,6 +36,25 @@ public class BussLibrary3Before implements TaskListener{
one1.setLink("bussLibrary3?prcType=buss1"); one1.setLink("bussLibrary3?prcType=buss1");
one1.setTaskInfo(delegateTask.getName()); one1.setTaskInfo(delegateTask.getName());
oaService.sendTodoMq(one1); oaService.sendTodoMq(one1);
// 创建汇总文件 --- 合并子节点在线编辑文件
IBusProcessModelHisService hisService = SpringContextUtil.getBean(IBusProcessModelHisService.class);
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
BusProcessModelHis modelHis = new BusProcessModelHis();
modelHis.setPId(delegateTask.getProcessInstanceId());
modelHis.setMesg(one1.getMesg());
modelHis.setTaskInfo(delegateTask.getName());
modelHis.setUserId(one1.getUserId());
modelHis.setPrcName(one1.getPrcName());
modelHis.setTaskId(delegateTask.getId());
modelHis.setEditType("count");
modelHis.setCreateTime(sdf.format(new Date()));
modelHis.setUpdateTime(sdf.format(new Date()));
// 合并子节点在线编辑文件后 返回 汇总文件路径
String fileUrl = hisService.mergeModelFile(delegateTask.getProcessInstanceId(),delegateTask.getId(),"docx");
modelHis.setEditFilePath(fileUrl);
hisService.save(modelHis);
} }
} }
} }
@@ -3,9 +3,11 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; 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.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEvaluationHisService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; 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.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
@@ -82,6 +84,9 @@ public class BussLibrary5After implements TaskListener{
busProcessNew.setTaskInfo(delegateTask.getName()); busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew); busBean.save(busProcessNew);
// 评分存储
BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
if(nextUserList != null && !nextUserList.isEmpty()){ if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){ for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew(); BusProcessNew busProcessNewNext = new BusProcessNew();
@@ -3,9 +3,11 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; 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.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.entity.Datas;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEvaluationHisService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; 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.IBusProcessNewService;
import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; import com.ydw.bat.wkflow.business_main.datas.service.IDatasService;
@@ -15,7 +17,9 @@ import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener; import org.activiti.engine.delegate.TaskListener;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@@ -27,6 +31,8 @@ public class BussLibrary7After implements TaskListener{
IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); IDatasService datasService = SpringContextUtil.getBean(IDatasService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class); IBusProcessNameService busProcessNameService = SpringContextUtil.getBean(IBusProcessNameService.class);
IBusProcessEvaluationHisService evaluationHisService = SpringContextUtil.getBean(IBusProcessEvaluationHisService.class);
QueryWrapper<Datas> queryWrapper = new QueryWrapper<>(); QueryWrapper<Datas> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId());
@@ -44,11 +50,6 @@ public class BussLibrary7After implements TaskListener{
throw new ActivitiException("1#2标准化员不存在,请配置相关人员"); throw new ActivitiException("1#2标准化员不存在,请配置相关人员");
} }
JSONArray evaluationData =delegateTask.getVariable("evaluationList", JSONArray.class);
if (evaluationData==null) {
throw new ActivitiException("1#2评分关联数据不存在");
}
//截止时间 流程描述 创建人 //截止时间 流程描述 创建人
String user = object.getString("prcCreateUser"); String user = object.getString("prcCreateUser");
String username = object.getString("prcCreateUserName"); String username = object.getString("prcCreateUserName");
@@ -77,6 +78,9 @@ public class BussLibrary7After implements TaskListener{
busProcessNew.setTaskInfo(delegateTask.getName()); busProcessNew.setTaskInfo(delegateTask.getName());
busBean.save(busProcessNew); busBean.save(busProcessNew);
// 评分存储
BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
if(nextUserList != null && !nextUserList.isEmpty()){ if(nextUserList != null && !nextUserList.isEmpty()){
for(String nextUser : nextUserList){ for(String nextUser : nextUserList){
BusProcessNew busProcessNewNext = new BusProcessNew(); BusProcessNew busProcessNewNext = new BusProcessNew();
@@ -60,6 +60,8 @@ public class BussLibrary8After implements TaskListener{
nextUserList.add(object.getString("bzUserId")); nextUserList.add(object.getString("bzUserId"));
BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList); BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
// 评分存储
BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
delegateTask.setVariable("jsfzrFlag", 0); delegateTask.setVariable("jsfzrFlag", 0);
}else { }else {
throw new ActivitiException("1#2部长用户参数不存在,请配置相关用户"); throw new ActivitiException("1#2部长用户参数不存在,请配置相关用户");
@@ -60,6 +60,8 @@ public class BussLibrary9After implements TaskListener{
nextUserList.add(object.getString("fzrUserId")); nextUserList.add(object.getString("fzrUserId"));
BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList); BussUtils.approvalFunc2(delegateTask, object, prcName, nextUserList);
// 评分存储
BussUtils.evalSave(delegateTask, object, prcName, delegateTask.getAssignee());
delegateTask.setVariable("bzFlag", 0); delegateTask.setVariable("bzFlag", 0);
}else { }else {
throw new ActivitiException("1#2副主任用户参数不存在,请配置相关用户"); throw new ActivitiException("1#2副主任用户参数不存在,请配置相关用户");
@@ -2,8 +2,10 @@ package com.ydw.bat.wkflow.listener.bussLibrary;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis;
import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; 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.BusProcessNew;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEvaluationHisService;
import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; 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.IBusProcessNewService;
import com.ydw.bat.wkflow.util.SpringContextUtil; import com.ydw.bat.wkflow.util.SpringContextUtil;
@@ -20,6 +22,21 @@ import java.util.List;
*/ */
public class BussUtils { public class BussUtils {
public static void evalSave(DelegateTask delegateTask, JSONObject object, String prcName, String localUser) {
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
IBusProcessEvaluationHisService evaluationHisService = SpringContextUtil.getBean(IBusProcessEvaluationHisService.class);
BusProcessEvaluationHis evaluationHis = new BusProcessEvaluationHis();
evaluationHis.setPId(delegateTask.getProcessInstanceId());
evaluationHis.setMesg(object.getString("evaluationData"));
evaluationHis.setTaskInfo(delegateTask.getName());
evaluationHis.setUserId(localUser);
evaluationHis.setPrcName(prcName);
evaluationHis.setTaskId(delegateTask.getId());
evaluationHis.setCreateTime(sdf.format(new Date()));
evaluationHis.setUpdateTime(sdf.format(new Date()));
evaluationHisService.save(evaluationHis);
}
public static void endFunc(DelegateTask delegateTask, String prcName,IBusProcessNewService busBean, JSONObject object, String commitFlag, IBusProcessNameService busProcessNameService) { public static void endFunc(DelegateTask delegateTask, String prcName,IBusProcessNewService busBean, JSONObject object, String commitFlag, IBusProcessNameService busProcessNameService) {
QueryWrapper queryWrapper2 = new QueryWrapper(); QueryWrapper queryWrapper2 = new QueryWrapper();
queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId()); queryWrapper2.eq("PRC_ID", delegateTask.getProcessInstanceId());
@@ -0,0 +1,18 @@
package com.ydw.bat.wkflow.listener.bussLibrary.Utils;
import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import java.io.File;
import java.io.IOException;
/**
* @Description: TODO
* @author: super_liu
* @date: 2021年12月13日 11:26
*/
public class PoiUtil {
}
@@ -0,0 +1,649 @@
package com.ydw.bat.wkflow.listener.bussLibrary.Utils;
import com.alibaba.fastjson.JSONObject;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.xwpf.NiceXWPFDocument;
import com.ydw.bat.wkflow.business_main.datas.service.impl.BusProcessModelHisServiceImpl;
import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.filesystem.FileMagic;
import org.apache.poi.poifs.nio.DataSource;
import org.apache.poi.util.LocaleUtil;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlOptions;
import org.apache.xmlbeans.impl.xb.xmlschema.SpaceAttribute;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import java.io.*;
import java.math.BigInteger;
import java.util.List;
import java.util.Map;
/**
* @Description: TODO
* @author: super_liu
* @date: 2021年12月10日 15:38
*/
public class PoiWord {
private static final Logger logger = LoggerFactory.getLogger(BusProcessModelHisServiceImpl.class);
/**
* 输出SummaryInfomation
* @param info
*/
private static void printInfo(SummaryInformation info) {
//作者
System.out.println(info.getAuthor());
//字符统计
System.out.println(info.getCharCount());
//页数
System.out.println(info.getPageCount());
//标题
System.out.println(info.getTitle());
//主题
System.out.println(info.getSubject());
}
/**
* 输出DocumentSummaryInfomation
* @param info
*/
private static void printInfo(DocumentSummaryInformation info) {
//分类
System.out.println(info.getCategory());
//公司
System.out.println(info.getCompany());
}
/**
* 关闭输入流
* @param is
*/
private static void closeStream(InputStream is) {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
static String read(InputStream is) throws Exception {
System.out.println(FileMagic.valueOf(is));
String text = "";
return text;
}
public static void writeToDocx()throws Exception{
XWPFDocument document= new XWPFDocument();
//Write the Document in file system
FileOutputStream out = new FileOutputStream(new File("E:\\Software\\rtpro\\Foton\\File\\doc\\create_table2.docx"));
//添加标题
XWPFParagraph titleParagraph = document.createParagraph();
//设置段落居中
titleParagraph.setAlignment(ParagraphAlignment.CENTER);
XWPFRun titleParagraphRun = titleParagraph.createRun();
titleParagraphRun.setText("Java PoI");
titleParagraphRun.setColor("000000");
titleParagraphRun.setFontSize(20);
//段落
XWPFParagraph firstParagraph = document.createParagraph();
XWPFRun run = firstParagraph.createRun();
run.setText("Java POI 生成word文件。");
run.setColor("696969");
run.setFontSize(16);
//设置段落背景颜色
CTShd cTShd = run.getCTR().addNewRPr().addNewShd();
cTShd.setVal(STShd.CLEAR);
cTShd.setFill("97FFFF");
//换行
XWPFParagraph paragraph1 = document.createParagraph();
XWPFRun paragraphRun1 = paragraph1.createRun();
paragraphRun1.setText("\r");
//基本信息表格
XWPFTable infoTable = document.createTable();
//去表格边框
infoTable.getCTTbl().getTblPr().unsetTblBorders();
//列宽自动分割
CTTblWidth infoTableWidth = infoTable.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(9072));
//表格第一行
XWPFTableRow infoTableRowOne = infoTable.getRow(0);
infoTableRowOne.getCell(0).setText("职位");
infoTableRowOne.addNewTableCell().setText(": Java 开发工程师");
//表格第二行
XWPFTableRow infoTableRowTwo = infoTable.createRow();
infoTableRowTwo.getCell(0).setText("姓名");
infoTableRowTwo.getCell(1).setText(": seawater");
//表格第三行
XWPFTableRow infoTableRowThree = infoTable.createRow();
infoTableRowThree.getCell(0).setText("生日");
infoTableRowThree.getCell(1).setText(": xxx-xx-xx");
//表格第四行
XWPFTableRow infoTableRowFour = infoTable.createRow();
infoTableRowFour.getCell(0).setText("性别");
infoTableRowFour.getCell(1).setText(": 男");
//表格第五行
XWPFTableRow infoTableRowFive = infoTable.createRow();
infoTableRowFive.getCell(0).setText("现居地");
infoTableRowFive.getCell(1).setText(": xx");
CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);
//添加页眉
CTP ctpHeader = CTP.Factory.newInstance();
CTR ctrHeader = ctpHeader.addNewR();
CTText ctHeader = ctrHeader.addNewT();
String headerText = "ctpHeader";
ctHeader.setStringValue(headerText);
XWPFParagraph headerParagraph = new XWPFParagraph(ctpHeader, document);
//设置为右对齐
headerParagraph.setAlignment(ParagraphAlignment.RIGHT);
XWPFParagraph[] parsHeader = new XWPFParagraph[1];
parsHeader[0] = headerParagraph;
policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader);
//添加页脚
CTP ctpFooter = CTP.Factory.newInstance();
CTR ctrFooter = ctpFooter.addNewR();
CTText ctFooter = ctrFooter.addNewT();
String footerText = "ctpFooter";
ctFooter.setStringValue(footerText);
XWPFParagraph footerParagraph = new XWPFParagraph(ctpFooter, document);
headerParagraph.setAlignment(ParagraphAlignment.CENTER);
XWPFParagraph[] parsFooter = new XWPFParagraph[1];
parsFooter[0] = footerParagraph;
policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT, parsFooter);
document.write(out);
out.close();
}
public static void CustomTOC(CTSdtBlock block) {
CTSdtPr sdtPr = block.addNewSdtPr();
CTDecimalNumber id = sdtPr.addNewId();
id.setVal(new BigInteger("4844945"));
sdtPr.addNewDocPartObj().addNewDocPartGallery().setVal("Table of contents");
CTSdtEndPr sdtEndPr = block.addNewSdtEndPr();
CTRPr rPr = sdtEndPr.addNewRPr();
CTFonts fonts = rPr.addNewRFonts();
fonts.setAsciiTheme(STTheme.MINOR_H_ANSI);
fonts.setEastAsiaTheme(STTheme.MINOR_H_ANSI);
fonts.setHAnsiTheme(STTheme.MINOR_H_ANSI);
fonts.setCstheme(STTheme.MINOR_BIDI);
rPr.addNewB().setVal(STOnOff.OFF);
rPr.addNewBCs().setVal(STOnOff.OFF);
rPr.addNewColor().setVal("auto");
rPr.addNewSz().setVal(new BigInteger("24"));
rPr.addNewSzCs().setVal(new BigInteger("24"));
CTSdtContentBlock content = block.addNewSdtContent();
CTP p = content.addNewP();
p.setRsidR("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
p.setRsidRDefault("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
p.addNewPPr().addNewPStyle().setVal("TOCHeading");
p.addNewR().addNewT().setStringValue("目 录");//源码中为"Table of contents"
//设置段落对齐方式,即将“目录”二字居中
CTPPr pr = p.getPPr();
CTJc jc = pr.isSetJc() ? pr.getJc() : pr.addNewJc();
STJc.Enum en = STJc.Enum.forInt(ParagraphAlignment.CENTER.getValue());
jc.setVal(en);
//"目录"二字的字体
CTRPr pRpr = p.getRArray(0).addNewRPr();
fonts = pRpr.isSetRFonts() ? pRpr.getRFonts() : pRpr.addNewRFonts();
fonts.setAscii("Times New Roman");
fonts.setEastAsia("华文中宋");
fonts.setHAnsi("华文中宋");
//"目录"二字加粗
CTOnOff bold = pRpr.isSetB() ? pRpr.getB() : pRpr.addNewB();
bold.setVal(STOnOff.TRUE);
// 设置“目录”二字字体大小为24号
CTHpsMeasure sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz();
sz.setVal(new BigInteger("36"));
}
public static void addRowOnlyTitle(int level, String title,CTSdtBlock block) {
CTSdtContentBlock contentBlock = block.getSdtContent();
CTP p = contentBlock.addNewP();
p.setRsidR("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
p.setRsidRDefault("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
CTPPr pPr = p.addNewPPr();
pPr.addNewPStyle().setVal("TOC" + level);
CTTabs tabs = pPr.addNewTabs();//Set of Custom Tab Stops自定义制表符集合
CTTabStop tab = tabs.addNewTab();//Custom Tab Stop自定义制表符
tab.setVal(STTabJc.RIGHT);
tab.setLeader(STTabTlc.DOT);
tab.setPos(new BigInteger("9190"));//默认为8290,因为调整过页边距,所有需要调整,手动设置找出最佳值
pPr.addNewRPr().addNewNoProof();//不检查语法
CTR run = p.addNewR();
run.addNewRPr().addNewNoProof();
run.addNewT().setStringValue(title);
//设置行间距
CTSpacing pSpacing = pPr.getSpacing() != null ? pPr.getSpacing(): pPr.addNewSpacing();
pSpacing.setLineRule(STLineSpacingRule.AUTO);//行间距类型:多倍
pSpacing.setLine(new BigInteger("360"));//此处1.5倍行间距
pSpacing.setBeforeLines(new BigInteger("20"));//段前0.2
pSpacing.setAfterLines(new BigInteger("10"));//段后0.1
//设置字体
CTRPr pRpr = run.getRPr();
CTFonts fonts = pRpr.isSetRFonts() ? pRpr.getRFonts() : pRpr.addNewRFonts();
fonts.setAscii("Times New Roman");
fonts.setEastAsia("黑体");
fonts.setHAnsi("黑体");
// 设置字体大小
CTHpsMeasure sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz();
sz.setVal(new BigInteger("24"));
CTHpsMeasure szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr.addNewSzCs();
szCs.setVal(new BigInteger("24"));
}
public static void addRow(int level, String title, int page, String bookmarkRef,CTSdtBlock block) {
CTSdtContentBlock contentBlock = block.getSdtContent();
CTP p = contentBlock.addNewP();
p.setRsidR("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
p.setRsidRDefault("00EF7E24".getBytes(LocaleUtil.CHARSET_1252));
CTPPr pPr = p.addNewPPr();
pPr.addNewPStyle().setVal("TOC" + level);
CTTabs tabs = pPr.addNewTabs();//Set of Custom Tab Stops自定义制表符集合
CTTabStop tab = tabs.addNewTab();//Custom Tab Stop自定义制表符
tab.setVal(STTabJc.RIGHT);
tab.setLeader(STTabTlc.DOT);
tab.setPos(new BigInteger("9100"));//默认为8290,因为调整过页边距,所有需要调整,手动设置找出最佳值
pPr.addNewRPr().addNewNoProof();//不检查语法
CTR run = p.addNewR();
run.addNewRPr().addNewNoProof();
run.addNewT().setStringValue(title);//添加标题文字
//设置标题字体
CTRPr pRpr = run.getRPr();
CTFonts fonts = pRpr.isSetRFonts() ? pRpr.getRFonts() : pRpr.addNewRFonts();
fonts.setAscii("Times New Roman");
fonts.setEastAsia("楷体");
fonts.setHAnsi("楷体");
// 设置标题字体大小
CTHpsMeasure sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz();
sz.setVal(new BigInteger("21"));
CTHpsMeasure szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr.addNewSzCs();
szCs.setVal(new BigInteger("21"));
//添加制表符
run = p.addNewR();
run.addNewRPr().addNewNoProof();
run.addNewTab();
//添加页码左括号
p.addNewR().addNewT().setStringValue("(");
//STFldCharType.BEGIN标识与结尾处STFldCharType.END相对应
run = p.addNewR();
run.addNewRPr().addNewNoProof();
run.addNewFldChar().setFldCharType(STFldCharType.BEGIN);//Field Character Type
// pageref run
run = p.addNewR();
run.addNewRPr().addNewNoProof();
CTText text = run.addNewInstrText();//Field Code 添加域代码文本控件
text.setSpace(SpaceAttribute.Space.PRESERVE);
// bookmark reference
//源码的域名为" PAGEREF _Toc","\h"含义为在目录内建立目录项与页码的超链接
text.setStringValue(" PAGEREF "+bookmarkRef + " \\h ");
p.addNewR().addNewRPr().addNewNoProof();
run = p.addNewR();
run.addNewRPr().addNewNoProof();
run.addNewFldChar().setFldCharType(STFldCharType.SEPARATE);
// page number run
run = p.addNewR();
run.addNewRPr().addNewNoProof();
run.addNewT().setStringValue(Integer.toString(page));
run = p.addNewR();
run.addNewRPr().addNewNoProof();
//STFldCharType.END标识与上面STFldCharType.BEGIN相对应
run.addNewFldChar().setFldCharType(STFldCharType.END);
//添加页码右括号
p.addNewR().addNewT().setStringValue(")");
//设置行间距
CTSpacing pSpacing = pPr.getSpacing() != null ? pPr.getSpacing(): pPr.addNewSpacing();
pSpacing.setLineRule(STLineSpacingRule.AUTO);//行间距类型:多倍
pSpacing.setLine(new BigInteger("360"));//此处1.5倍行间距
}
/**
* @param content 旧文件地址
* @param data 需要填写的参数
* @param destDocx 保存的文件地址
* @param newFile 新文件地址
*/
public static void wordRedDocument(String content, Map<String, String> data, String destDocx,String newFile) throws Exception {
//模板文件地址 固定模板
// String model = "模板.docx";
//模板文件 参数填写 render(data)
XWPFTemplate template = XWPFTemplate.compile(newFile);
//获取模板文件 公文
NiceXWPFDocument main = template.getXWPFDocument();
NiceXWPFDocument sub = new NiceXWPFDocument(new FileInputStream(content));
// 合并两个文档
NiceXWPFDocument newDoc = main.merge(sub);
// 生成新文档
FileOutputStream out = new FileOutputStream(destDocx);
newDoc.write(out);
newDoc.close();
out.close();
}
/**
* 合并两个文档到新的文件
* @param outfile 输出文件
* @param file1 要合并的文件1
* @param file2 要合并的文件2
* @throws Exception
*/
private void appenddoc(String outfile,String file1,String file2) throws Exception {
InputStream in1 = null;
InputStream in2 = null;
OPCPackage src1Package = null;
OPCPackage src2Package = null;
OutputStream dest = new FileOutputStream(outfile);
try {
in1 = new FileInputStream(file1);
in2 = new FileInputStream(file2);
src1Package = OPCPackage.open(in1);
src2Package = OPCPackage.open(in2);
} catch (Exception e) {
e.printStackTrace();
}
XWPFDocument src1Document = new XWPFDocument(src1Package);
CTBody src1Body = src1Document.getDocument().getBody();
XWPFParagraph p = src1Document.createParagraph();
//设置分页符
p.setPageBreak(true);
XWPFDocument src2Document = new XWPFDocument(src2Package);
CTBody src2Body = src2Document.getDocument().getBody();
appendBody(src1Body, src2Body);
src1Document.write(dest);
src1Document.close();
src2Document.close();
in1.close();
in2.close();
dest.close();
}
private void appendBody(CTBody src, CTBody append) throws Exception {
XmlOptions optionsOuter = new XmlOptions();
optionsOuter.setSaveOuter();
String appendString = append.xmlText(optionsOuter);
String srcString = src.xmlText();
String prefix = srcString.substring(0,srcString.indexOf(">")+1);
String mainPart = srcString.substring(srcString.indexOf(">")+1,srcString.lastIndexOf("<"));
String sufix = srcString.substring( srcString.lastIndexOf("<") );
String addPart = appendString.substring(appendString.indexOf(">") + 1, appendString.lastIndexOf("<"));
CTBody makeBody = CTBody.Factory.parse(prefix+mainPart+addPart+sufix);
src.set(makeBody);
}
/**
* 生成企标模板
*/
public static void writeWordModel(String filePath, JSONObject object, String pid) {
try {
XWPFDocument doc = new XWPFDocument();
StringBuilder builder=new StringBuilder();
builder.append(filePath);
builder.append("buss").append("/");
builder.append(pid).append("/");
String saveFileUrl = builder.toString();
File dir = new File(saveFileUrl);
if (!dir.exists()) {
dir.mkdirs();
}
FileOutputStream out = new FileOutputStream(new File(saveFileUrl+"model.docx"));
//设置文档一级主题居右
XWPFParagraph titleParagraph1 = doc.createParagraph();
titleParagraph1.setAlignment(ParagraphAlignment.RIGHT);
XWPFRun titleParagraphRun = titleParagraph1.createRun();
titleParagraphRun.setText(object.getString("standSort"));
titleParagraphRun.setColor("000000");
titleParagraphRun.setFontSize(48);
titleParagraphRun.setFontFamily("Times New Roman");
titleParagraphRun.setBold(true);
titleParagraphRun.addCarriageReturn();
//设置文档二级主题居中
XWPFParagraph titleParagraph2 = doc.createParagraph();
titleParagraph2.setAlignment(ParagraphAlignment.CENTER);
XWPFRun titleParagraphRun2 = titleParagraph2.createRun();
titleParagraphRun2.setText("北汽福田汽车股份有限公司企业标准");
titleParagraphRun2.setColor("000000");
titleParagraphRun2.setFontSize(24);
titleParagraphRun2.setFontFamily("黑体");
titleParagraphRun2.addCarriageReturn();
titleParagraphRun2.addCarriageReturn();
//设置文档三级级主题居右
XWPFParagraph titleParagraph3 = doc.createParagraph();
titleParagraph3.setAlignment(ParagraphAlignment.RIGHT);
XWPFRun titleParagraphRun3 = titleParagraph3.createRun();
titleParagraphRun3.setText(object.getString("standCode"));
titleParagraphRun3.setColor("000000");
titleParagraphRun3.setFontSize(14);
titleParagraphRun3.setFontFamily("Times New Roman");
titleParagraphRun3.addCarriageReturn();
titleParagraphRun3.addCarriageReturn();
titleParagraphRun3.addCarriageReturn();
//设置文档三级级主题居右
// XWPFParagraph titleParagraph4 = doc.createParagraph();
//
// titleParagraph4.setAlignment(ParagraphAlignment.RIGHT);
//
// XWPFRun titleParagraphRun4 = titleParagraph4.createRun();
// titleParagraphRun4.setText("代替 Q/FT XXXX—XXX X");
// titleParagraphRun4.setColor("000000");
// titleParagraphRun4.setFontSize(10);
// titleParagraphRun4.setFontFamily("Times New Roman");
// titleParagraphRun4.addCarriageReturn();
// titleParagraphRun4.addCarriageReturn();
// titleParagraphRun4.addCarriageReturn();
// titleParagraphRun4.addCarriageReturn();
// titleParagraphRun4.addCarriageReturn();
//设置背景名称一级级主题居中
XWPFParagraph breakParagraph1 = doc.createParagraph();
breakParagraph1.setAlignment(ParagraphAlignment.CENTER);
XWPFRun breakParagraphRun1 = breakParagraph1.createRun();
breakParagraphRun1.setText(object.getString("standName"));
breakParagraphRun1.setColor("000000");
breakParagraphRun1.setFontSize(26);
breakParagraphRun1.setFontFamily("黑体");
breakParagraphRun1.addCarriageReturn();
//设置背景名称二级级主题居中
XWPFParagraph breakParagraph2 = doc.createParagraph();
breakParagraph2.setAlignment(ParagraphAlignment.CENTER);
XWPFRun breakParagraphRun2 = breakParagraph2.createRun();
breakParagraphRun1.setText(object.getString("standEnName") == null ? "" : object.getString("standEnName"));
breakParagraphRun2.setColor("000000");
breakParagraphRun2.setFontSize(14);
breakParagraphRun2.setFontFamily("Times New Roman");
breakParagraphRun2.addCarriageReturn();
// 创建目录主题
// createCustomTOC(doc);
XWPFParagraph contentParagraph1 = doc.createParagraph();
contentParagraph1.setAlignment(ParagraphAlignment.CENTER);
XWPFRun contentParagraphRun1 = contentParagraph1.createRun();
breakParagraphRun1.setText(object.getString("standName"));
contentParagraphRun1.setColor("000000");
contentParagraphRun1.setFontSize(16);
contentParagraphRun1.setFontFamily("黑体");
contentParagraphRun1.addCarriageReturn();
contentParagraph1.setPageBreak(true);
doc.write(out);
out.close();
}catch (Exception e){
logger.error(e.getMessage());
}
}
public static CTSdtBlock createCustomTOC(XWPFDocument doc) {
CTSdtBlock block = doc.getDocument().getBody().addNewSdt();
// 生成目录方法 先在顶部占位,然后等文档的标题和内容等信息全部写完之后,在写目录剩下的部分
doc.createTOC();
CustomTOC(block);
addItem2TOC(doc,block);
return block;
}
public static void writeTOC() throws IOException {
XWPFDocument document= new XWPFDocument();
//Write the Document in file system
FileOutputStream out = new FileOutputStream(new File("E:\\Software\\rtpro\\Foton\\File\\doc\\create_toc.docx"));
//添加标题
XWPFParagraph titleParagraph = document.createParagraph();
//设置段落居中
titleParagraph.setAlignment(ParagraphAlignment.CENTER);
XWPFRun titleParagraphRun = titleParagraph.createRun();
titleParagraphRun.setText("Java PoI");
titleParagraphRun.setColor("000000");
titleParagraphRun.setFontSize(20);
//段落
XWPFParagraph firstParagraph = document.createParagraph();
firstParagraph.setStyle("Heading1");
XWPFRun run = firstParagraph.createRun();
run.setText("段落1。");
run.setColor("696969");
run.setFontSize(18);
//段落
XWPFParagraph firstParagraph1 = document.createParagraph();
firstParagraph1.setStyle("Heading1");
XWPFRun run1 = firstParagraph1.createRun();
run1.setText("段落2");
run1.setColor("696969");
run1.setFontSize(16);
document.createTOC();
document.write(out);
out.close();
}
public static void addItem2TOC(XWPFDocument doc,CTSdtBlock block) {
List<XWPFParagraph> paragraphs = doc.getParagraphs();
for (XWPFParagraph par : paragraphs) {
String parStyle = par.getStyle();
if (parStyle != null && parStyle.startsWith("Heading")) {
List<CTBookmark> bookmarkList=par.getCTP().getBookmarkStartList();
try {
int level = Integer.parseInt(parStyle.substring("Heading".length()));
if(level==1){
//添加栏目
addRowOnlyTitle(level, par.getText(),block);
}else{
//添加标题
addRow(level, par.getText(), 1, bookmarkList.get(0).getName(),block);
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) throws Exception {
wordRedDocument("E:\\Software\\rtpro\\Foton\\File\\doc\\create_toc-1.docx",null,"E:\\Software\\rtpro\\Foton\\File\\doc\\create_toc3.docx","E:\\Software\\rtpro\\Foton\\File\\doc\\create_toc-2.docx");
// writeWordBanch();
// writeToDocx();
// writeTOC();
// InputStream is = new BufferedInputStream(new FileInputStream("E:\\Software\\rtpro\\Foton\\File\\doc\\北汽福田资料\\资料\\提供材料2021.04\\10、标准复审单及修订计划表.doc")); //really a OOXML Word file
InputStream is = new BufferedInputStream(new FileInputStream("E:\\Software\\rtpro\\Foton\\File\\doc\\企业技术标准通用模板12.3.docx")); //really a OOXML Word file
if (FileMagic.valueOf(is) == FileMagic.OLE2) {
WordExtractor ex = new WordExtractor(is);
printWord(ex);
ex.close();
} else if (FileMagic.valueOf(is) == FileMagic.OOXML) {
XWPFDocument doc = new XWPFDocument(is);
System.out.println(doc.getStyles());
XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
// printWordHWPF(extractor);
extractor.close();
}
closeStream(is);
}
private static void printWord(WordExtractor extractor) {
//输出word文档所有的文本
System.out.println(extractor.getText());
System.out.println(extractor.getTextFromPieces());
//输出页眉的内容
System.out.println("页眉:" + extractor.getHeaderText());
//输出页脚的内容
System.out.println("页脚:" + extractor.getFooterText());
//输出当前word文档的元数据信息,包括作者、文档的修改时间等。
System.out.println(extractor.getMetadataTextExtractor().getText());
//获取各个段落的文本
String paraTexts[] = extractor.getParagraphText();
for (int i=0; i<paraTexts.length; i++) {
System.out.println("Paragraph " + (i+1) + " : " + paraTexts[i]);
}
//输出当前word的一些信息
printInfo(extractor.getSummaryInformation());
//输出当前word的一些信息
printInfo(extractor.getDocSummaryInformation());
}
private static void printWordHWPF(XWPFWordExtractor xwpfWordExtractor) {
//输出word文档所有的文本
System.out.println(xwpfWordExtractor.getText());
}
}
@@ -48,33 +48,33 @@ public class PresidentApprovalAfter implements TaskListener {
if("1".equals(object.getString("gsfz"))){ if("1".equals(object.getString("gsfz"))){
delegateTask.setVariable("gsfz", "1"); delegateTask.setVariable("gsfz", "1");
JSONArray jsonArray=JSONArray.parseArray(object.getString("itemList")); JSONArray jsonArray=JSONArray.parseArray(object.getString("itemList"));
List<WgDept> wgDept=new ArrayList<>(); // List<WgDept> wgDept=new ArrayList<>();
jsonArray.forEach(o -> { // jsonArray.forEach(o -> {
JSONObject os=JSONObject.parseObject(o.toString()); // JSONObject os=JSONObject.parseObject(o.toString());
WgDept wgDept1=new WgDept(); // WgDept wgDept1=new WgDept();
wgDept1.setWgId(object.getString("standId")); // wgDept1.setWgId(object.getString("standId"));
wgDept1.setDeptOrder(os.getString("itemsNum")); // wgDept1.setDeptOrder(os.getString("itemsNum"));
wgDept1.setDeptPeopleId(os.getString("itemsName")); // wgDept1.setDeptPeopleId(os.getString("itemsName"));
wgDept1.setIdentity(os.getString("responsibleUnitShow")); // wgDept1.setIdentity(os.getString("responsibleUnitShow"));
wgDept1.setJoinfile(os.getString("zxUserIdName")); // wgDept1.setJoinfile(os.getString("zxUserIdName"));
wgDept1.setJoinId(os.getString("itermsConditions")); // wgDept1.setJoinId(os.getString("itermsConditions"));
wgDept.add(wgDept1); // wgDept.add(wgDept1);
}); // });
//
JSONArray jsonArray1=JSONArray.parseArray(delegateTask.getVariable("itemListOld",String.class)); // JSONArray jsonArray1=JSONArray.parseArray(delegateTask.getVariable("itemListOld",String.class));
jsonArray1.forEach(obj ->{ // jsonArray1.forEach(obj ->{
JSONObject object1 = JSONObject.parseObject(obj.toString()); // JSONObject object1 = JSONObject.parseObject(obj.toString());
WgDept wgDept1=new WgDept(); // WgDept wgDept1=new WgDept();
wgDept1.setWgId(object.getString("standId")); // wgDept1.setWgId(object.getString("standId"));
wgDept1.setDeptOrder(object1.getString("itemsNum")); // wgDept1.setDeptOrder(object1.getString("itemsNum"));
wgDept1.setDeptPeopleId(object1.getString("itemsName")); // wgDept1.setDeptPeopleId(object1.getString("itemsName"));
wgDept1.setIdentity(object1.getString("responsibleUnitShow")); // wgDept1.setIdentity(object1.getString("responsibleUnitShow"));
wgDept1.setJoinfile(object1.getString("zxUserIdName")); // wgDept1.setJoinfile(object1.getString("zxUserIdName"));
wgDept1.setJoinId(object1.getString("itermsConditions")); // wgDept1.setJoinId(object1.getString("itermsConditions"));
wgDept.add(wgDept1); // wgDept.add(wgDept1);
}); // });
//
lawsUserInfoService.wgDeptSaveBatch(wgDept); // lawsUserInfoService.wgDeptSaveBatch(wgDept);
prcName = "政策课题组参会流程"; prcName = "政策课题组参会流程";
}else{ }else{
@@ -45,14 +45,7 @@ public class PEPffresPersonAfter implements TaskListener {
delegateTask.setVariable("objectJson", object); delegateTask.setVariable("objectJson", object);
String prcName = ""; String prcName = "";
// if ("2".equals(object.getString("fenFlag")) && null == delegateTask.getVariable("PEPCount") && delegateTask.getVariable("workPeoples", List.class).size()==1){ prcName = delegateTask.getVariable("stands", String.class) + "-标准项目合规评估-汇总审批";
prcName = delegateTask.getVariable("stands",String.class)+"-标准项目合规评估-汇总审批";
// }
// else if ("2".equals(object.getString("fenFlag")) && String.valueOf(delegateTask.getVariable("PEPCount")).equals(String.valueOf(delegateTask.getVariable("workPeoples", List.class).size())) ) {
// prcName = delegateTask.getVariable("stands",String.class)+"-标准项目合规评估-汇总审批";
// } else {
//
// }
List<String> nextUserList = new ArrayList(); List<String> nextUserList = new ArrayList();
@@ -68,11 +61,11 @@ public class PEPffresPersonAfter implements TaskListener {
delegateTask.setVariable("fenFlag", "1"); delegateTask.setVariable("fenFlag", "1");
} else { } else {
//不通过就要驳回 //不通过就要驳回
object.put("dataList",delegateTask.getVariable(object.getString("key"))); object.put("dataList", delegateTask.getVariable(object.getString("key")));
nextUserList.add(String.valueOf(delegateTask.getVariable("workPeople"))); nextUserList.add(String.valueOf(delegateTask.getVariable("workPeople")));
delegateTask.setVariable("workPeople", String.valueOf(delegateTask.getVariable("workPeople"))); delegateTask.setVariable("workPeople", String.valueOf(delegateTask.getVariable("workPeople")));
delegateTask.setVariable("fenFlag", "2"); delegateTask.setVariable("fenFlag", "2");
object.put("mark","back"); object.put("mark", "back");
BusProcessNew busProcessNewNext = new BusProcessNew(); BusProcessNew busProcessNewNext = new BusProcessNew();
busProcessNewNext.setMsgType("clause"); busProcessNewNext.setMsgType("clause");
busProcessNewNext.setPId(delegateTask.getProcessInstanceId()); busProcessNewNext.setPId(delegateTask.getProcessInstanceId());
@@ -114,13 +107,13 @@ public class PEPffresPersonAfter implements TaskListener {
} }
} }
if (String.valueOf(delegateTask.getVariable("PEPCount")).equals(String.valueOf(delegateTask.getVariable("workPeoples", List.class).size()))) { if (String.valueOf(delegateTask.getVariable("PEPCount")).equals(String.valueOf(delegateTask.getVariable("workPeoples", List.class).size()))) {
prcName = delegateTask.getVariable("stands",String.class)+"-标准项目合规评估-合规性评估"; prcName = delegateTask.getVariable("stands", String.class) + "-标准项目合规评估-合规性评估";
oneStep1(delegateTask, busBean, nextUserList,prcName); oneStep1(delegateTask, busBean, nextUserList, prcName);
} }
} }
private void oneStep1(DelegateTask delegateTask, IBusProcessNewService busBean, List<String> nextUserList,String prcName) { private void oneStep1(DelegateTask delegateTask, IBusProcessNewService busBean, List<String> nextUserList, String prcName) {
//中间对象 //中间对象
List<String> CPX = new ArrayList<>(); List<String> CPX = new ArrayList<>();
Map<String, List<BusProcessNew>> map = new HashMap<>(); Map<String, List<BusProcessNew>> map = new HashMap<>();
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.text.MessageFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
@@ -20,6 +21,10 @@ import java.util.*;
*/ */
public class Utils { public class Utils {
public static String format(String value, Object... paras) {
return MessageFormat.format(value, paras);
}
public static int subDayNum(String endTime){ public static int subDayNum(String endTime){
if (endTime.length() >= 10) { if (endTime.length() >= 10) {
endTime = endTime.substring(0, 10); endTime = endTime.substring(0, 10);
+9
View File
@@ -109,3 +109,12 @@ webUrl: https://srms.foton.com.cn/#/
isNotScheduled: true isNotScheduled: true
buss:
edit:
file:
path: /data/slrs/file/
down:
file:
# path: https://srms.foton.com.cn/file/
path: http://foton.natapp1.cc/file/
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessEvaluationHisMapper">
</mapper>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ydw.bat.wkflow.business_main.datas.mapper.BusProcessModelHisMapper">
</mapper>