Переглянути джерело

修改流程为,启动时就传入formId

余思翰 1 рік тому
джерело
коміт
3553247f1f

+ 1
- 1
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcProjectController.java Переглянути файл

107
     {
107
     {
108
         JSONObject formDataJson = JSONObject.parse(formData);
108
         JSONObject formDataJson = JSONObject.parse(formData);
109
         CmcProject cmcProject = new CmcProject();
109
         CmcProject cmcProject = new CmcProject();
110
-        cmcProject.setProjectId(formDataJson.getString("formId"));
110
+        cmcProject.setProjectId(formDataJson.getString("projectId"));
111
         cmcProject.setProjectName(formDataJson.getString("projectName"));
111
         cmcProject.setProjectName(formDataJson.getString("projectName"));
112
         cmcProject.setProjectNumber(formDataJson.getString("projectNumber"));
112
         cmcProject.setProjectNumber(formDataJson.getString("projectNumber"));
113
         cmcProject.setProjectLeader(formDataJson.getLong("projectLeader"));
113
         cmcProject.setProjectLeader(formDataJson.getLong("projectLeader"));

+ 4
- 4
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowDefinitionServiceImpl.java Переглянути файл

1
 package com.ruoyi.flowable.service.impl;
1
 package com.ruoyi.flowable.service.impl;
2
 
2
 
3
+import com.alibaba.fastjson2.JSONObject;
3
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4
 import com.github.pagehelper.PageHelper;
5
 import com.github.pagehelper.PageHelper;
5
 import com.github.pagehelper.PageInfo;
6
 import com.github.pagehelper.PageInfo;
6
 import com.ruoyi.flowable.common.constant.ProcessConstants;
7
 import com.ruoyi.flowable.common.constant.ProcessConstants;
7
 import com.ruoyi.common.core.domain.AjaxResult;
8
 import com.ruoyi.common.core.domain.AjaxResult;
8
 import com.ruoyi.common.core.domain.entity.SysUser;
9
 import com.ruoyi.common.core.domain.entity.SysUser;
9
-import com.ruoyi.flowable.common.enums.FlowComment;
10
 import com.ruoyi.common.utils.SecurityUtils;
10
 import com.ruoyi.common.utils.SecurityUtils;
11
 import com.ruoyi.system.domain.FlowProcDefDto;
11
 import com.ruoyi.system.domain.FlowProcDefDto;
12
 import com.ruoyi.flowable.factory.FlowServiceFactory;
12
 import com.ruoyi.flowable.factory.FlowServiceFactory;
19
 import com.ruoyi.system.service.ISysUserService;
19
 import com.ruoyi.system.service.ISysUserService;
20
 import lombok.extern.slf4j.Slf4j;
20
 import lombok.extern.slf4j.Slf4j;
21
 import org.apache.commons.io.IOUtils;
21
 import org.apache.commons.io.IOUtils;
22
-import org.apache.commons.lang3.StringUtils;
23
 import org.flowable.bpmn.model.BpmnModel;
22
 import org.flowable.bpmn.model.BpmnModel;
24
 import org.flowable.engine.repository.Deployment;
23
 import org.flowable.engine.repository.Deployment;
25
 import org.flowable.engine.repository.ProcessDefinition;
24
 import org.flowable.engine.repository.ProcessDefinition;
26
 import org.flowable.engine.repository.ProcessDefinitionQuery;
25
 import org.flowable.engine.repository.ProcessDefinitionQuery;
27
 import org.flowable.engine.runtime.ProcessInstance;
26
 import org.flowable.engine.runtime.ProcessInstance;
28
 import org.flowable.image.impl.DefaultProcessDiagramGenerator;
27
 import org.flowable.image.impl.DefaultProcessDiagramGenerator;
29
-import org.flowable.task.api.Task;
30
-import org.springframework.beans.BeanUtils;
31
 import org.springframework.stereotype.Service;
28
 import org.springframework.stereotype.Service;
32
 
29
 
33
 import javax.annotation.Resource;
30
 import javax.annotation.Resource;
199
             SysUser sysUser = SecurityUtils.getLoginUser().getUser();
196
             SysUser sysUser = SecurityUtils.getLoginUser().getUser();
200
             identityService.setAuthenticatedUserId(sysUser.getUserId().toString());
197
             identityService.setAuthenticatedUserId(sysUser.getUserId().toString());
201
             variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId());
198
             variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId());
199
+            Map<String, Object> map = variables;
200
+            JSONObject jsonObject = JSONObject.parse(JSONObject.toJSONString(map));
201
+            variables.put("formId", jsonObject.getJSONObject("variables").getString("formId"));
202
             ProcessInstance startInstance = runtimeService.startProcessInstanceById(procDefId, variables);
202
             ProcessInstance startInstance = runtimeService.startProcessInstanceById(procDefId, variables);
203
             // 流程发起时 跳过发起人节点
203
             // 流程发起时 跳过发起人节点
204
 //            SysUser sysUser = SecurityUtils.getLoginUser().getUser();
204
 //            SysUser sysUser = SecurityUtils.getLoginUser().getUser();

+ 2
- 2
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcProjectWorkMapper.xml Переглянути файл

47
             <if test="unit != null">unit,</if>
47
             <if test="unit != null">unit,</if>
48
             <if test="workload != null">workload,</if>
48
             <if test="workload != null">workload,</if>
49
             <if test="deadline != null">deadline,</if>
49
             <if test="deadline != null">deadline,</if>
50
-            <if test="finishTime != null">remark,</if>
51
-            <if test="remark != null">finish_time,</if>
50
+            <if test="finishTime != null">finish_time,</if>
51
+            <if test="remark != null">remark,</if>
52
          </trim>
52
          </trim>
53
         <trim prefix="values (" suffix=")" suffixOverrides=",">
53
         <trim prefix="values (" suffix=")" suffixOverrides=",">
54
             <if test="workId != null">#{workId},</if>
54
             <if test="workId != null">#{workId},</if>

+ 24
- 9
oa-ui/src/views/flowable/form/projectProcess/addproject.vue Переглянути файл

1
 <!--
1
 <!--
2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-02-27 14:49:15
3
  * @Date: 2024-02-27 14:49:15
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-04-03 17:05:19
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-04-07 13:55:49
6
 -->
6
 -->
7
 
7
 
8
 <template>
8
 <template>
38
       <el-form-item label="联系电话:" prop="telephone">
38
       <el-form-item label="联系电话:" prop="telephone">
39
         <el-input v-model="addForm.telephone"></el-input>
39
         <el-input v-model="addForm.telephone"></el-input>
40
       </el-form-item>
40
       </el-form-item>
41
-      <el-form-item label="项目概况:" prop="projectRegistrant">
41
+      <el-form-item label="项目概况:" prop="workList">
42
         <table border="1">
42
         <table border="1">
43
           <tr>
43
           <tr>
44
             <td style="width:250px;">工作内容</td>
44
             <td style="width:250px;">工作内容</td>
77
 
77
 
78
         <el-button icon="el-icon-plus" size="mini" @click="addWorkList"></el-button>
78
         <el-button icon="el-icon-plus" size="mini" @click="addWorkList"></el-button>
79
       </el-form-item>
79
       </el-form-item>
80
-      <el-form-item label="项目登记人:" prop="projectRegistrant">
81
-        <el-input v-model="addForm.projectRegistrant"></el-input>
80
+      <el-form-item label="项目登记人:" prop="projectRegistrantName">
81
+        <el-tag>{{ addForm.projectRegistrantName }}</el-tag>
82
+        <!-- <el-input v-model="addForm.projectRegistrant"></el-input> -->
82
       </el-form-item>
83
       </el-form-item>
83
-      <el-form-item label="备注:" prop="projectRegistrant">
84
+      <el-form-item label="备注:" prop="remark">
84
         <el-input v-model="addForm.remark" type="textarea" rows="3"></el-input>
85
         <el-input v-model="addForm.remark" type="textarea" rows="3"></el-input>
85
       </el-form-item>
86
       </el-form-item>
86
 
87
 
95
 </template>
96
 </template>
96
 
97
 
97
 <script>
98
 <script>
98
-import { listProject, addProject, updateProject, delProject } from "@/api/oa/project/project";
99
+import { mapGetters } from "vuex";
100
+import { listProject, addProject, updateProject, delProject,submitProject } from "@/api/oa/project/project";
99
 import { getUser } from '@/api/system/user'
101
 import { getUser } from '@/api/system/user'
100
 import { getUsersDeptLeaderByDept } from '@/api/system/post'
102
 import { getUsersDeptLeaderByDept } from '@/api/system/post'
101
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
103
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
110
       required: true
112
       required: true
111
     }
113
     }
112
   },
114
   },
115
+  computed: {
116
+    ...mapGetters(["userId","name"]),
117
+  },
113
   data() {
118
   data() {
114
     return {
119
     return {
115
       // 查询参数
120
       // 查询参数
125
       total: 0,
130
       total: 0,
126
       loading: true,
131
       loading: true,
127
       modifyOpen: false,
132
       modifyOpen: false,
128
-      addForm: {},
133
+      addForm: {
134
+        projectRegistrant:'',
135
+        projectRegistrantName:''
136
+      },
129
       rules: {
137
       rules: {
130
         projectNumber: [{ required: true, message: '请输入项目编号', trigger: 'blur' }],
138
         projectNumber: [{ required: true, message: '请输入项目编号', trigger: 'blur' }],
131
         projectName: [{ required: true, message: '请输入项目名称', trigger: 'blur' }]
139
         projectName: [{ required: true, message: '请输入项目名称', trigger: 'blur' }]
144
     }
152
     }
145
   },
153
   },
146
   created() {
154
   created() {
155
+    this.addForm.projectRegistrant = this.userId
156
+    this.addForm.projectRegistrantName = this.name
147
     this.getList();
157
     this.getList();
158
+  },
159
+  mounted() {
160
+    
148
   },
161
   },
149
   methods: {
162
   methods: {
150
     // 查询项目列表
163
     // 查询项目列表
167
     confirmAddForm() {
180
     confirmAddForm() {
168
       this.addForm.projectId = this.taskForm.formId;
181
       this.addForm.projectId = this.taskForm.formId;
169
       this.addForm.workList = this.workList;
182
       this.addForm.workList = this.workList;
170
-      addProject(this.addForm).then(response => {
183
+      let forms = new FormData();
184
+      forms.append('form',JSON.stringify(this.addForm));
185
+      submitProject(forms).then(response => {
171
         this.$modal.msgSuccess("新增成功");
186
         this.$modal.msgSuccess("新增成功");
172
         this.getList();
187
         this.getList();
173
       });
188
       });

+ 3
- 7
oa-ui/src/views/flowable/form/projectProcess/arrangeProject.vue Переглянути файл

1
 <!--
1
 <!--
2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-19 09:24:06
3
  * @Date: 2024-03-19 09:24:06
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-04-03 16:53:59
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-04-07 11:02:16
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container">
8
   <div class="app-container">
9
     <h2 style="text-align: center;">项目安排</h2>
9
     <h2 style="text-align: center;">项目安排</h2>
10
-    <el-form :model="form" :rules="rules" label-width="100px" :disable="disable">
10
+    <el-form :model="form" :rules="rules" label-width="100px">
11
       <el-form-item label="承担部门:" prop="undertakingDept">
11
       <el-form-item label="承担部门:" prop="undertakingDept">
12
         <el-select v-model="form.deptId" multiple clearable style="width:500px" @change="getDeptLeader">
12
         <el-select v-model="form.deptId" multiple clearable style="width:500px" @change="getDeptLeader">
13
           <el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId"
13
           <el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId"
73
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
73
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
74
 export default {
74
 export default {
75
   props: {
75
   props: {
76
-    disable: {
77
-      type: Boolean,
78
-      require: true
79
-    },
80
     taskForm: {
76
     taskForm: {
81
       type: Object,
77
       type: Object,
82
       required: true
78
       required: true

+ 17
- 15
oa-ui/src/views/flowable/form/projectProcess/index.vue Переглянути файл

1
 <!--
1
 <!--
2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-02-27 14:49:15
3
  * @Date: 2024-02-27 14:49:15
4
- * @LastEditors: wrh
5
- * @LastEditTime: 2024-04-02 14:56:03
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-04-07 11:10:57
6
 -->
6
 -->
7
 
7
 
8
 <template>
8
 <template>
9
   <div class="project-wrapper">
9
   <div class="project-wrapper">
10
 
10
 
11
     <el-tabs tabPosition="left" type="card" class="tabs-border" v-model="activeName">
11
     <el-tabs tabPosition="left" type="card" class="tabs-border" v-model="activeName">
12
-      <el-tab-pane label="项目登记">
13
-        <addproject :taskForm = "taskForm" :disable="taskName != '项目登记'"></addproject>
12
+      <el-tab-pane label="项目登记" name="项目登记" :disabled="taskName != '项目登记'">
13
+        <addproject :taskForm="taskForm"></addproject>
14
       </el-tab-pane>
14
       </el-tab-pane>
15
-      <el-tab-pane label="项目安排">
16
-        <arrangeProject :taskForm = "taskForm" :disable="taskName != '项目安排'"></arrangeProject>
15
+      <el-tab-pane label="项目安排" name="项目安排" :disabled="taskName != '项目安排'">
16
+        <!-- <arrangeProject :taskForm ="taskForm"></arrangeProject> -->
17
       </el-tab-pane>
17
       </el-tab-pane>
18
-      <el-tab-pane label="技术交底"></el-tab-pane>
19
-      <el-tab-pane label="安全交底"></el-tab-pane>
20
-      <el-tab-pane label="经营审核"></el-tab-pane>
21
-      <el-tab-pane label="分管审核"></el-tab-pane>
22
-      <el-tab-pane label="生产确认"></el-tab-pane>
23
-      <el-tab-pane label="项目生产"></el-tab-pane>
24
-      <el-tab-pane label="质量检查"></el-tab-pane>
25
-      <el-tab-pane label="成果归档"></el-tab-pane>
18
+      <el-tab-pane label="技术交底" name="技术交底" :disabled="taskName != '技术交底'"></el-tab-pane>
19
+      <el-tab-pane label="安全交底" name="安全交底" :disabled="taskName != '安全交底'"></el-tab-pane>
20
+      <el-tab-pane label="经营审核" name="经营审核" :disabled="taskName != '经营审核'"></el-tab-pane>
21
+      <el-tab-pane label="分管审核" name="分管审核" :disabled="taskName != '分管审核'"></el-tab-pane>
22
+      <el-tab-pane label="生产确认" name="生产确认" :disabled="taskName != '生产确认'"></el-tab-pane>
23
+      <el-tab-pane label="项目生产" name="项目生产" :disabled="taskName != '项目生产'"></el-tab-pane>
24
+      <el-tab-pane label="质量检查" name="质量检查" :disabled="taskName != '质量检查'"></el-tab-pane>
25
+      <el-tab-pane label="成果归档" name="成果归档" :disabled="taskName != '成果归档'"></el-tab-pane>
26
     </el-tabs>
26
     </el-tabs>
27
 
27
 
28
 
28
 
50
   },
50
   },
51
   data() {
51
   data() {
52
     return {
52
     return {
53
-      activeName: taskName,
53
+      activeName:'项目登记',
54
       // 查询参数
54
       // 查询参数
55
       queryParams: {
55
       queryParams: {
56
         pageNum: 1,
56
         pageNum: 1,
89
     }
89
     }
90
   },
90
   },
91
   created() {
91
   created() {
92
+    // this.activeName = this.taskName;
92
     this.getList();
93
     this.getList();
93
     this.getDeptList();
94
     this.getDeptList();
95
+    // console.log(this.activeName);
94
   },
96
   },
95
   methods: {
97
   methods: {
96
     // 查询项目列表
98
     // 查询项目列表

+ 3
- 2
oa-ui/src/views/flowable/task/myProcess/index.vue Переглянути файл

269
     /**  发起流程申请 */
269
     /**  发起流程申请 */
270
     handleStartProcess(row) {
270
     handleStartProcess(row) {
271
       // if (row.category == "assess" || row.category == "car" || ) {
271
       // if (row.category == "assess" || row.category == "car" || ) {
272
-      getNextFlowNodeByStart({ deploymentId: row.deploymentId, variables: {} }).then(res => {
272
+        let formId = new Snowflake(1n, 1n, 0n).nextId().toString();
273
+      getNextFlowNodeByStart({ deploymentId: row.deploymentId, variables: {formId:formId} }).then(res => {
273
         let data = res.data;
274
         let data = res.data;
274
         if (data.dataType === 'dynamic') {
275
         if (data.dataType === 'dynamic') {
275
           if (data.type === 'assignee') { // 指定人员
276
           if (data.type === 'assignee') { // 指定人员
294
           formData.disabled = true;
295
           formData.disabled = true;
295
           formData.formBtns = false;
296
           formData.formBtns = false;
296
           debugger
297
           debugger
297
-          formData.formId = new Snowflake(1n, 1n, 0n).nextId().toString();
298
+          formData.formId = formId
298
           if (row.id) {
299
           if (row.id) {
299
             variables.variables = formData;
300
             variables.variables = formData;
300
             // 启动流程并将表单数据加入流程变量
301
             // 启动流程并将表单数据加入流程变量

+ 4
- 2
oa-ui/src/views/oa/budget/components/budgetForm.vue Переглянути файл

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-04-03 16:28:09
3
  * @Date: 2024-04-03 16:28:09
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-03 17:17:48
5
+ * @LastEditTime: 2024-04-07 09:48:26
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div>
8
   <div>
108
       </tr>
108
       </tr>
109
       <tr>
109
       <tr>
110
         <td colspan="6" class="head">总成本=(固定成本+直接成本)*120%</td>
110
         <td colspan="6" class="head">总成本=(固定成本+直接成本)*120%</td>
111
-        <td>{{ totalBudget }}</td>
111
+        <td>{{ budgetForm.totalBudget }}</td>
112
       </tr>
112
       </tr>
113
       <!-- <tr>
113
       <!-- <tr>
114
         <td class="head">编制人</td>
114
         <td class="head">编制人</td>
160
         console.log(res);
160
         console.log(res);
161
         this.budgetForm = res.rows[0];
161
         this.budgetForm = res.rows[0];
162
       });
162
       });
163
+      list
163
     },
164
     },
165
+  
164
   },
166
   },
165
 };
167
 };
166
 </script>
168
 </script>

+ 1
- 7
oa-ui/src/views/oa/budget/index.vue Переглянути файл

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-21 17:49:15
3
  * @Date: 2024-03-21 17:49:15
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-03 14:51:37
6
--->
7
-<!--
8
- * @Author: wrh
9
- * @Date: 2024-03-25 17:38:39
10
- * @LastEditors: Please set LastEditors
11
- * @LastEditTime: 2024-04-03 14:41:00
5
+ * @LastEditTime: 2024-04-07 09:34:27
12
 -->
6
 -->
13
 <template>
7
 <template>
14
   <div class="app-container">
8
   <div class="app-container">

Завантаження…
Відмінити
Зберегти