提u叫
parent
d57b016f25
commit
ed2f1aba5f
|
@ -5,16 +5,12 @@ import com.ruoyi.common.core.domain.AjaxResult;
|
|||
import com.ruoyi.flowable.domain.vo.ProcKeyRole;
|
||||
import com.ruoyi.system.domain.FlowProcDefDto;
|
||||
import org.flowable.bpmn.model.FlowElement;
|
||||
import org.flowable.engine.repository.ProcessDefinition;
|
||||
import org.flowable.engine.runtime.ProcessInstance;
|
||||
import org.flowable.task.api.Task;
|
||||
import org.flowable.bpmn.model.UserTask;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author Tony
|
||||
|
@ -120,4 +116,11 @@ public interface IFlowDefinitionService {
|
|||
* @return
|
||||
*/
|
||||
public void updateProcKeyRoleSort(ProcKeyRole procKeyRole);
|
||||
|
||||
/**
|
||||
* 读取流程节点
|
||||
* @param deployId
|
||||
* @return
|
||||
*/
|
||||
public List<UserTask> findFlowNodes(String deployId);
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import org.apache.commons.io.IOUtils;
|
||||
import org.flowable.bpmn.model.BpmnModel;
|
||||
import org.flowable.bpmn.model.FlowElement;
|
||||
import org.flowable.bpmn.model.UserTask;
|
||||
import org.flowable.engine.repository.Deployment;
|
||||
import org.flowable.engine.repository.ProcessDefinition;
|
||||
import org.flowable.engine.repository.ProcessDefinitionQuery;
|
||||
|
@ -207,6 +208,20 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl
|
|||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取流程节点
|
||||
* @param deployId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<UserTask> findFlowNodes(String deployId){
|
||||
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deployId).singleResult();
|
||||
//获得图片流
|
||||
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId());
|
||||
List<UserTask> list = bpmnModel.getProcesses().get(0).findFlowElementsOfType(UserTask.class);
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据流程定义ID启动流程实例
|
||||
*
|
||||
|
|
|
@ -99,6 +99,9 @@ public class FlowTaskEntity extends BaseEntity{
|
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date finishTime;
|
||||
|
||||
@ApiModelProperty("任务完成类型")
|
||||
private String taskComType;
|
||||
|
||||
private long deptId;
|
||||
private long projectId;
|
||||
|
||||
|
@ -345,4 +348,12 @@ public class FlowTaskEntity extends BaseEntity{
|
|||
public void setBusinessKey(String businessKey) {
|
||||
this.businessKey = businessKey;
|
||||
}
|
||||
|
||||
public String getTaskComType() {
|
||||
return taskComType;
|
||||
}
|
||||
|
||||
public void setTaskComType(String taskComType) {
|
||||
this.taskComType = taskComType;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -682,7 +682,7 @@ export default {
|
|||
let data = [];
|
||||
for (let i = 0; i < this.projectUnitUsers.length; i++) {
|
||||
if (this.projectUnitUsers[i].projectId == row.projectId) {
|
||||
data = this.projectUnitUsers[i].data;
|
||||
data = this.projectUnitUsers[i].fjdata;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -682,7 +682,7 @@ export default {
|
|||
let data = [];
|
||||
for (let i = 0; i < this.projectUnitUsers.length; i++) {
|
||||
if (this.projectUnitUsers[i].projectId == row.projectId) {
|
||||
data = this.projectUnitUsers[i].data;
|
||||
data = this.projectUnitUsers[i].fjdata;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ import com.ruoyi.system.service.ISysUserService;
|
|||
import com.yanzhu.jh.project.service.ISurProjectAuditinfoService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.flowable.bpmn.model.UserTask;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
@ -289,4 +290,22 @@ public class WcFlowableController extends BaseController {
|
|||
return success(flowBusinessKeyService.quueryCount(flowTaskEntity));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询流程节点
|
||||
* @param deployId
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation(value = "查询流程节点")
|
||||
@GetMapping("/readDeployNotes/{deployId}")
|
||||
public AjaxResult readDeployNotes(@ApiParam(value = "流程定义id") @PathVariable(value = "deployId") String deployId) {
|
||||
String key = "YANZHU.FLOW.readDeployNotes:" + deployId;
|
||||
Object object = redisCache.getCacheObject(key);
|
||||
if (object != null) {
|
||||
return success(object);
|
||||
}
|
||||
List<UserTask> list = flowDefinitionService.findFlowNodes(deployId);
|
||||
redisCache.setCacheObject(key, list, 2, TimeUnit.MINUTES);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -70,11 +70,13 @@ LEFT JOIN (
|
|||
tu.user_id AS assigneeId,
|
||||
tu.nick_name AS assigneeName,
|
||||
td.dept_name AS assigneeDeptName,
|
||||
ht.PROC_INST_ID_
|
||||
ht.PROC_INST_ID_,
|
||||
ahc.TYPE_ as taskComType
|
||||
FROM
|
||||
act_hi_taskinst ht
|
||||
LEFT JOIN sys_user tu ON tu.user_id = ht.ASSIGNEE_
|
||||
LEFT JOIN sys_dept td ON td.dept_id = tu.dept_id
|
||||
left join act_hi_comment ahc on ahc.TASK_ID_ = ht.ID_ AND ahc.PROC_INST_ID_ is not NULL
|
||||
WHERE
|
||||
ht.ID_ IN (
|
||||
SELECT
|
||||
|
@ -85,9 +87,9 @@ LEFT JOIN (
|
|||
PROC_INST_ID_
|
||||
)
|
||||
GROUP BY ht.PROC_INST_ID_
|
||||
|
||||
) ht ON ht.PROC_INST_ID_ = RES.PROC_INST_ID_
|
||||
)
|
||||
|
||||
##待办
|
||||
DROP view vw_flow_await;
|
||||
CREATE VIEW vw_flow_await AS (SELECT
|
||||
|
@ -152,49 +154,6 @@ WHERE
|
|||
##审批意见
|
||||
DROP view vw_flow_comment;
|
||||
CREATE VIEW vw_flow_comment AS (
|
||||
SELECT
|
||||
hc.ID_ AS commentId,
|
||||
hc.TYPE_ AS commentType,
|
||||
ht.ID_ AS taskId,
|
||||
ht.NAME_ AS taskName,
|
||||
ht.REV_ AS rev,
|
||||
CASE
|
||||
WHEN hc.TYPE_ = 1
|
||||
AND ht.REV_ != 2 THEN
|
||||
'通过'
|
||||
WHEN hc.TYPE_ != 1 THEN
|
||||
'驳回'
|
||||
END AS commentResult,
|
||||
ht.PROC_INST_ID_ AS procInstId,
|
||||
ht.TASK_DEF_KEY_ AS taskDefKey,
|
||||
ht.EXECUTION_ID_ AS executionId,
|
||||
ht.DELETE_REASON_ AS deleteReason,
|
||||
DATE_FORMAT(
|
||||
ht.START_TIME_,
|
||||
'%Y-%m-%d %H:%i:%S'
|
||||
) AS startTime,
|
||||
DATE_FORMAT(
|
||||
ht.END_TIME_,
|
||||
'%Y-%m-%d %H:%i:%S'
|
||||
) AS endTime,
|
||||
ht.DURATION_ AS duration,
|
||||
hc.MESSAGE_ AS message,
|
||||
ru.nick_name AS assigneeName,
|
||||
rd.dept_name AS deptName,
|
||||
r.role_name as candidate
|
||||
FROM
|
||||
act_hi_taskinst ht
|
||||
LEFT JOIN act_hi_comment hc ON hc.TASK_ID_ = ht.ID_
|
||||
LEFT JOIN act_hi_identitylink hi on hi.TASK_ID_ = ht.ID_ and hi.TYPE_ = 'candidate'
|
||||
left JOIN sys_role r on r.role_id = hi.group_Id_
|
||||
LEFT JOIN sys_user ru ON ru.user_id = ht.ASSIGNEE_
|
||||
LEFT JOIN sys_dept rd ON rd.dept_id = ru.dept_id
|
||||
where hc.TYPE_ is null or hc.TYPE_!='event'
|
||||
)
|
||||
|
||||
##审批意见V2
|
||||
DROP view vw_flow_comment;
|
||||
CREATE VIEW vw_flow_comment AS (
|
||||
SELECT
|
||||
hc.ID_ AS commentId,
|
||||
hc.TYPE_ AS commentType,
|
||||
|
@ -268,7 +227,8 @@ DEF.END_TIME_ as finishTime,
|
|||
ru.user_id AS startUserId,
|
||||
ru.nick_name AS startUserName,
|
||||
rd.dept_name AS startDeptName,
|
||||
RES.ASSIGNEE_
|
||||
RES.ASSIGNEE_,
|
||||
ahc.TYPE_ as taskComType
|
||||
FROM
|
||||
act_hi_taskinst RES
|
||||
LEFT OUTER JOIN act_hi_procinst DEF ON RES.PROC_INST_ID_ = DEF.PROC_INST_ID_
|
||||
|
@ -276,9 +236,11 @@ LEFT OUTER join act_re_procdef pd on RES.PROC_DEF_ID_ = pd.ID_
|
|||
LEFT OUTER JOIN sur_project sp ON DEF.BUSINESS_KEY_ = sp.id
|
||||
LEFT JOIN sys_user ru ON ru.user_id = RES.ASSIGNEE_
|
||||
LEFT JOIN sys_dept rd ON rd.dept_id = ru.dept_id
|
||||
left join act_hi_comment ahc on ahc.TASK_ID_ = RES.ID_ AND ahc.PROC_INST_ID_ is not NULL
|
||||
WHERE
|
||||
RES.ASSIGNEE_ is not null and RES.END_TIME_ is not null)
|
||||
|
||||
|
||||
##君哥其它sql
|
||||
CREATE VIEW vw_smz_ssp_problemmodify_audit
|
||||
AS
|
||||
|
|
|
@ -100,6 +100,7 @@ public class WeChatMessageServiceImpl {
|
|||
WxMpTemplateMessage copyTemplateMessage = WxMpTemplateMessage.builder()
|
||||
.toUser(this.getMsgId(copySendUser))
|
||||
.templateId(TemplateMessageEnum.TROUBLE_SUBMIT.getId())
|
||||
.miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_problemmodify/"+handlePath+"/list/index?barProId="+smzSspProblemmodify.getProjectId()))
|
||||
.build();
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("thing7", this.getMsgProName(smzSspProblemmodify.getProjectId())));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("thing5", this.getMsgName(smzSspProblemmodify.getCreateUser())+"〔"+DictUtils.getDictLabel("sys_ssp_yhfl",smzSspProblemmodify.getRoleType()+"")+"〕"));
|
||||
|
@ -126,6 +127,25 @@ public class WeChatMessageServiceImpl {
|
|||
templateMessage.addWxMpTemplateData(new WxMpTemplateData("const10", "隐患整改提交复检"));
|
||||
list.add(templateMessage);
|
||||
|
||||
/**
|
||||
* 通知抄送人
|
||||
*/
|
||||
if(StringUtils.isNotBlank(smzSspProblemmodify.getCopySendUser())){
|
||||
String[] copySendUsers = smzSspProblemmodify.getCopySendUser().split(",");
|
||||
for(String copySendUser:copySendUsers){
|
||||
WxMpTemplateMessage copyTemplateMessage = WxMpTemplateMessage.builder()
|
||||
.toUser(this.getMsgId(smzSspProblemmodify.getRecheckSendUser()))
|
||||
.templateId(this.getMsgId(copySendUser))
|
||||
.miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_problemmodify/"+handlePath+"/list/index?barProId="+smzSspProblemmodify.getProjectId()))
|
||||
.build();
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("thing11", this.getMsgProName(smzSspProblemmodify.getProjectId())));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("const16", infoTypeName+"/"+ DictUtils.getDictLabel(infoTypeDict,smzSspProblemmodify.getDangerType())));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", smzSspProblemmodify.getLordSent()));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("time3", DateUtils.getTime()));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("const10", "隐患整改提交复检"));
|
||||
list.add(copyTemplateMessage);
|
||||
}
|
||||
}
|
||||
} else if(state==3){
|
||||
/**
|
||||
* 复检人驳回整改
|
||||
|
@ -142,6 +162,26 @@ public class WeChatMessageServiceImpl {
|
|||
templateMessage.addWxMpTemplateData(new WxMpTemplateData("time3", DateUtils.getTime()));
|
||||
templateMessage.addWxMpTemplateData(new WxMpTemplateData("const10", "隐患整改复检驳回,请重新提交整改"));
|
||||
list.add(templateMessage);
|
||||
|
||||
/**
|
||||
* 通知抄送人
|
||||
*/
|
||||
if(StringUtils.isNotBlank(smzSspProblemmodify.getCopySendUser())){
|
||||
String[] copySendUsers = smzSspProblemmodify.getCopySendUser().split(",");
|
||||
for(String copySendUser:copySendUsers){
|
||||
WxMpTemplateMessage copyTemplateMessage = WxMpTemplateMessage.builder()
|
||||
.toUser(this.getMsgId(smzSspProblemmodify.getRecheckSendUser()))
|
||||
.templateId(this.getMsgId(copySendUser))
|
||||
.miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_problemmodify/"+handlePath+"/list/index?barProId="+smzSspProblemmodify.getProjectId()))
|
||||
.build();
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("thing11", this.getMsgProName(smzSspProblemmodify.getProjectId())));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("const16", infoTypeName+"/"+ DictUtils.getDictLabel(infoTypeDict,smzSspProblemmodify.getDangerType())));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", smzSspProblemmodify.getRecheckSend()));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("time3", DateUtils.getTime()));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("const10", "隐患整改复检驳回,请重新提交整改"));
|
||||
list.add(copyTemplateMessage);
|
||||
}
|
||||
}
|
||||
} else if(state==4){
|
||||
/**
|
||||
* 复检人通过整改
|
||||
|
@ -158,6 +198,26 @@ public class WeChatMessageServiceImpl {
|
|||
templateMessage.addWxMpTemplateData(new WxMpTemplateData("time3", DateUtils.getTime()));
|
||||
templateMessage.addWxMpTemplateData(new WxMpTemplateData("const10", "隐患整改复检通过"));
|
||||
list.add(templateMessage);
|
||||
|
||||
/**
|
||||
* 通知抄送人
|
||||
*/
|
||||
if(StringUtils.isNotBlank(smzSspProblemmodify.getCopySendUser())){
|
||||
String[] copySendUsers = smzSspProblemmodify.getCopySendUser().split(",");
|
||||
for(String copySendUser:copySendUsers){
|
||||
WxMpTemplateMessage copyTemplateMessage = WxMpTemplateMessage.builder()
|
||||
.toUser(this.getMsgId(smzSspProblemmodify.getRecheckSendUser()))
|
||||
.templateId(this.getMsgId(copySendUser))
|
||||
.miniProgram(new WxMpTemplateMessage.MiniProgram(WechatAccountConfig.getWxAppId(), "/pageage/project_problemmodify/"+handlePath+"/list/index?barProId="+smzSspProblemmodify.getProjectId()))
|
||||
.build();
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("thing11", this.getMsgProName(smzSspProblemmodify.getProjectId())));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("const16", infoTypeName+"/"+ DictUtils.getDictLabel(infoTypeDict,smzSspProblemmodify.getDangerType())));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("thing2", smzSspProblemmodify.getRecheckSend()));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("time3", DateUtils.getTime()));
|
||||
copyTemplateMessage.addWxMpTemplateData(new WxMpTemplateData("const10", "隐患整改复检通过"));
|
||||
list.add(copyTemplateMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.send(list, MessageTypeEnum.getYHPCLX(smzSspProblemmodify.getInfoType())+state);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue