Pārlūkot izejas kodu

更改流程、添加单价备注表、新增用户字段

lamphua 1 gadu atpakaļ
vecāks
revīzija
28377a9c96
28 mainītis faili ar 6218 papildinājumiem un 5846 dzēšanām
  1. 17
    0
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcPriceController.java
  2. 9
    0
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
  3. 14
    0
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
  4. 0
    18
      oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallArchiveActivityExecutionListener.java
  5. 6
    2
      oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallSafeActivityExecutionListener.java
  6. 0
    18
      oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallSettleActivityExecutionListener.java
  7. 52
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcPriceRemark.java
  8. 61
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcPriceRemarkMapper.java
  9. 61
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcPriceRemarkService.java
  10. 93
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcPriceRemarkServiceImpl.java
  11. 16
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java
  12. 10
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java
  13. 16
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java
  14. 9
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java
  15. 22
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java
  16. 12
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
  17. 62
    0
      oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcPriceRemarkMapper.xml
  18. 1
    1
      oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcProjectMapper.xml
  19. 16
    4
      oa-back/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml
  20. 4
    0
      oa-back/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml
  21. 5590
    5750
      oa-back/sql/sql.sql
  22. 10
    2
      oa-ui/src/api/system/post.js
  23. 9
    0
      oa-ui/src/api/system/role.js
  24. 49
    10
      oa-ui/src/views/flowable/form/archiveForm.vue
  25. 8
    5
      oa-ui/src/views/flowable/form/finance/borrowForm.vue
  26. 23
    16
      oa-ui/src/views/flowable/form/oa/carForm.vue
  27. 22
    8
      oa-ui/src/views/flowable/form/oa/deviceForm.vue
  28. 26
    12
      oa-ui/src/views/flowable/form/settleForm.vue

+ 17
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcPriceController.java Parādīt failu

4
 import java.util.List;
4
 import java.util.List;
5
 
5
 
6
 import com.alibaba.fastjson2.JSONObject;
6
 import com.alibaba.fastjson2.JSONObject;
7
+import com.ruoyi.oa.domain.CmcPriceRemark;
8
+import com.ruoyi.oa.service.ICmcPriceRemarkService;
7
 import org.apache.ibatis.annotations.Param;
9
 import org.apache.ibatis.annotations.Param;
8
 import org.springframework.beans.factory.annotation.Autowired;
10
 import org.springframework.beans.factory.annotation.Autowired;
9
 import org.springframework.web.bind.annotation.GetMapping;
11
 import org.springframework.web.bind.annotation.GetMapping;
38
     @Autowired
40
     @Autowired
39
     private ICmcPriceService cmcPriceService;
41
     private ICmcPriceService cmcPriceService;
40
 
42
 
43
+    @Autowired
44
+    private ICmcPriceRemarkService cmcPriceRemarkService;
45
+
41
     /**
46
     /**
42
      * 查询单价表列表
47
      * 查询单价表列表
43
      */
48
      */
70
         return AjaxResult.success(cmcPriceService.selectCmcPriceById(id));
75
         return AjaxResult.success(cmcPriceService.selectCmcPriceById(id));
71
     }
76
     }
72
 
77
 
78
+    /**
79
+     * 查询单价备注
80
+     */
81
+    @GetMapping("/remark")
82
+    public AjaxResult getPriceRemarkByWorkType(String workType)
83
+    {
84
+        CmcPriceRemark cmcPriceRemark = new CmcPriceRemark();
85
+        cmcPriceRemark.setWorkType(workType);
86
+        CmcPriceRemark priceRemark = cmcPriceRemarkService.selectCmcPriceRemarkList(cmcPriceRemark).get(0);
87
+        return success(priceRemark.getRemark());
88
+    }
89
+
73
     /**
90
     /**
74
      * 查询工作类别列表
91
      * 查询工作类别列表
75
      */
92
      */

+ 9
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java Parādīt failu

119
         return success(getManageId(userService.selectUserById(Long.parseLong(userId)).getDeptId()));
119
         return success(getManageId(userService.selectUserById(Long.parseLong(userId)).getDeptId()));
120
     }
120
     }
121
 
121
 
122
+    /**
123
+     * 查询总经理
124
+     */
125
+    @GetMapping("/gm")
126
+    public AjaxResult getGm()
127
+    {
128
+        return success(postService.selectGm().getUserId());
129
+    }
130
+
122
     /**
131
     /**
123
      * 通过deptId获取分管领导
132
      * 通过deptId获取分管领导
124
      */
133
      */

+ 14
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java Parādīt failu

1
 package com.ruoyi.web.controller.system;
1
 package com.ruoyi.web.controller.system;
2
 
2
 
3
+import java.util.ArrayList;
3
 import java.util.List;
4
 import java.util.List;
4
 import javax.servlet.http.HttpServletResponse;
5
 import javax.servlet.http.HttpServletResponse;
5
 import org.springframework.beans.factory.annotation.Autowired;
6
 import org.springframework.beans.factory.annotation.Autowired;
85
         return success(roleService.selectRoleById(roleId));
86
         return success(roleService.selectRoleById(roleId));
86
     }
87
     }
87
 
88
 
89
+    /**
90
+     * 通过roleId获取用户
91
+     */
92
+    @GetMapping("/getUserByRole")
93
+    public AjaxResult getUserByRole(Long roleId)
94
+    {
95
+        List<Long> userIdList = new ArrayList<>();
96
+        for(SysUserRole sysUserRole : roleService.selectUserById(roleId)) {
97
+            userIdList.add(sysUserRole.getUserId());
98
+        }
99
+        return success(userIdList);
100
+    }
101
+
88
     /**
102
     /**
89
      * 新增角色
103
      * 新增角色
90
      */
104
      */

+ 0
- 18
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallArchiveActivityExecutionListener.java Parādīt failu

1
-package com.ruoyi.flowable.oa;
2
-
3
-import org.flowable.common.engine.impl.identity.Authentication;
4
-import org.flowable.engine.delegate.DelegateExecution;
5
-import org.flowable.engine.delegate.ExecutionListener;
6
-import org.springframework.stereotype.Component;
7
-
8
-import java.util.Map;
9
-
10
-@Component("CallArchiveActivityExecutionListener")
11
-public class CallArchiveActivityExecutionListener implements ExecutionListener {
12
-    @Override
13
-    public void notify(DelegateExecution delegateExecution) {
14
-        Map<String, Object> variables = delegateExecution.getVariables();
15
-        Authentication.setAuthenticatedUserId(variables.get("archiveInitiator").toString());
16
-        delegateExecution.setVariable("approval", variables.get("archiveInitiator").toString());
17
-    }
18
-}

+ 6
- 2
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallSafeActivityExecutionListener.java Parādīt failu

1
 package com.ruoyi.flowable.oa;
1
 package com.ruoyi.flowable.oa;
2
 
2
 
3
+import com.ruoyi.common.utils.spring.SpringUtils;
4
+import com.ruoyi.system.mapper.SysUserPostMapper;
5
+import com.ruoyi.system.mapper.SysUserRoleMapper;
3
 import org.flowable.common.engine.impl.identity.Authentication;
6
 import org.flowable.common.engine.impl.identity.Authentication;
4
 import org.flowable.engine.delegate.DelegateExecution;
7
 import org.flowable.engine.delegate.DelegateExecution;
5
 import org.flowable.engine.delegate.ExecutionListener;
8
 import org.flowable.engine.delegate.ExecutionListener;
9
 public class CallSafeActivityExecutionListener implements ExecutionListener {
12
 public class CallSafeActivityExecutionListener implements ExecutionListener {
10
     @Override
13
     @Override
11
     public void notify(DelegateExecution delegateExecution) {
14
     public void notify(DelegateExecution delegateExecution) {
12
-        Authentication.setAuthenticatedUserId("15");
13
-        delegateExecution.setVariable("approval", "15");
15
+        SysUserPostMapper userPostMapper = SpringUtils.getBean(SysUserPostMapper.class);
16
+        Authentication.setAuthenticatedUserId(userPostMapper.selectSafe().getUserId().toString());
17
+        delegateExecution.setVariable("approval", userPostMapper.selectSafe().getUserId().toString());
14
     }
18
     }
15
 }
19
 }

+ 0
- 18
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallSettleActivityExecutionListener.java Parādīt failu

1
-package com.ruoyi.flowable.oa;
2
-
3
-import org.flowable.common.engine.impl.identity.Authentication;
4
-import org.flowable.engine.delegate.DelegateExecution;
5
-import org.flowable.engine.delegate.ExecutionListener;
6
-import org.springframework.stereotype.Component;
7
-
8
-import java.util.Map;
9
-
10
-@Component("CallSettleActivityExecutionListener")
11
-public class CallSettleActivityExecutionListener implements ExecutionListener {
12
-    @Override
13
-    public void notify(DelegateExecution delegateExecution) {
14
-        Map<String, Object> variables = delegateExecution.getVariables();
15
-        Authentication.setAuthenticatedUserId(variables.get("settleInitiator").toString());
16
-        delegateExecution.setVariable("approval", variables.get("settleInitiator").toString());
17
-    }
18
-}

+ 52
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcPriceRemark.java Parādīt failu

1
+package com.ruoyi.oa.domain;
2
+
3
+import org.apache.commons.lang3.builder.ToStringBuilder;
4
+import org.apache.commons.lang3.builder.ToStringStyle;
5
+import com.ruoyi.common.annotation.Excel;
6
+import com.ruoyi.common.core.domain.BaseEntity;
7
+
8
+/**
9
+ * 单价备注对象 cmc_price_remark
10
+ * 
11
+ * @author cmc
12
+ * @date 2024-05-14
13
+ */
14
+public class CmcPriceRemark extends BaseEntity
15
+{
16
+    private static final long serialVersionUID = 1L;
17
+
18
+    /** 结算备注id */
19
+    private Long priceRemarkId;
20
+
21
+    /** 工程项目 */
22
+    @Excel(name = "工程项目")
23
+    private String workType;
24
+
25
+    public void setPriceRemarkId(Long priceRemarkId) 
26
+    {
27
+        this.priceRemarkId = priceRemarkId;
28
+    }
29
+
30
+    public Long getPriceRemarkId() 
31
+    {
32
+        return priceRemarkId;
33
+    }
34
+    public void setWorkType(String workType) 
35
+    {
36
+        this.workType = workType;
37
+    }
38
+
39
+    public String getWorkType() 
40
+    {
41
+        return workType;
42
+    }
43
+
44
+    @Override
45
+    public String toString() {
46
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
47
+            .append("priceRemarkId", getPriceRemarkId())
48
+            .append("workType", getWorkType())
49
+            .append("remark", getRemark())
50
+            .toString();
51
+    }
52
+}

+ 61
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcPriceRemarkMapper.java Parādīt failu

1
+package com.ruoyi.oa.mapper;
2
+
3
+import java.util.List;
4
+import com.ruoyi.oa.domain.CmcPriceRemark;
5
+
6
+/**
7
+ * 单价备注Mapper接口
8
+ * 
9
+ * @author cmc
10
+ * @date 2024-05-14
11
+ */
12
+public interface CmcPriceRemarkMapper 
13
+{
14
+    /**
15
+     * 查询单价备注
16
+     * 
17
+     * @param priceRemarkId 单价备注主键
18
+     * @return 单价备注
19
+     */
20
+    public CmcPriceRemark selectCmcPriceRemarkByPriceRemarkId(Long priceRemarkId);
21
+
22
+    /**
23
+     * 查询单价备注列表
24
+     * 
25
+     * @param cmcPriceRemark 单价备注
26
+     * @return 单价备注集合
27
+     */
28
+    public List<CmcPriceRemark> selectCmcPriceRemarkList(CmcPriceRemark cmcPriceRemark);
29
+
30
+    /**
31
+     * 新增单价备注
32
+     * 
33
+     * @param cmcPriceRemark 单价备注
34
+     * @return 结果
35
+     */
36
+    public int insertCmcPriceRemark(CmcPriceRemark cmcPriceRemark);
37
+
38
+    /**
39
+     * 修改单价备注
40
+     * 
41
+     * @param cmcPriceRemark 单价备注
42
+     * @return 结果
43
+     */
44
+    public int updateCmcPriceRemark(CmcPriceRemark cmcPriceRemark);
45
+
46
+    /**
47
+     * 删除单价备注
48
+     * 
49
+     * @param priceRemarkId 单价备注主键
50
+     * @return 结果
51
+     */
52
+    public int deleteCmcPriceRemarkByPriceRemarkId(Long priceRemarkId);
53
+
54
+    /**
55
+     * 批量删除单价备注
56
+     * 
57
+     * @param priceRemarkIds 需要删除的数据主键集合
58
+     * @return 结果
59
+     */
60
+    public int deleteCmcPriceRemarkByPriceRemarkIds(Long[] priceRemarkIds);
61
+}

+ 61
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcPriceRemarkService.java Parādīt failu

1
+package com.ruoyi.oa.service;
2
+
3
+import java.util.List;
4
+import com.ruoyi.oa.domain.CmcPriceRemark;
5
+
6
+/**
7
+ * 单价备注Service接口
8
+ * 
9
+ * @author cmc
10
+ * @date 2024-05-14
11
+ */
12
+public interface ICmcPriceRemarkService 
13
+{
14
+    /**
15
+     * 查询单价备注
16
+     * 
17
+     * @param priceRemarkId 单价备注主键
18
+     * @return 单价备注
19
+     */
20
+    public CmcPriceRemark selectCmcPriceRemarkByPriceRemarkId(Long priceRemarkId);
21
+
22
+    /**
23
+     * 查询单价备注列表
24
+     * 
25
+     * @param cmcPriceRemark 单价备注
26
+     * @return 单价备注集合
27
+     */
28
+    public List<CmcPriceRemark> selectCmcPriceRemarkList(CmcPriceRemark cmcPriceRemark);
29
+
30
+    /**
31
+     * 新增单价备注
32
+     * 
33
+     * @param cmcPriceRemark 单价备注
34
+     * @return 结果
35
+     */
36
+    public int insertCmcPriceRemark(CmcPriceRemark cmcPriceRemark);
37
+
38
+    /**
39
+     * 修改单价备注
40
+     * 
41
+     * @param cmcPriceRemark 单价备注
42
+     * @return 结果
43
+     */
44
+    public int updateCmcPriceRemark(CmcPriceRemark cmcPriceRemark);
45
+
46
+    /**
47
+     * 批量删除单价备注
48
+     * 
49
+     * @param priceRemarkIds 需要删除的单价备注主键集合
50
+     * @return 结果
51
+     */
52
+    public int deleteCmcPriceRemarkByPriceRemarkIds(Long[] priceRemarkIds);
53
+
54
+    /**
55
+     * 删除单价备注信息
56
+     * 
57
+     * @param priceRemarkId 单价备注主键
58
+     * @return 结果
59
+     */
60
+    public int deleteCmcPriceRemarkByPriceRemarkId(Long priceRemarkId);
61
+}

+ 93
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcPriceRemarkServiceImpl.java Parādīt failu

1
+package com.ruoyi.oa.service.impl;
2
+
3
+import java.util.List;
4
+import org.springframework.beans.factory.annotation.Autowired;
5
+import org.springframework.stereotype.Service;
6
+import com.ruoyi.oa.mapper.CmcPriceRemarkMapper;
7
+import com.ruoyi.oa.domain.CmcPriceRemark;
8
+import com.ruoyi.oa.service.ICmcPriceRemarkService;
9
+
10
+/**
11
+ * 单价备注Service业务层处理
12
+ * 
13
+ * @author cmc
14
+ * @date 2024-05-14
15
+ */
16
+@Service
17
+public class CmcPriceRemarkServiceImpl implements ICmcPriceRemarkService 
18
+{
19
+    @Autowired
20
+    private CmcPriceRemarkMapper cmcPriceRemarkMapper;
21
+
22
+    /**
23
+     * 查询单价备注
24
+     * 
25
+     * @param priceRemarkId 单价备注主键
26
+     * @return 单价备注
27
+     */
28
+    @Override
29
+    public CmcPriceRemark selectCmcPriceRemarkByPriceRemarkId(Long priceRemarkId)
30
+    {
31
+        return cmcPriceRemarkMapper.selectCmcPriceRemarkByPriceRemarkId(priceRemarkId);
32
+    }
33
+
34
+    /**
35
+     * 查询单价备注列表
36
+     * 
37
+     * @param cmcPriceRemark 单价备注
38
+     * @return 单价备注
39
+     */
40
+    @Override
41
+    public List<CmcPriceRemark> selectCmcPriceRemarkList(CmcPriceRemark cmcPriceRemark)
42
+    {
43
+        return cmcPriceRemarkMapper.selectCmcPriceRemarkList(cmcPriceRemark);
44
+    }
45
+
46
+    /**
47
+     * 新增单价备注
48
+     * 
49
+     * @param cmcPriceRemark 单价备注
50
+     * @return 结果
51
+     */
52
+    @Override
53
+    public int insertCmcPriceRemark(CmcPriceRemark cmcPriceRemark)
54
+    {
55
+        return cmcPriceRemarkMapper.insertCmcPriceRemark(cmcPriceRemark);
56
+    }
57
+
58
+    /**
59
+     * 修改单价备注
60
+     * 
61
+     * @param cmcPriceRemark 单价备注
62
+     * @return 结果
63
+     */
64
+    @Override
65
+    public int updateCmcPriceRemark(CmcPriceRemark cmcPriceRemark)
66
+    {
67
+        return cmcPriceRemarkMapper.updateCmcPriceRemark(cmcPriceRemark);
68
+    }
69
+
70
+    /**
71
+     * 批量删除单价备注
72
+     * 
73
+     * @param priceRemarkIds 需要删除的单价备注主键
74
+     * @return 结果
75
+     */
76
+    @Override
77
+    public int deleteCmcPriceRemarkByPriceRemarkIds(Long[] priceRemarkIds)
78
+    {
79
+        return cmcPriceRemarkMapper.deleteCmcPriceRemarkByPriceRemarkIds(priceRemarkIds);
80
+    }
81
+
82
+    /**
83
+     * 删除单价备注信息
84
+     * 
85
+     * @param priceRemarkId 单价备注主键
86
+     * @return 结果
87
+     */
88
+    @Override
89
+    public int deleteCmcPriceRemarkByPriceRemarkId(Long priceRemarkId)
90
+    {
91
+        return cmcPriceRemarkMapper.deleteCmcPriceRemarkByPriceRemarkId(priceRemarkId);
92
+    }
93
+}

+ 16
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserPostMapper.java Parādīt failu

52
      */
52
      */
53
     public List<SysUser> selectDriverList();
53
     public List<SysUser> selectDriverList();
54
 
54
 
55
+    /**
56
+     * 查询总经理
57
+     *
58
+     * @param
59
+     * @return 总经理
60
+     */
61
+    public SysUser selectGm();
62
+
63
+    /**
64
+     * 查询专职安全员
65
+     *
66
+     * @param
67
+     * @return 专职安全员
68
+     */
69
+    public SysUser selectSafe();
70
+
55
     /**
71
     /**
56
      * 查询部门主任
72
      * 查询部门主任
57
      *
73
      *

+ 10
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java Parādīt failu

1
 package com.ruoyi.system.mapper;
1
 package com.ruoyi.system.mapper;
2
 
2
 
3
 import java.util.List;
3
 import java.util.List;
4
+
5
+import com.ruoyi.common.core.domain.entity.SysUser;
4
 import org.apache.ibatis.annotations.Param;
6
 import org.apache.ibatis.annotations.Param;
5
 import com.ruoyi.system.domain.SysUserRole;
7
 import com.ruoyi.system.domain.SysUserRole;
6
 
8
 
11
  */
13
  */
12
 public interface SysUserRoleMapper
14
 public interface SysUserRoleMapper
13
 {
15
 {
16
+    /**
17
+     * 通过角色ID查询用户
18
+     *
19
+     * @param roleId 角色ID
20
+     * @return 用户对象信息
21
+     */
22
+    public List<SysUserRole> selectUserById(Long roleId);
23
+
14
     /**
24
     /**
15
      * 通过用户ID删除用户和角色关联
25
      * 通过用户ID删除用户和角色关联
16
      * 
26
      * 

+ 16
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysPostService.java Parādīt failu

108
      */
108
      */
109
     public List<SysUser> selectDriverList();
109
     public List<SysUser> selectDriverList();
110
 
110
 
111
+    /**
112
+     * 查询总经理
113
+     *
114
+     * @param
115
+     * @return 总经理
116
+     */
117
+    public SysUser selectGm();
118
+
119
+    /**
120
+     * 查询专职安全员
121
+     *
122
+     * @param
123
+     * @return 专职安全员
124
+     */
125
+    public SysUser selectSafe();
126
+
111
     /**
127
     /**
112
      * 查询部门主任
128
      * 查询部门主任
113
      *
129
      *

+ 9
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java Parādīt failu

3
 import java.util.List;
3
 import java.util.List;
4
 import java.util.Set;
4
 import java.util.Set;
5
 import com.ruoyi.common.core.domain.entity.SysRole;
5
 import com.ruoyi.common.core.domain.entity.SysRole;
6
+import com.ruoyi.common.core.domain.entity.SysUser;
6
 import com.ruoyi.system.domain.SysUserRole;
7
 import com.ruoyi.system.domain.SysUserRole;
7
 
8
 
8
 /**
9
 /**
59
      */
60
      */
60
     public SysRole selectRoleById(Long roleId);
61
     public SysRole selectRoleById(Long roleId);
61
 
62
 
63
+    /**
64
+     * 通过角色ID查询用户
65
+     *
66
+     * @param roleId 角色ID
67
+     * @return 用户对象信息
68
+     */
69
+    public List<SysUserRole> selectUserById(Long roleId);
70
+
62
     /**
71
     /**
63
      * 校验角色名称是否唯一
72
      * 校验角色名称是否唯一
64
      * 
73
      * 

+ 22
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysPostServiceImpl.java Parādīt failu

189
         return userPostMapper.selectDriverList();
189
         return userPostMapper.selectDriverList();
190
     }
190
     }
191
 
191
 
192
+    /**
193
+     * 查询总经理
194
+     *
195
+     * @param
196
+     * @return 总经理
197
+     */
198
+    @Override
199
+    public SysUser selectGm() {
200
+        return userPostMapper.selectGm();
201
+    }
202
+
203
+    /**
204
+     * 查询专职安全员
205
+     *
206
+     * @param
207
+     * @return 总经理
208
+     */
209
+    @Override
210
+    public SysUser selectSafe() {
211
+        return userPostMapper.selectSafe();
212
+    }
213
+
192
     /**
214
     /**
193
      * 查询部门主任
215
      * 查询部门主任
194
      *
216
      *

+ 12
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java Parādīt failu

139
         return roleMapper.selectRoleById(roleId);
139
         return roleMapper.selectRoleById(roleId);
140
     }
140
     }
141
 
141
 
142
+    /**
143
+     * 通过角色ID查询用户
144
+     *
145
+     * @param roleId 角色ID
146
+     * @return 用户对象信息
147
+     */
148
+    @Override
149
+    public List<SysUserRole> selectUserById(Long roleId)
150
+    {
151
+        return userRoleMapper.selectUserById(roleId);
152
+    }
153
+
142
     /**
154
     /**
143
      * 校验角色名称是否唯一
155
      * 校验角色名称是否唯一
144
      * 
156
      * 

+ 62
- 0
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcPriceRemarkMapper.xml Parādīt failu

1
+<?xml version="1.0" encoding="UTF-8" ?>
2
+<!DOCTYPE mapper
3
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
+<mapper namespace="com.ruoyi.oa.mapper.CmcPriceRemarkMapper">
6
+    
7
+    <resultMap type="CmcPriceRemark" id="CmcPriceRemarkResult">
8
+        <result property="priceRemarkId"    column="price_remark_id"    />
9
+        <result property="workType"    column="work_type"    />
10
+        <result property="remark"    column="remark"    />
11
+    </resultMap>
12
+
13
+    <sql id="selectCmcPriceRemarkVo">
14
+        select price_remark_id, work_type, remark from cmc_price_remark
15
+    </sql>
16
+
17
+    <select id="selectCmcPriceRemarkList" parameterType="CmcPriceRemark" resultMap="CmcPriceRemarkResult">
18
+        <include refid="selectCmcPriceRemarkVo"/>
19
+        <where>  
20
+            <if test="workType != null  and workType != ''"> and work_type = #{workType}</if>
21
+        </where>
22
+    </select>
23
+    
24
+    <select id="selectCmcPriceRemarkByPriceRemarkId" parameterType="Long" resultMap="CmcPriceRemarkResult">
25
+        <include refid="selectCmcPriceRemarkVo"/>
26
+        where price_remark_id = #{priceRemarkId}
27
+    </select>
28
+        
29
+    <insert id="insertCmcPriceRemark" parameterType="CmcPriceRemark">
30
+        insert into cmc_price_remark
31
+        <trim prefix="(" suffix=")" suffixOverrides=",">
32
+            <if test="priceRemarkId != null">price_remark_id,</if>
33
+            <if test="workType != null">work_type,</if>
34
+            <if test="remark != null">remark,</if>
35
+         </trim>
36
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
37
+            <if test="priceRemarkId != null">#{priceRemarkId},</if>
38
+            <if test="workType != null">#{workType},</if>
39
+            <if test="remark != null">#{remark},</if>
40
+         </trim>
41
+    </insert>
42
+
43
+    <update id="updateCmcPriceRemark" parameterType="CmcPriceRemark">
44
+        update cmc_price_remark
45
+        <trim prefix="SET" suffixOverrides=",">
46
+            <if test="workType != null">work_type = #{workType},</if>
47
+            <if test="remark != null">remark = #{remark},</if>
48
+        </trim>
49
+        where price_remark_id = #{priceRemarkId}
50
+    </update>
51
+
52
+    <delete id="deleteCmcPriceRemarkByPriceRemarkId" parameterType="Long">
53
+        delete from cmc_price_remark where price_remark_id = #{priceRemarkId}
54
+    </delete>
55
+
56
+    <delete id="deleteCmcPriceRemarkByPriceRemarkIds" parameterType="String">
57
+        delete from cmc_price_remark where price_remark_id in 
58
+        <foreach item="priceRemarkId" collection="array" open="(" separator="," close=")">
59
+            #{priceRemarkId}
60
+        </foreach>
61
+    </delete>
62
+</mapper>

+ 1
- 1
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcProjectMapper.xml Parādīt failu

74
     <select id="selectCmcProjectList" parameterType="CmcProject" resultMap="CmcProjectResult">
74
     <select id="selectCmcProjectList" parameterType="CmcProject" resultMap="CmcProjectResult">
75
         <include refid="selectCmcProjectVo"/>
75
         <include refid="selectCmcProjectVo"/>
76
         <where>
76
         <where>
77
-            <if test="projectNumber != null  and projectNumber != ''"> and p.project_number = #{projectNumber}</if>
77
+            <if test="projectNumber != null  and projectNumber != ''"> and p.project_number like concat('%', #{projectNumber}, '%')</if>
78
             <if test="projectName != null  and projectName != ''"> and p.project_name like concat('%', #{projectName}, '%')</if>
78
             <if test="projectName != null  and projectName != ''"> and p.project_name like concat('%', #{projectName}, '%')</if>
79
             <if test="projectLeader != null "> and p.project_leader = #{projectLeader}</if>
79
             <if test="projectLeader != null "> and p.project_leader = #{projectLeader}</if>
80
             <if test="isFinished != null  and isFinished != ''"> and p.is_finished = #{isFinished}</if>
80
             <if test="isFinished != null  and isFinished != ''"> and p.is_finished = #{isFinished}</if>

+ 16
- 4
oa-back/ruoyi-system/src/main/resources/mapper/system/SysUserPostMapper.xml Parādīt failu

20
 		where up.post_id = 27 and u.status = '0'
20
 		where up.post_id = 27 and u.status = '0'
21
 	</select>
21
 	</select>
22
 
22
 
23
+	<select id="selectGm" resultMap="SysUserResult">
24
+		select u.user_id, u.nick_name
25
+		from sys_user u left join sys_user_post up on u.user_id = up.user_id
26
+		where up.post_id = 2
27
+	</select>
28
+
29
+	<select id="selectSafe" resultMap="SysUserResult">
30
+		select u.user_id, u.nick_name
31
+		from sys_user u left join sys_user_post up on u.user_id = up.user_id
32
+		where up.post_id = 20
33
+	</select>
34
+
23
 	<select id="selectDeptLeaderByUserId" parameterType="String" resultMap="SysUserResult">
35
 	<select id="selectDeptLeaderByUserId" parameterType="String" resultMap="SysUserResult">
24
 		select r.user_id, r.nick_name from
36
 		select r.user_id, r.nick_name from
25
 		(select u1.user_id, u1.nick_name, u.dept_id from
37
 		(select u1.user_id, u1.nick_name, u.dept_id from
26
 		sys_user as u, sys_user as u1 where u.user_id = #{param} and u1.dept_id = u.dept_id) as r
38
 		sys_user as u, sys_user as u1 where u.user_id = #{param} and u1.dept_id = u.dept_id) as r
27
 		left join sys_user_post as up
39
 		left join sys_user_post as up
28
 		on r.user_id = up.user_id
40
 		on r.user_id = up.user_id
29
-		where up.post_id = 12
41
+		where up.post_id = 13
30
 	</select>
42
 	</select>
31
 
43
 
32
 	<select id="selectViceDeptLeaderByUserId" parameterType="String" resultMap="SysUserResult">
44
 	<select id="selectViceDeptLeaderByUserId" parameterType="String" resultMap="SysUserResult">
35
 	sys_user as u, sys_user as u1 where u.user_id = #{param} and u1.dept_id = u.dept_id) as r
47
 	sys_user as u, sys_user as u1 where u.user_id = #{param} and u1.dept_id = u.dept_id) as r
36
 	left join sys_user_post as up
48
 	left join sys_user_post as up
37
 	on r.user_id = up.user_id
49
 	on r.user_id = up.user_id
38
-	where up.post_id = 13 order by user_id desc limit 1
50
+	where up.post_id = 14 order by user_id desc limit 1
39
 	</select>
51
 	</select>
40
 
52
 
41
 	<select id="selectDeptLeaderByDeptId" parameterType="String" resultMap="SysUserResult">
53
 	<select id="selectDeptLeaderByDeptId" parameterType="String" resultMap="SysUserResult">
44
 		sys_user where dept_id = #{param}) as r
56
 		sys_user where dept_id = #{param}) as r
45
 		left join sys_user_post as up
57
 		left join sys_user_post as up
46
 		on r.user_id = up.user_id
58
 		on r.user_id = up.user_id
47
-		where up.post_id = 12
59
+		where up.post_id = 13
48
 	</select>
60
 	</select>
49
 
61
 
50
 	<select id="selectViceDeptLeaderByDeptId" parameterType="String" resultMap="SysUserResult">
62
 	<select id="selectViceDeptLeaderByDeptId" parameterType="String" resultMap="SysUserResult">
53
 		sys_user where dept_id = #{param}) as r
65
 		sys_user where dept_id = #{param}) as r
54
 		left join sys_user_post as up
66
 		left join sys_user_post as up
55
 		on r.user_id = up.user_id
67
 		on r.user_id = up.user_id
56
-		where up.post_id = 13 order by user_id desc limit 1
68
+		where up.post_id = 14 order by user_id desc limit 1
57
 	</select>
69
 	</select>
58
 
70
 
59
 	<delete id="deleteUserPostByUserId" parameterType="Long">
71
 	<delete id="deleteUserPostByUserId" parameterType="Long">

+ 4
- 0
oa-back/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml Parādīt failu

9
 		<result property="roleId"     column="role_id"      />
9
 		<result property="roleId"     column="role_id"      />
10
 	</resultMap>
10
 	</resultMap>
11
 
11
 
12
+	<select id="selectUserById" parameterType="Long" resultMap="SysUserRoleResult">
13
+		select user_id from sys_user_role where role_id=#{roleId}
14
+	</select>
15
+
12
 	<delete id="deleteUserRoleByUserId" parameterType="Long">
16
 	<delete id="deleteUserRoleByUserId" parameterType="Long">
13
 		delete from sys_user_role where user_id=#{userId}
17
 		delete from sys_user_role where user_id=#{userId}
14
 	</delete>
18
 	</delete>

+ 5590
- 5750
oa-back/sql/sql.sql
Failā izmaiņas netiks attēlotas, jo tās ir par lielu
Parādīt failu


+ 10
- 2
oa-ui/src/api/system/post.js Parādīt failu

1
 /*
1
 /*
2
  * @Author: wrh
2
  * @Author: wrh
3
  * @Date: 2024-03-07 17:33:37
3
  * @Date: 2024-03-07 17:33:37
4
- * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-03-08 15:44:00
4
+ * @LastEditors: wrh
5
+ * @LastEditTime: 2024-05-14 14:44:34
6
  */
6
  */
7
 import request from '@/utils/request'
7
 import request from '@/utils/request'
8
 
8
 
23
   })
23
   })
24
 }
24
 }
25
 
25
 
26
+// 查询总经理
27
+export function getGm() {
28
+  return request({
29
+    url: '/system/post/gm',
30
+    method: 'get'
31
+  })
32
+}
33
+
26
 // 查询岗位详细
34
 // 查询岗位详细
27
 export function getPost(postId) {
35
 export function getPost(postId) {
28
   return request({
36
   return request({

+ 9
- 0
oa-ui/src/api/system/role.js Parādīt failu

17
   })
17
   })
18
 }
18
 }
19
 
19
 
20
+// 查询角色详细
21
+export function getUserByRole(roleId) {
22
+  return request({
23
+    url: '/system/getUserByRole',
24
+    method: 'get',    
25
+    params: roleId
26
+  })
27
+}
28
+
20
 // 新增角色
29
 // 新增角色
21
 export function addRole(data) {
30
 export function addRole(data) {
22
   return request({
31
   return request({

+ 49
- 10
oa-ui/src/views/flowable/form/archiveForm.vue Parādīt failu

139
         </el-card>
139
         </el-card>
140
       </el-col>
140
       </el-col>
141
     </el-row>
141
     </el-row>
142
+    <el-dialog :title="completeTitle" :visible.sync="completeOpen" width="60%" append-to-body>
143
+      <el-form ref="taskForm" :model="taskForm">
144
+        <el-form-item prop="targetKey">
145
+          <flow-user v-if="checkSendUser" :checkType="checkType" @handleUserSelect="handleUserSelect"></flow-user>
146
+        </el-form-item>
147
+      </el-form>
148
+      <span slot="footer" class="dialog-footer">
149
+        <el-button @click="completeOpen = false">取 消</el-button>
150
+        <el-button type="primary" @click="taskComplete">确 定</el-button>
151
+      </span>
152
+    </el-dialog>
142
   </div>
153
   </div>
143
 </template>
154
 </template>
144
 
155
 
150
 import { getContract } from "@/api/oa/contract/contract";
161
 import { getContract } from "@/api/oa/contract/contract";
151
 import { getUsersDeptLeaderByDept } from '@/api/system/post'
162
 import { getUsersDeptLeaderByDept } from '@/api/system/post'
152
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
163
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
164
+import FlowUser from '@/components/flow/User';
153
 import flow from '@/views/flowable/task/todo/detail/flow'
165
 import flow from '@/views/flowable/task/todo/detail/flow'
154
 import { flowXmlAndNode } from "@/api/flowable/definition";
166
 import { flowXmlAndNode } from "@/api/flowable/definition";
167
+import { getUserByRole } from "@/api/system/role";
155
 
168
 
156
 export default {
169
 export default {
157
   components: {
170
   components: {
171
+    FlowUser,
158
     flow
172
     flow
159
   },
173
   },
160
   props: {
174
   props: {
232
       flowData: {},
246
       flowData: {},
233
       projectList: [],
247
       projectList: [],
234
       contractCode: '',
248
       contractCode: '',
249
+      checkSendUser: false,
250
+      completeOpen: false,
251
+      completeTitle: '',
252
+      checkType: 'single',
235
     };
253
     };
236
   },
254
   },
237
   mounted() {
255
   mounted() {
359
       }
377
       }
360
       return true;
378
       return true;
361
     },
379
     },
380
+    // 用户信息选中数据
381
+    handleUserSelect(selection) {
382
+      if (selection) {
383
+        //不多选
384
+        this.$set(this.taskForm.variables, "approval", selection.userId.toString());
385
+      }
386
+    },
387
+    /** 用户审批任务 */
388
+    taskComplete() {
389
+      if (!this.taskForm.variables && this.checkSendUser) {
390
+        this.$modal.msgError("请选择流程接收人员!");
391
+        return;
392
+      }
393
+      if (this.taskForm) {
394
+        complete(this.taskForm).then(response => {
395
+          this.$modal.msgSuccess(response.msg);
396
+          this.$emit('goBack')
397
+        });
398
+      }
399
+    },
362
     // 表单重置
400
     // 表单重置
363
     reset() {
401
     reset() {
364
       this.form = {
402
       this.form = {
446
                 });
484
                 });
447
               }
485
               }
448
               if (this.taskName == '技术部审核') {
486
               if (this.taskName == '技术部审核') {
449
-                this.$set(this.taskForm.variables, "approval", '57');
450
-                complete(this.taskForm).then(response => {
451
-                  this.$modal.msgSuccess(response.msg);
452
-                  this.$emit('goBack')
453
-                });
487
+                getUserByRole(6).then(result => {
488
+                  this.$set(this.taskForm.variables, "approval", result.data[0]);
489
+                  complete(this.taskForm).then(response => {
490
+                    this.$modal.msgSuccess(response.msg);
491
+                    this.$emit('goBack')
492
+                  });
493
+                })
454
               }
494
               }
455
               if (this.taskName == '成果归档') {
495
               if (this.taskName == '成果归档') {
456
                 complete(this.taskForm).then(response => {
496
                 complete(this.taskForm).then(response => {
461
             })
501
             })
462
           } else {
502
           } else {
463
             this.form.archiveId = this.taskForm.formId;
503
             this.form.archiveId = this.taskForm.formId;
504
+            console.log(this.form);
464
             addArchive(this.form).then(response => {
505
             addArchive(this.form).then(response => {
465
               this.$modal.msgSuccess("新增成功");
506
               this.$modal.msgSuccess("新增成功");
466
               this.open = false;
507
               this.open = false;
468
             });
509
             });
469
             const params = { taskId: this.taskForm.taskId };
510
             const params = { taskId: this.taskForm.taskId };
470
             getNextFlowNode(params).then(res => {
511
             getNextFlowNode(params).then(res => {
471
-              this.$set(this.taskForm.variables, "approval", '46');
472
-              complete(this.taskForm).then(response => {
473
-                this.$modal.msgSuccess(response.msg);
474
-                this.$emit('goBack')
475
-              });
512
+              this.checkSendUser = true;
513
+              this.completeOpen = true;
514
+              this.completeTitle = "流程审批";
476
             })
515
             })
477
           }
516
           }
478
         }
517
         }

+ 8
- 5
oa-ui/src/views/flowable/form/finance/borrowForm.vue Parādīt failu

253
 import { listBorrow, getBorrow, delBorrow, addBorrow, updateBorrow } from "@/api/oa/borrow/borrow";
253
 import { listBorrow, getBorrow, delBorrow, addBorrow, updateBorrow } from "@/api/oa/borrow/borrow";
254
 import { listBorrowDetail, addBorrowDetail, updateBorrowDetail } from "@/api/oa/borrow/borrowDetail";
254
 import { listBorrowDetail, addBorrowDetail, updateBorrowDetail } from "@/api/oa/borrow/borrowDetail";
255
 import { listProject, getProject } from "@/api/oa/project/project";
255
 import { listProject, getProject } from "@/api/oa/project/project";
256
+import { getGm } from "@/api/system/post";
256
 import flow from '@/views/flowable/task/todo/detail/flow'
257
 import flow from '@/views/flowable/task/todo/detail/flow'
257
 import { flowXmlAndNode } from "@/api/flowable/definition";
258
 import { flowXmlAndNode } from "@/api/flowable/definition";
258
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
259
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
491
                 });
492
                 });
492
               }
493
               }
493
               else if (this.taskName == '分管审核') {
494
               else if (this.taskName == '分管审核') {
494
-                this.$set(this.taskForm.variables, "approval", 2);
495
-                complete(this.taskForm).then(response => {
496
-                  this.$modal.msgSuccess(response.msg);
497
-                  this.$emit('goBack')
498
-                });
495
+                getGm().then(res => {
496
+                  this.$set(this.taskForm.variables, "approval", res.data);
497
+                  complete(this.taskForm).then(response => {
498
+                    this.$modal.msgSuccess(response.msg);
499
+                    this.$emit('goBack')
500
+                  });
501
+                })
499
               }
502
               }
500
               else if (this.taskName == '总经理审核') {
503
               else if (this.taskName == '总经理审核') {
501
                 let approvalList = [];
504
                 let approvalList = [];

+ 23
- 16
oa-ui/src/views/flowable/form/oa/carForm.vue Parādīt failu

1
 <!--
1
 <!--
2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-02-29 11:44:28
3
  * @Date: 2024-02-29 11:44:28
4
- * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-04-25 13:52:22
4
+ * @LastEditors: wrh
5
+ * @LastEditTime: 2024-05-14 18:14:03
6
 -->
6
 -->
7
 
7
 
8
 <template>
8
 <template>
54
                 </el-select>
54
                 </el-select>
55
                 <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
55
                 <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
56
                   <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
56
                   <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
57
-                    }}</el-descriptions-item>
57
+                  }}</el-descriptions-item>
58
                   <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
58
                   <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
59
-                    }}</el-descriptions-item>
59
+                  }}</el-descriptions-item>
60
                   <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeaderUser ?
60
                   <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeaderUser ?
61
-    chooseProject.projectLeaderUser.nickName : ''
62
-                    }}</el-descriptions-item>
61
+                    chooseProject.projectLeaderUser.nickName : ''
62
+                  }}</el-descriptions-item>
63
                   <el-descriptions-item label="承担部门" label-class-name="my-label">
63
                   <el-descriptions-item label="承担部门" label-class-name="my-label">
64
                     <el-tag size="small">{{ chooseProject.undertakingDeptName }}</el-tag>
64
                     <el-tag size="small">{{ chooseProject.undertakingDeptName }}</el-tag>
65
                   </el-descriptions-item>
65
                   </el-descriptions-item>
66
                   <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
66
                   <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
67
-                    }}</el-descriptions-item>
67
+                  }}</el-descriptions-item>
68
                 </el-descriptions>
68
                 </el-descriptions>
69
               </el-form-item>
69
               </el-form-item>
70
               <el-form-item label="用车事由:" prop="applyReason">
70
               <el-form-item label="用车事由:" prop="applyReason">
75
               <el-row>
75
               <el-row>
76
                 <el-col :span="6" :xs="24">
76
                 <el-col :span="6" :xs="24">
77
                   <el-form-item label="乘车人数:" prop="passengers">
77
                   <el-form-item label="乘车人数:" prop="passengers">
78
-                    <el-input-number v-model="form.passengers" :min="1"
79
-                      :disabled="taskName != '用车申请'"></el-input-number>
78
+                    <el-input-number v-model="form.passengers" :min="1" :disabled="taskName != '用车申请'"></el-input-number>
80
                   </el-form-item>
79
                   </el-form-item>
81
                 </el-col>
80
                 </el-col>
82
                 <el-col :span="6" :xs="24">
81
                 <el-col :span="6" :xs="24">
207
                     {{ item.nickName }}
206
                     {{ item.nickName }}
208
                   </el-checkbox>
207
                   </el-checkbox>
209
                 </el-checkbox-group> -->
208
                 </el-checkbox-group> -->
210
-                <el-select v-model="form.drivers" filterable multiple clearable style="width:220px" :disabled="taskName != '安排用车'">
209
+                <el-select v-model="form.drivers" filterable multiple clearable style="width:220px"
210
+                  :disabled="taskName != '安排用车'">
211
                   <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"
211
                   <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"
212
                     v-if="item.nickName != 'admin'">
212
                     v-if="item.nickName != 'admin'">
213
                   </el-option>
213
                   </el-option>
218
               <el-button type="primary" @click="submit">提交申请</el-button>
218
               <el-button type="primary" @click="submit">提交申请</el-button>
219
             </el-row>
219
             </el-row>
220
             <el-row style="text-align: center;" v-else>
220
             <el-row style="text-align: center;" v-else>
221
-              <el-button type="primary" :disabled="taskName == ''" @click="completeApply">{{ taskName == '申请确认' ? "确认" : "完成审批" }}</el-button>
221
+              <el-button type="primary" :disabled="taskName == ''" @click="completeApply">{{ taskName == '申请确认' ? "确认" :
222
+                "完成审批" }}</el-button>
222
             </el-row>
223
             </el-row>
223
           </div>
224
           </div>
224
         </el-card>
225
         </el-card>
242
 import { listProject, getProject } from "@/api/oa/project/project";
243
 import { listProject, getProject } from "@/api/oa/project/project";
243
 import { listCar, getCar } from "@/api/oa/car/car";
244
 import { listCar, getCar } from "@/api/oa/car/car";
244
 import { listCarApproval, getCarApproval, updateCarApproval, addCarApproval, modifyCarApproval } from '@/api/oa/car/carApproval'
245
 import { listCarApproval, getCarApproval, updateCarApproval, addCarApproval, modifyCarApproval } from '@/api/oa/car/carApproval'
245
-import { listDriver } from "@/api/system/post";
246
+import { listDriver, getGm } from "@/api/system/post";
246
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
247
 import { complete, rejectTask, returnList, returnTask, getNextFlowNode, delegate, flowTaskForm, } from "@/api/flowable/todo";
247
 import { getUsersDeptLeader, getUsersManageLeader } from '@/api/system/post.js'
248
 import { getUsersDeptLeader, getUsersManageLeader } from '@/api/system/post.js'
248
 import flow from '@/views/flowable/task/todo/detail/flow'
249
 import flow from '@/views/flowable/task/todo/detail/flow'
453
           this.$set(this.taskForm.variables, "dept", this.dept);
454
           this.$set(this.taskForm.variables, "dept", this.dept);
454
           if (res.data && this.dept != 0) {
455
           if (res.data && this.dept != 0) {
455
             this.$set(this.taskForm.variables, "approval", res.data.userId);
456
             this.$set(this.taskForm.variables, "approval", res.data.userId);
457
+          } else if (this.dept == 102) {
458
+            getGm().then(result => {
459
+              this.$set(this.taskForm.variables, "approval", result.data);
460
+            })
456
           } else {
461
           } else {
457
             let userId = this.getChooseType()
462
             let userId = this.getChooseType()
458
             this.$set(this.taskForm.variables, "approval", userId);
463
             this.$set(this.taskForm.variables, "approval", userId);
473
           });
478
           });
474
         })
479
         })
475
       } else if (this.taskName == '分管审核' || this.taskName == '党工团审核' || this.taskName == '总经理审核') {
480
       } else if (this.taskName == '分管审核' || this.taskName == '党工团审核' || this.taskName == '总经理审核') {
476
-        this.$set(this.taskForm.variables, "approvalList", [8, 16]);
477
-        complete(this.taskForm).then(response => {
478
-          this.$modal.msgSuccess(response.msg);
479
-          this.$emit('goBack')
481
+        getUserByRole(3).then(result => {
482
+          this.$set(this.taskForm.variables, "approvalList", result.data);
483
+          complete(this.taskForm).then(response => {
484
+            this.$modal.msgSuccess(response.msg);
485
+            this.$emit('goBack')
486
+          })
480
         });
487
         });
481
       } else if (this.taskName == '安排用车' || this.taskName == '申请确认') {
488
       } else if (this.taskName == '安排用车' || this.taskName == '申请确认') {
482
         complete(this.taskForm).then(response => {
489
         complete(this.taskForm).then(response => {

+ 22
- 8
oa-ui/src/views/flowable/form/oa/deviceForm.vue Parādīt failu

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-07 13:44:39
3
  * @Date: 2024-03-07 13:44:39
4
  * @LastEditors: wrh
4
  * @LastEditors: wrh
5
- * @LastEditTime: 2024-04-16 10:20:19
5
+ * @LastEditTime: 2024-05-14 18:16:09
6
 -->
6
 -->
7
 
7
 
8
 <template>
8
 <template>
131
               </el-form-item>
131
               </el-form-item>
132
               <el-row>
132
               <el-row>
133
                 <el-col :span="6" :xs="24" :offset="12">
133
                 <el-col :span="6" :xs="24" :offset="12">
134
-                  <el-form-item label="签名:" label-width="120px" v-if="taskName == '安排设备' || taskName == '申请确认' || taskName == '归还确认'">
134
+                  <el-form-item label="签名:" label-width="120px"
135
+                    v-if="taskName == '安排设备' || taskName == '申请确认' || taskName == '归还确认'">
135
                     <span class="auditor"> {{ form.dispatchUser ? form.dispatchUser.nickName : dispatchUser }} </span>
136
                     <span class="auditor"> {{ form.dispatchUser ? form.dispatchUser.nickName : dispatchUser }} </span>
136
                   </el-form-item>
137
                   </el-form-item>
137
                 </el-col>
138
                 </el-col>
138
                 <el-col :span="6">
139
                 <el-col :span="6">
139
-                  <el-form-item label="日期:" label-width="120px" v-if="taskName == '安排设备' || taskName == '申请确认' || taskName == '归还确认'">
140
+                  <el-form-item label="日期:" label-width="120px"
141
+                    v-if="taskName == '安排设备' || taskName == '申请确认' || taskName == '归还确认'">
140
                     <span> {{ form.dispatchTime ? form.dispatchTime : dispatchTime }} </span>
142
                     <span> {{ form.dispatchTime ? form.dispatchTime : dispatchTime }} </span>
141
                   </el-form-item>
143
                   </el-form-item>
142
                 </el-col>
144
                 </el-col>
143
               </el-row>
145
               </el-row>
144
               <!-- 设备安排 -->
146
               <!-- 设备安排 -->
145
               <el-form-item label-width="120px" label="设备选择:">
147
               <el-form-item label-width="120px" label="设备选择:">
146
-                <el-select style="width: 300px;" v-model="form.devices" filterable multiple placeholder="请选择" @change="handleSelectDevice"
147
-                  clearable :disabled="taskName != '安排设备'">
148
+                <el-select style="width: 300px;" v-model="form.devices" filterable multiple placeholder="请选择"
149
+                  @change="handleSelectDevice" clearable :disabled="taskName != '安排设备'">
148
                   <el-option v-for="item in deviceList" :key="item.deviceId"
150
                   <el-option v-for="item in deviceList" :key="item.deviceId"
149
                     :label="item.brand + item.series + item.name + item.code" :value="item.deviceId">
151
                     :label="item.brand + item.series + item.name + item.code" :value="item.deviceId">
150
                   </el-option>
152
                   </el-option>
209
 import { getUsersDeptLeader, getUsersManageLeader } from '@/api/system/post.js'
211
 import { getUsersDeptLeader, getUsersManageLeader } from '@/api/system/post.js'
210
 import flow from '@/views/flowable/task/todo/detail/flow'
212
 import flow from '@/views/flowable/task/todo/detail/flow'
211
 import { flowXmlAndNode } from "@/api/flowable/definition";
213
 import { flowXmlAndNode } from "@/api/flowable/definition";
214
+import { getUserByRole } from "@/api/system/role";
212
 export default {
215
 export default {
213
   components: {
216
   components: {
214
     flow
217
     flow
378
           });
381
           });
379
         })
382
         })
380
       } else if (this.taskName == '分管审核') {
383
       } else if (this.taskName == '分管审核') {
381
-        complete(this.taskForm).then(response => {
382
-          this.$modal.msgSuccess(response.msg);
383
-          this.$emit('goBack')
384
+        getUserByRole(5).then(result => {
385
+          this.$set(this.taskForm.variables, "approval", result.data[0]);
386
+          complete(this.taskForm).then(response => {
387
+            this.$modal.msgSuccess(response.msg);
388
+            this.$emit('goBack')
389
+          })
384
         });
390
         });
385
       } else if (this.taskName == '安排设备') {
391
       } else if (this.taskName == '安排设备') {
386
         complete(this.taskForm).then(response => {
392
         complete(this.taskForm).then(response => {
387
           this.$modal.msgSuccess(response.msg);
393
           this.$modal.msgSuccess(response.msg);
388
           this.$emit('goBack')
394
           this.$emit('goBack')
389
         });
395
         });
396
+      } else if (this.taskName == '申请确认') {
397
+        getUserByRole(5).then(result => {
398
+          this.$set(this.taskForm.variables, "approval", result.data[0]);
399
+          complete(this.taskForm).then(response => {
400
+            this.$modal.msgSuccess(response.msg);
401
+            this.$emit('goBack')
402
+          })
403
+        });
390
       } else {
404
       } else {
391
         complete(this.taskForm).then(response => {
405
         complete(this.taskForm).then(response => {
392
           this.$modal.msgSuccess(response.msg);
406
           this.$modal.msgSuccess(response.msg);

+ 26
- 12
oa-ui/src/views/flowable/form/settleForm.vue Parādīt failu

1
 <!--
1
 <!--
2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-04-30 09:03:14
3
  * @Date: 2024-04-30 09:03:14
4
- * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-05-10 17:29:44
4
+ * @LastEditors: wrh
5
+ * @LastEditTime: 2024-05-14 18:13:20
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container" v-loading="loading">
8
   <div class="app-container" v-loading="loading">
9
     <el-button type="warning" icon="el-icon-printer" @click="printOpen = true">打印</el-button>
9
     <el-button type="warning" icon="el-icon-printer" @click="printOpen = true">打印</el-button>
10
     <el-dialog title="结算表格预览" :visible.sync="printOpen" width="65%" append-to-body>
10
     <el-dialog title="结算表格预览" :visible.sync="printOpen" width="65%" append-to-body>
11
-      <settle-print :form="form" :chooseProject="chooseProject" :workList="settleWorkList"
12
-        :settleList="oldSettleSumList" @cancel="printOpen = false"></settle-print>
11
+      <settle-print :form="form" :chooseProject="chooseProject" :workList="settleWorkList" :settleList="oldSettleSumList"
12
+        @cancel="printOpen = false"></settle-print>
13
     </el-dialog>
13
     </el-dialog>
14
     <el-row :gutter="20">
14
     <el-row :gutter="20">
15
       <el-col :span="19" :xs="24">
15
       <el-col :span="19" :xs="24">
432
 import { getPrice } from "@/api/oa/price/price";
432
 import { getPrice } from "@/api/oa/price/price";
433
 import ChoosePrice from "./components/choosePrice.vue";
433
 import ChoosePrice from "./components/choosePrice.vue";
434
 import { getUser } from "@/api/system/user";
434
 import { getUser } from "@/api/system/user";
435
+import { getUserByRole } from "@/api/system/role";
436
+import { getGm } from "@/api/system/post";
435
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
437
 import { complete, getNextFlowNode } from "@/api/flowable/todo";
436
 import { getUsersDeptLeader, getUsersDeptLeaderByDept, getUsersManageLeaderByDept } from '@/api/system/post.js'
438
 import { getUsersDeptLeader, getUsersDeptLeaderByDept, getUsersManageLeaderByDept } from '@/api/system/post.js'
437
 import SettlePrint from './components/settlePrint.vue';
439
 import SettlePrint from './components/settlePrint.vue';
658
         if (vaild) {
660
         if (vaild) {
659
           this.preserve();
661
           this.preserve();
660
           if (this.taskName == '结算发起') {
662
           if (this.taskName == '结算发起') {
661
-            this.getNextFlowNodeFn(17);
663
+            getUserByRole(5).then(res => {
664
+              this.getNextFlowNodeFn(res.data[0]);
665
+            })
662
           } else if (this.taskName == '综合事务部处理') {
666
           } else if (this.taskName == '综合事务部处理') {
663
-            this.getNextFlowNodeFn(52);
667
+            this.getNextFlowNodeFn(null, 110, false);
664
           } else if (this.taskName == '技术质量部审核') {
668
           } else if (this.taskName == '技术质量部审核') {
665
-            this.getNextFlowNodeFn(32);
669
+            this.getNextFlowNodeFn(null, 107, false);
666
           } else if (this.taskName == '项目管理部结算') {
670
           } else if (this.taskName == '项目管理部结算') {
667
             this.getNextFlowNodeFn();
671
             this.getNextFlowNodeFn();
668
           } else if (this.taskName == '结算发起人确认') {
672
           } else if (this.taskName == '结算发起人确认') {
669
-            this.getNextFlowNodeFn(13);
673
+            this.getNextFlowNodeFn(null, 105, false);
670
           } else if (this.taskName == '经营发展部校核') {
674
           } else if (this.taskName == '经营发展部校核') {
671
-            this.getNextFlowNodeFn(null, this.deptId);
675
+            this.getNextFlowNodeFn(null, this.deptId, true);
672
           } else if (this.taskName == '分管审核') {
676
           } else if (this.taskName == '分管审核') {
673
-            this.getNextFlowNodeFn();
677
+            getGm().then(res => {
678
+              this.getNextFlowNodeFn(res.data);
679
+            })
674
           } else if (this.taskName == '总经理审批') {
680
           } else if (this.taskName == '总经理审批') {
675
             this.getNextFlowNodeFn();
681
             this.getNextFlowNodeFn();
676
           }
682
           }
677
         }
683
         }
678
       })
684
       })
679
     },
685
     },
680
-    getNextFlowNodeFn(userId, deptId) {
686
+    getNextFlowNodeFn(userId, deptId, isList) {
681
       const params = { taskId: this.taskForm.taskId };
687
       const params = { taskId: this.taskForm.taskId };
682
       getNextFlowNode(params).then(res => {
688
       getNextFlowNode(params).then(res => {
683
         if (userId) {
689
         if (userId) {
687
             this.$emit('goBack');
693
             this.$emit('goBack');
688
           });
694
           });
689
         } else {
695
         } else {
690
-          if (deptId) {
696
+          if (deptId && isList) {
691
             getUsersManageLeaderByDept({ deptId }).then(res => {
697
             getUsersManageLeaderByDept({ deptId }).then(res => {
692
               let id = [];
698
               let id = [];
693
               id.push(res.data.userId);
699
               id.push(res.data.userId);
698
                 this.$emit('goBack');
704
                 this.$emit('goBack');
699
               });
705
               });
700
             })
706
             })
707
+          } else if (deptId && !isList) {
708
+            getUsersManageLeaderByDept({ deptId }).then(res => {
709
+              this.$set(this.taskForm.variables, "approval", res.data.userId);
710
+              complete(this.taskForm).then(response => {
711
+                this.$modal.msgSuccess(response.msg);
712
+                this.$emit('goBack');
713
+              });
714
+            })
701
           } else {
715
           } else {
702
             complete(this.taskForm).then(response => {
716
             complete(this.taskForm).then(response => {
703
               this.$modal.msgSuccess(response.msg);
717
               this.$modal.msgSuccess(response.msg);

Notiek ielāde…
Atcelt
Saglabāt