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 @@
>
-
+
-
-
+
+
+
-
+
+ >
@@ -157,7 +161,7 @@
/>
-
+
{
- if (response.code == 200 && response.data) {
+ if (response.code == 200) {
this.projectOptions = response.data;
- this.form.projId = response.data[0].id;
- this.form.projName = response.data[0].projName;
+ if(response.data.length>0){
+ this.form.projId = response.data[0].id;
+ this.form.projName = response.data[0].projName;
+ }
+ }
+ });
+ },
+ initCategoryAssetsType(val) {
+ // 获取项目列表的接口
+ findAllByCategory(val).then((response) => {
+ if (response.code == 200 && response.data) {
+ this.AssetsTypeOptions = response.data;
}
});
},
@@ -280,9 +289,10 @@ export default {
this.options = options;
this.initMyProject();
//物资设备类需要输入规格
- if(options.category==1){
- this.showAssetsVersion=true;
+ if (options.category == 1) {
+ this.showAssetsVersion = true;
}
+ this.initCategoryAssetsType(options.category);
this.title = options.name;
this.form.parProjName = store.getters.parDeptName;
this.nickName = store.getters.name;
@@ -309,8 +319,27 @@ export default {
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
+ for(let i=0;i {
+ definitionStart(this.options.id, this.form).then((res) => {
this.$modal.msgSuccess(res.msg);
this.loading = false;
//关闭并刷新列表
@@ -360,6 +389,28 @@ export default {
handleProProjectApplyDetailSelectionChange(selection) {
this.checkedProProjectApplyDetail = selection.map((item) => item.index);
},
+ selectAssetsId(val) {
+ for (let i = 0; i < this.AssetsTypeOptions.length; i++) {
+ for (
+ let x = 0;
+ x < this.AssetsTypeOptions[i].childrenAssetsTypeList.length;
+ x++
+ ) {
+ if (this.AssetsTypeOptions[i].childrenAssetsTypeList[x].id == val) {
+ this.unitOptions = this.AssetsTypeOptions[i].childrenAssetsTypeList[x].unit;
+ if (this.unitOptions.length > 0) {
+ }
+ }
+ }
+ }
+ this.AssetsTypeOptions.forEach((item) => {
+ item.userinfoList.forEach((u) => {
+ if (u.phonenumber == val) {
+ this.form.superviseUserName = u.nickName + " [" + u.jobTypeName + "] ";
+ }
+ });
+ });
+ },
},
};