diff --git a/yanzhu-common/src/main/java/com/yanzhu/common/enums/ShiFouEnum.java b/yanzhu-common/src/main/java/com/yanzhu/common/enums/ShiFouEnum.java new file mode 100644 index 0000000..2b1b2c5 --- /dev/null +++ b/yanzhu-common/src/main/java/com/yanzhu/common/enums/ShiFouEnum.java @@ -0,0 +1,38 @@ +package com.yanzhu.common.enums; + +import com.yanzhu.common.core.text.Convert; + +/** + * 是否状态 + * + * @author JiangYuQi + */ +public enum ShiFouEnum { + + FOU("0", "否"), SHI("1", "是"); + + private final String code; + private final String info; + + ShiFouEnum(String code, String info) + { + this.code = code; + this.info = info; + } + + public String getCode() + { + return code; + } + + public String getInfo() + { + return info; + } + + public Long getLongCode() + { + return Convert.toLong(code); + } + +} diff --git a/yanzhu-flowable/pom.xml b/yanzhu-flowable/pom.xml index abdb867..196f263 100644 --- a/yanzhu-flowable/pom.xml +++ b/yanzhu-flowable/pom.xml @@ -20,6 +20,10 @@ com.yanzhu yanzhu-system + + com.yanzhu + yanzhu-mapper + com.yanzhu yanzhu-common diff --git a/yanzhu-flowable/src/main/java/com/yanzhu/flowable/controller/FlowDefinitionController.java b/yanzhu-flowable/src/main/java/com/yanzhu/flowable/controller/FlowDefinitionController.java index f81d100..2c974b0 100644 --- a/yanzhu-flowable/src/main/java/com/yanzhu/flowable/controller/FlowDefinitionController.java +++ b/yanzhu-flowable/src/main/java/com/yanzhu/flowable/controller/FlowDefinitionController.java @@ -6,6 +6,7 @@ import com.yanzhu.common.core.domain.entity.SysRole; import com.yanzhu.common.core.domain.entity.SysUser; import com.yanzhu.common.core.text.Convert; import com.yanzhu.flowable.domain.FlowSaveXmlVo; +import com.yanzhu.project.domain.ProProjectApply; import com.yanzhu.system.domain.flowable.FlowQueryVo; import com.yanzhu.flowable.service.IFlowDefinitionService; import com.yanzhu.system.domain.FlowProcDefDto; @@ -160,9 +161,8 @@ public class FlowDefinitionController extends BaseController { @ApiOperation(value = "发起流程") @PostMapping("/start/{procDefId}") public AjaxResult start(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId, - @ApiParam(value = "变量集合,json对象") @RequestBody Map variables) { - return flowDefinitionService.startProcessInstanceById(procDefId, variables); - + @ApiParam(value = "申请表单") @RequestBody ProProjectApply proProjectApply) { + return flowDefinitionService.startProcessInstanceById(procDefId, proProjectApply); } @ApiOperation(value = "激活或挂起流程定义") diff --git a/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/IFlowDefinitionService.java b/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/IFlowDefinitionService.java index bdf0a99..9edf63c 100644 --- a/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/IFlowDefinitionService.java +++ b/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/IFlowDefinitionService.java @@ -2,6 +2,7 @@ package com.yanzhu.flowable.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yanzhu.common.core.domain.AjaxResult; +import com.yanzhu.project.domain.ProProjectApply; import com.yanzhu.system.domain.flowable.FlowQueryVo; import com.yanzhu.system.domain.FlowProcDefDto; @@ -45,12 +46,11 @@ public interface IFlowDefinitionService { /** * 根据流程定义ID启动流程实例 * - * @param procDefId - * @param variables + * @param procDefId 流程ID + * @param proProjectApply 申请表单 * @return */ - - AjaxResult startProcessInstanceById(String procDefId, Map variables); + AjaxResult startProcessInstanceById(String procDefId, ProProjectApply proProjectApply); /** diff --git a/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/impl/FlowDefinitionServiceImpl.java b/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/impl/FlowDefinitionServiceImpl.java index 784bbe4..a98bacd 100644 --- a/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/impl/FlowDefinitionServiceImpl.java +++ b/yanzhu-flowable/src/main/java/com/yanzhu/flowable/service/impl/FlowDefinitionServiceImpl.java @@ -3,19 +3,21 @@ package com.yanzhu.flowable.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.yanzhu.common.core.text.Convert; -import com.yanzhu.common.utils.StringUtils; -import com.yanzhu.flowable.common.constant.ProcessConstants; import com.yanzhu.common.core.domain.AjaxResult; import com.yanzhu.common.core.domain.entity.SysUser; +import com.yanzhu.common.core.text.Convert; import com.yanzhu.common.utils.SecurityUtils; -import com.yanzhu.system.domain.flowable.FlowDeptVo; -import com.yanzhu.system.domain.flowable.FlowQueryVo; -import com.yanzhu.system.domain.FlowProcDefDto; +import com.yanzhu.common.utils.StringUtils; +import com.yanzhu.flowable.common.constant.ProcessConstants; +import com.yanzhu.flowable.common.enums.FlowComment; import com.yanzhu.flowable.factory.FlowServiceFactory; import com.yanzhu.flowable.service.IFlowDefinitionService; import com.yanzhu.flowable.service.ISysDeployFormService; -import com.yanzhu.system.domain.SysForm; +import com.yanzhu.project.domain.ProProjectApply; +import com.yanzhu.project.service.IProProjectApplyService; +import com.yanzhu.system.domain.FlowProcDefDto; +import com.yanzhu.system.domain.flowable.FlowDeptVo; +import com.yanzhu.system.domain.flowable.FlowQueryVo; import com.yanzhu.system.mapper.FlowDeployMapper; import com.yanzhu.system.service.ISysDeptService; import com.yanzhu.system.service.ISysPostService; @@ -27,7 +29,10 @@ import org.flowable.bpmn.model.BpmnModel; import org.flowable.engine.repository.Deployment; import org.flowable.engine.repository.ProcessDefinition; import org.flowable.engine.repository.ProcessDefinitionQuery; +import org.flowable.engine.runtime.ProcessInstance; import org.flowable.image.impl.DefaultProcessDiagramGenerator; +import org.flowable.task.api.Task; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -62,6 +67,9 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl @Resource private FlowDeployMapper flowDeployMapper; + @Autowired + private IProProjectApplyService proProjectApplyService; + private static final String BPMN_FILE_SUFFIX = ".bpmn"; @Override @@ -185,42 +193,54 @@ public class FlowDefinitionServiceImpl extends FlowServiceFactory implements IFl * 根据流程定义ID启动流程实例 * * @param procDefId 流程模板ID - * @param variables 流程变量 + * @param proProjectApply 流程表单 * @return */ @Override - public AjaxResult startProcessInstanceById(String procDefId, Map variables) { + public AjaxResult startProcessInstanceById(String procDefId, ProProjectApply proProjectApply) { try { - ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(procDefId) - .latestVersion().singleResult(); - if (Objects.nonNull(processDefinition) && processDefinition.isSuspended()) { - return AjaxResult.error("流程已被挂起,请先激活流程"); + int res; + if(proProjectApply.getId()!=null){ + res = proProjectApplyService.updateProProjectApply(proProjectApply); + }else{ + res = proProjectApplyService.insertProProjectApply(proProjectApply); + } + if(res>0){ + Map variables = new HashMap<>(); + ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(procDefId) + .latestVersion().singleResult(); + if (Objects.nonNull(processDefinition) && processDefinition.isSuspended()) { + return AjaxResult.error("流程已被挂起,请联系管理员激活流程"); + } + SysUser sysUser = SecurityUtils.getLoginUser().getUser(); + String userId = Convert.toStr(sysUser.getUserId()); + // 设置流程发起人Id到流程中 + identityService.setAuthenticatedUserId(userId); + variables.put(ProcessConstants.PROCESS_INITIATOR, userId); + variables.put("businessKey", proProjectApply.getId()); + ProcessInstance processInstance; + if(variables.get("businessKey")!=null){ + processInstance = runtimeService.startProcessInstanceById(procDefId, Convert.toStr(variables.get("businessKey")),variables); + }else{ + processInstance = runtimeService.startProcessInstanceById(procDefId, variables); + } + // 给第一步申请人节点设置任务执行人和意见 + Task task = taskService.createTaskQuery().processInstanceId(processInstance.getProcessInstanceId()).singleResult(); + if (Objects.nonNull(task)) { + taskService.addComment(task.getId(), processInstance.getProcessInstanceId(), FlowComment.NORMAL.getType(), sysUser.getNickName() + "发起流程申请"); + taskService.setAssignee(task.getId(), Convert.toStr(userId)); + taskService.complete(task.getId(), variables); + } + return AjaxResult.success("流程启动成功"); + }else{ + return AjaxResult.error("流程表单保存失败"); } - // 设置流程发起人Id到流程中 - SysUser sysUser = SecurityUtils.getLoginUser().getUser(); - identityService.setAuthenticatedUserId(sysUser.getUserId().toString()); - variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId()); - runtimeService.startProcessInstanceById(procDefId, variables); - // 流程发起时 跳过发起人节点 -// SysUser sysUser = SecurityUtils.getLoginUser().getUser(); -// identityService.setAuthenticatedUserId(sysUser.getUserId().toString()); -// variables.put(ProcessConstants.PROCESS_INITIATOR, ""); -// ProcessInstance processInstance = runtimeService.startProcessInstanceById(procDefId, variables); -// // 给第一步申请人节点设置任务执行人和意见 -// Task task = taskService.createTaskQuery().processInstanceId(processInstance.getProcessInstanceId()).singleResult(); -// if (Objects.nonNull(task)) { -// taskService.addComment(task.getId(), processInstance.getProcessInstanceId(), FlowComment.NORMAL.getType(), sysUser.getNickName() + "发起流程申请"); -//// taskService.setAssignee(task.getId(), sysUser.getUserId().toString()); -// taskService.complete(task.getId(), variables); -// } - return AjaxResult.success("流程启动成功"); } catch (Exception e) { e.printStackTrace(); return AjaxResult.error("流程启动错误"); } } - /** * 激活或挂起流程定义 * diff --git a/yanzhu-manage/src/main/java/com/yanzhu/base/controller/BaseAssetsTypeController.java b/yanzhu-manage/src/main/java/com/yanzhu/base/controller/BaseAssetsTypeController.java index 252cfa1..0a5ec78 100644 --- a/yanzhu-manage/src/main/java/com/yanzhu/base/controller/BaseAssetsTypeController.java +++ b/yanzhu-manage/src/main/java/com/yanzhu/base/controller/BaseAssetsTypeController.java @@ -7,7 +7,6 @@ import javax.servlet.http.HttpServletResponse; import com.yanzhu.common.constant.Constants; import com.yanzhu.common.core.domain.entity.SysUser; import com.yanzhu.common.core.redis.RedisCache; -import org.apache.commons.collections4.CollectionUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; diff --git a/yanzhu-mapper/src/main/java/com/yanzhu/project/service/impl/ProProjectApplyServiceImpl.java b/yanzhu-mapper/src/main/java/com/yanzhu/project/service/impl/ProProjectApplyServiceImpl.java index f506a3e..b4e6072 100644 --- a/yanzhu-mapper/src/main/java/com/yanzhu/project/service/impl/ProProjectApplyServiceImpl.java +++ b/yanzhu-mapper/src/main/java/com/yanzhu/project/service/impl/ProProjectApplyServiceImpl.java @@ -1,7 +1,11 @@ package com.yanzhu.project.service.impl; import java.util.List; + +import com.yanzhu.common.core.domain.entity.SysUser; +import com.yanzhu.common.enums.ShiFouEnum; import com.yanzhu.common.utils.DateUtils; +import com.yanzhu.common.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -58,6 +62,12 @@ public class ProProjectApplyServiceImpl implements IProProjectApplyService @Override public int insertProProjectApply(ProProjectApply proProjectApply) { + SysUser sysUser = SecurityUtils.getLoginUser().getUser(); + proProjectApply.setDeptId(sysUser.getDeptId()); + proProjectApply.setParProjName(sysUser.getParDeptName()); + proProjectApply.setApplyUser(sysUser.getUserId()); + proProjectApply.setIsDel(ShiFouEnum.FOU.getCode()); + proProjectApply.setCreateBy(sysUser.getNickName()); proProjectApply.setCreateTime(DateUtils.getNowDate()); int rows = proProjectApplyMapper.insertProProjectApply(proProjectApply); insertProProjectApplyDetail(proProjectApply); @@ -74,6 +84,8 @@ public class ProProjectApplyServiceImpl implements IProProjectApplyService @Override public int updateProProjectApply(ProProjectApply proProjectApply) { + SysUser sysUser = SecurityUtils.getLoginUser().getUser(); + proProjectApply.setUpdateBy(sysUser.getNickName()); proProjectApply.setUpdateTime(DateUtils.getNowDate()); proProjectApplyMapper.deleteProProjectApplyDetailByApplyId(proProjectApply.getId()); insertProProjectApplyDetail(proProjectApply); diff --git a/yanzhu-mapper/src/main/resources/mapper/base/BaseAssetsTypeMapper.xml b/yanzhu-mapper/src/main/resources/mapper/base/BaseAssetsTypeMapper.xml index 9ccb3af..a4a6b6d 100644 --- a/yanzhu-mapper/src/main/resources/mapper/base/BaseAssetsTypeMapper.xml +++ b/yanzhu-mapper/src/main/resources/mapper/base/BaseAssetsTypeMapper.xml @@ -30,10 +30,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and parent_id is null - - and parent_id is null - - + and parent_id = #{parentId} diff --git a/yanzhu-ui/src/api/base/assetsType.js b/yanzhu-ui/src/api/base/assetsType.js index 180d31f..43edd07 100644 --- a/yanzhu-ui/src/api/base/assetsType.js +++ b/yanzhu-ui/src/api/base/assetsType.js @@ -42,3 +42,11 @@ export function delAssetsType(id) { method: 'delete' }) } + +// 根据分类查询物资 +export function findAllByCategory(category) { + return request({ + url: '/base/assetsType/findAllByCategory/' + category, + method: 'get' + }) +} diff --git a/yanzhu-ui/src/views/flowable/task/myProcess/initTaskDrawer.vue b/yanzhu-ui/src/views/flowable/task/myProcess/initTaskDrawer.vue index 4cb8a63..ad586c1 100644 --- a/yanzhu-ui/src/views/flowable/task/myProcess/initTaskDrawer.vue +++ b/yanzhu-ui/src/views/flowable/task/myProcess/initTaskDrawer.vue @@ -96,44 +96,48 @@ > - + - + - +