Commit 11ba11a2 by 赵剑炜

新增删除工作流部分

parent fac33f8e
......@@ -15,7 +15,6 @@ import javax.validation.constraints.NotNull;
@ApiModel(value = "com-junmp-jyzb-domain-PoliceFinger")
@Data
@TableName("base_police_finger")
@AllArgsConstructor
@NoArgsConstructor
@TableName("base_police_finger")
......
......@@ -75,11 +75,11 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
cabinet.setId(uuid);
cabinet.setCreateTime(currentDate);
cabinet.setUpdateTime(currentDate);
cabinet.setOrgId((String) msg.get("orgId"));
// cabinet.setOrgId((String) msg.get("orgId"));
cabinet.setName((String) msg.get("name"));
//cabinet.setUpdateUser((String) msg.get("updateUser"));
cabinet.setLocation((String) msg.get("location"));
cabinet.setNum((String) msg.get("num"));
// cabinet.setNum((String) msg.get("num"));
cabinet.setCabinetNum(cabinetNum);
cabinetMapper.addCabinet(cabinet);
/**
......@@ -181,7 +181,7 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
cabinet.setId((String) msg.get("id"));
cabinet.setCabinetNum((String) msg.get("cabinetNum"));
cabinet.setName((String) msg.get("name"));
cabinet.setOrgId((String) msg.get("orgId"));
// cabinet.setOrgId((String) msg.get("orgId"));
cabinet.setLocation((String) msg.get("location"));
//cabinet.setUpdateUser((String) msg.get("updateUser"));
//cabinet.setState((Integer) msg.get("errorState"));
......
......@@ -65,7 +65,7 @@ public class EquipmentSizeServiceImpl extends ServiceImpl<EquipmentSizeMapper, E
size.setCode((String) msg.get("code"));
size.setName((String) msg.get("name"));
size.setNote((String) msg.get("note"));
size.setPrice((Double) msg.get("price"));
// size.setPrice((Double) msg.get("price"));
size.setEpcType((Integer) msg.get("epcType"));
equipmentSizeMapper.addSize(size);
......@@ -132,7 +132,7 @@ public class EquipmentSizeServiceImpl extends ServiceImpl<EquipmentSizeMapper, E
size.setName((String) msg.get("name"));
size.setNote((String) msg.get("note"));
size.setUpdateTime(currentDate);
size.setPrice((Double) msg.get("price"));
// size.setPrice((Double) msg.get("price"));
//size.setState((Integer) msg.get("state"));
size.setEpcType((Integer) msg.get("epcType"));
equipmentSizeMapper.updateSize(size);
......
package com.junmp.junmpProcess.cmd;
import org.flowable.common.engine.api.FlowableIllegalArgumentException;
import org.flowable.common.engine.api.FlowableObjectNotFoundException;
import org.flowable.common.engine.impl.interceptor.Command;
import org.flowable.common.engine.impl.interceptor.CommandContext;
import org.flowable.engine.compatibility.Flowable5CompatibilityHandler;
import org.flowable.engine.impl.persistence.entity.ExecutionEntity;
import org.flowable.engine.impl.util.CommandContextUtil;
import org.flowable.engine.impl.util.Flowable5Util;
import org.flowable.engine.runtime.ProcessInstance;
import java.io.Serializable;
public class DeleteFlowableProcessInstanceCmd implements Command<Void>, Serializable {
private static final long serialVersionUID = 1L;
protected String processInstanceId;
protected String deleteReason;
protected boolean cascade = false;
public DeleteFlowableProcessInstanceCmd(String processInstanceId, String deleteReason) {
this.processInstanceId = processInstanceId;
this.deleteReason = deleteReason;
}
public DeleteFlowableProcessInstanceCmd(String processInstanceId, String deleteReason,boolean cascade) {
this.processInstanceId = processInstanceId;
this.deleteReason = deleteReason;
this.cascade = cascade;
}
@Override
public Void execute(CommandContext commandContext) {
if (processInstanceId == null) {
throw new FlowableIllegalArgumentException("processInstanceId is null");
}
ExecutionEntity processInstanceEntity = CommandContextUtil.getExecutionEntityManager(commandContext).findById(processInstanceId);
if (processInstanceEntity == null) {
throw new FlowableObjectNotFoundException("No process instance found for id '" + processInstanceId + "'", ProcessInstance.class);
}
if (processInstanceEntity.isDeleted()) {
return null;
}
if (Flowable5Util.isFlowable5ProcessDefinitionId(commandContext, processInstanceEntity.getProcessDefinitionId())) {
Flowable5CompatibilityHandler compatibilityHandler = Flowable5Util.getFlowable5CompatibilityHandler();
compatibilityHandler.deleteProcessInstance(processInstanceId, deleteReason);
} else {
CommandContextUtil.getExecutionEntityManager(commandContext).deleteProcessInstance(processInstanceEntity.getProcessInstanceId(), deleteReason, cascade);
}
return null;
}
}
\ No newline at end of file
......@@ -10,10 +10,7 @@ import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.junmp.junmpProcess.common.R;
import com.junmp.junmpProcess.common.Result;
import com.junmp.junmpProcess.dto.ApplyDTO;
import com.junmp.junmpProcess.dto.HandleDataDTO;
import com.junmp.junmpProcess.dto.StartProcessInstanceDTO;
import com.junmp.junmpProcess.dto.TaskDTO;
import com.junmp.junmpProcess.dto.*;
import com.junmp.junmpProcess.dto.json.JunmpUserInfo;
import com.junmp.junmpProcess.dto.json.UserInfo;
import com.junmp.junmpProcess.entity.ProcessTemplates;
......@@ -72,8 +69,8 @@ public class BpmnController {
@ApiOperation("创建流程和表单")
@PostMapping(value = "create")
public ResponseResult create(@RequestBody ProcessVO processVO) throws JsonProcessingException {
return WorkProcessService.createBpmn(processVO);
public ApiRes<Boolean> create(@RequestBody ProcessVO processVO) throws JsonProcessingException {
return ApiRes.success(WorkProcessService.createBpmn(processVO));
}
/**
......@@ -81,8 +78,16 @@ public class BpmnController {
*/
@ApiOperation("修改表单")
@PutMapping("updateForm")
public ResponseResult updateForm(@RequestBody UpdateProcessVO process) throws JsonProcessingException {
return WorkProcessService.updateForm(process);
public ApiRes<Boolean> updateForm(@RequestBody UpdateProcessVO process) throws JsonProcessingException {
return ApiRes.success(WorkProcessService.updateForm(process));
}
/**
* 修改表单
*/
@ApiOperation("删除流程实例")
@PostMapping("deleteForm")
public ApiRes<Boolean> deleteProcessInstanceById(@RequestBody ProcessDTO process) {
return ApiRes.success(WorkProcessService.deleteProcessInstance(process));
}
/**
* 修改表单名称和备注
......@@ -98,8 +103,16 @@ public class BpmnController {
*/
@ApiOperation("轉交")
@PutMapping("turn")
public ResponseResult turn(@RequestBody TurnVo turns) {
return WorkProcessService.turn(turns);
public ApiRes<Boolean> turn(@RequestBody TurnVo turns) {
if (WorkProcessService.turn(turns))
{
return ApiRes.success();
}
else
{
return ApiRes.failure("沒有可用实例");
}
}
@ApiOperation("通过流程定义id启动流程")
......
package com.junmp.junmpProcess.dto;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
@Data
public class ProcessDTO {
private String processDefinitionId;
private String templateId;
}
......@@ -9,6 +9,8 @@ import com.junmp.junmpProcess.dto.json.*;
import com.junmp.junmpProcess.exception.WorkFlowException;
import com.junmp.junmpProcess.mapper.OrgUserMapper;
import com.junmp.junmpProcess.service.Repository.ProcessTemplateService;
import com.junmp.v2.auth.api.bean.login.LoginUser;
import com.junmp.v2.auth.api.context.LoginContext;
import com.junmp.v2.sys.api.UserServiceApi;
import com.junmp.v2.sys.api.bean.user.dto.RoleUserDto;
import com.junmp.v2.sys.api.bean.user.vo.QueryUserInfoVo;
......@@ -128,9 +130,27 @@ public class CounterSignListener implements ExecutionListener {
{
assigneeList.add(userId.getUserID());
}
}
}
else if (Type.equals("5"))//上级审批
{
LoginUser StartUser= LoginContext.getContext().getLoginUser();
List<UserListDTO> userList= orgUserMapper.QueryUserParentOrg(StartUser.getUserId().toString());
if (userList.size()<=0)//没有上级则本身已是上级
{
assigneeList.add(StartUser.getUserId().toString());
}
else//
{
for (UserListDTO userId :userList)
{
assigneeList.add(userId.getUserID());
}
}
}
if (assigneeList.size()!=0)
......
......@@ -22,4 +22,6 @@ public interface OrgUserMapper {
* @Return
*/
public List<UserListDTO> QueryUserByRoleIdAndOrg(String roleId,String orgId);
public List<UserListDTO> QueryUserParentOrg(String userId);
}
......@@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.junmp.junmpProcess.common.Result;
import com.junmp.junmpProcess.dto.ApplyDTO;
import com.junmp.junmpProcess.dto.HandleDataDTO;
import com.junmp.junmpProcess.dto.StartProcessInstanceDTO;
import com.junmp.junmpProcess.dto.TaskDTO;
import com.junmp.junmpProcess.dto.*;
import com.junmp.junmpProcess.entity.ProcessTemplates;
import com.junmp.junmpProcess.vo.*;
import com.junmp.jyzb.entity.ProductSku;
......@@ -26,23 +23,28 @@ public interface WorkProcessService {
*
* @return
*/
ResponseResult createBpmn(ProcessVO processVO) throws JsonProcessingException;
Boolean createBpmn(ProcessVO processVO) throws JsonProcessingException;
/**
* 编辑表单
*
* @return
*/
ResponseResult updateForm(UpdateProcessVO process)
throws JsonProcessingException;
Boolean deleteProcessInstance(ProcessDTO processInstance);
/**
* 编辑表单
*
* @return
*/
Boolean updateForm(UpdateProcessVO process)throws JsonProcessingException;
/**
* 编辑表单名称
*
* @return
*/
Boolean updateFormName(UpdateProcessVO process);
ResponseResult turn(TurnVo turns);
Boolean turn(TurnVo turns);
/**
* @Author: Zhaojw
......
......@@ -14,6 +14,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import com.junmp.junmpProcess.cmd.DeleteFlowableProcessInstanceCmd;
import com.junmp.junmpProcess.dto.*;
import com.junmp.junmpProcess.dto.json.*;
import com.junmp.junmpProcess.entity.ProcessTemplates;
......@@ -40,10 +41,7 @@ import org.flowable.bpmn.BpmnAutoLayout;
import org.flowable.bpmn.model.*;
import org.flowable.bpmn.model.Process;
import org.flowable.common.engine.impl.identity.Authentication;
import org.flowable.engine.HistoryService;
import org.flowable.engine.RepositoryService;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
import org.flowable.engine.*;
import org.flowable.engine.delegate.ExecutionListener;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.history.HistoricProcessInstance;
......@@ -53,6 +51,7 @@ import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.Execution;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.engine.runtime.ProcessInstanceBuilder;
import org.flowable.engine.runtime.ProcessInstanceQuery;
import org.flowable.engine.task.Attachment;
import org.flowable.engine.task.Comment;
import org.flowable.task.api.DelegationState;
......@@ -86,7 +85,8 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
private ProcessTemplateService processTemplateService;
@Resource
private RepositoryService repositoryService;
@Autowired
protected ManagementService managementService;
@Resource
private RuntimeService runtimeService;
......@@ -126,7 +126,7 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
}
return task;
}
public ResponseResult turn(TurnVo turns)
public Boolean turn(TurnVo turns)
{
......@@ -146,9 +146,9 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
taskService.setOwner(turns.getTaskId(), owner);
}
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,"转办成功");
return true;
} else {
return new ResponseResult(HttpStatus.NO_SUCH_PROCESS,ReturnMsg.PASS,"没有运行时的任务实例,请确认!");
return false;
}
}
......@@ -202,7 +202,7 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
pageResult.setTotalPage(PageUtil.totalPage(Convert.toInt(pageResult.getTotalRows()), Convert.toInt(pageResult.getPageSize())));
return pageResult;
}
public ResponseResult createBpmn(ProcessVO processVO) throws JsonProcessingException {
public Boolean createBpmn(ProcessVO processVO) throws JsonProcessingException {
//流程定义
ObjectMapper objectMapper = new ObjectMapper();
JsonNode processJsonNode = objectMapper.readTree(processVO.getProcessJson());
......@@ -224,11 +224,46 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
BpmnModel bpmnModel = toBpmn(processJsonNode,formJsonNode,formName,templateId);
Deployment deploy = repositoryService.createDeployment()
.addBpmnModel(processVO.getFormName()+".bpmn20.xml", bpmnModel)
.name(processVO.getFormName())
.addBpmnModel(templateId+".bpmn20.xml", bpmnModel)
.name(templateId)
.category(templateId)
.deploy();
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,deploy.getId());
return true;
}
/**
* @Author: Zhaojw
* @Description: 删除流程实例
* @DateTime: 2023/7/22 10:16
* @Params:
* @Return
*/
public Boolean deleteProcessInstance(ProcessDTO processInstance)
{
List<ProcessInstance> processInstances = runtimeService.createProcessInstanceQuery()
.processDefinitionId(processInstance.getProcessDefinitionId())
.list();
// 使用增强型 for 循环遍历列表
for (ProcessInstance processInstancesItem : processInstances) {
// 在这里对每个 ProcessInstance 进行处理
long count = runtimeService.createProcessInstanceQuery().processInstanceId(processInstancesItem.getId()).count();
if (count > 0) {
DeleteFlowableProcessInstanceCmd cmd = new DeleteFlowableProcessInstanceCmd(processInstancesItem.getId(), "删除流程实例", true);
managementService.executeCommand(cmd);
processTemplateService.removeById(processInstance.getTemplateId());
} else {
historyService.deleteHistoricProcessInstance(processInstancesItem.getId());
}
}
return true;
}
......@@ -258,14 +293,11 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
*/
@Transactional
public ResponseResult updateForm(UpdateProcessVO process) throws JsonProcessingException {
public Boolean updateForm(UpdateProcessVO process) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
JsonNode processJsonNode = objectMapper.readTree(process.getProcessJson());
JsonNode formJsonNode = objectMapper.readTree(process.getFormJson());
String formName="";
String templateId = idWorker.nextId()+"";
ProcessTemplates processTemplates = processTemplateService.getById(process.getTemplateId());
if (ObjectUtil.isNotEmpty(process.getFormName()))
{
......@@ -279,12 +311,15 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
processTemplates.setProcessJson(process.getProcessJson().toString());
processTemplates.setUpdated(new Date());
processTemplateService.updateById(processTemplates);//更新表单明细表信息
BpmnModel bpmnModel = toBpmn(processJsonNode,formJsonNode,formName,templateId);
BpmnModel bpmnModel = toBpmn(processJsonNode,formJsonNode,formName,process.getTemplateId());
Deployment deploy = repositoryService.createDeployment()
.addBpmnModel(process.getFormName()+".bpmn20.xml", bpmnModel)
.name(process.getFormName())
.addBpmnModel(process.getTemplateId()+".bpmn20.xml", bpmnModel)
.name(process.getTemplateId())
.category(process.getTemplateId())
.deploy();
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,"");
return true;
}
......
......@@ -53,7 +53,6 @@ public class BpmnConvert {
bpmnModel.addProcess(process);
// 二.开始结束节点
// 二.开始结束节点
StartEvent startEvent = new StartEvent();// 新建开始节点
startEvent.setId("_start");
startEvent.setInitiator("initiator");
......
......@@ -20,4 +20,22 @@
where sr.role_id in ${roleId} and po.org_id in ${orgId}
GROUP BY su.user_id,su.real_name
</select>
<select id="QueryUserParentOrg" resultMap="UserListDTO">
SELECT
CASE
WHEN userorg2.org_id = -1 THEN mainUser.user_id
ELSE user2.user_id
END AS user_id,
user2.real_name
FROM (
SELECT org.org_id, user.user_id, user.real_name, org.org_parent_id, org.org_name
FROM `sys_user` AS user
JOIN sys_user_org AS userorg ON userorg.user_id = user.user_id
JOIN pub_org AS org ON org.org_id = userorg.org_id
WHERE user.user_id = ${userId}
) AS mainUser
JOIN sys_user_org AS userorg2 ON mainUser.org_parent_id = userorg2.org_id
JOIN sys_user AS user2 ON user2.user_id = userorg2.user_id;
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论