Browse Source

设备、车辆管理;岗位工资表

lamphua 1 year ago
parent
commit
ec70e28de8
28 changed files with 1938 additions and 639 deletions
  1. 104
    0
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcBudgetCarController.java
  2. 104
    0
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcBudgetDeviceController.java
  3. 104
    0
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcBudgetSettleController.java
  4. 104
    0
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcBudgetStaffController.java
  5. 3
    25
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcCarApprovalController.java
  6. 3
    30
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcDeviceApprovalController.java
  7. 104
    0
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcPostSalaryController.java
  8. 80
    0
      oa-back/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/CmcPostSalary.java
  9. 13
    0
      oa-back/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
  10. 48
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcCarApproval.java
  11. 8
    7
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcDevice.java
  12. 36
    25
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcDeviceApproval.java
  13. 61
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcPostSalaryMapper.java
  14. 61
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcPostSalaryService.java
  15. 93
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcPostSalaryServiceImpl.java
  16. 49
    22
      oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcCarApprovalMapper.xml
  17. 28
    10
      oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcDeviceApprovalMapper.xml
  18. 6
    1
      oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcDeviceMapper.xml
  19. 66
    0
      oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcPostSalaryMapper.xml
  20. 16
    6
      oa-back/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
  21. 83
    68
      oa-back/sql/sql.sql
  22. 44
    0
      oa-ui/src/api/oa/staff/salary.js
  23. 36
    28
      oa-ui/src/views/flowable/form/carForm.vue
  24. 20
    14
      oa-ui/src/views/flowable/form/deviceForm.vue
  25. 424
    396
      oa-ui/src/views/oa/device/approval.vue
  26. 4
    4
      oa-ui/src/views/oa/device/index.vue
  27. 2
    3
      oa-ui/src/views/oa/staff/index.vue
  28. 234
    0
      oa-ui/src/views/oa/staff/salary.vue

+ 104
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcBudgetCarController.java View File

1
+package com.ruoyi.web.controller.oa;
2
+
3
+import java.util.List;
4
+import javax.servlet.http.HttpServletResponse;
5
+import org.springframework.security.access.prepost.PreAuthorize;
6
+import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.web.bind.annotation.GetMapping;
8
+import org.springframework.web.bind.annotation.PostMapping;
9
+import org.springframework.web.bind.annotation.PutMapping;
10
+import org.springframework.web.bind.annotation.DeleteMapping;
11
+import org.springframework.web.bind.annotation.PathVariable;
12
+import org.springframework.web.bind.annotation.RequestBody;
13
+import org.springframework.web.bind.annotation.RequestMapping;
14
+import org.springframework.web.bind.annotation.RestController;
15
+import com.ruoyi.common.annotation.Log;
16
+import com.ruoyi.common.core.controller.BaseController;
17
+import com.ruoyi.common.core.domain.AjaxResult;
18
+import com.ruoyi.common.enums.BusinessType;
19
+import com.ruoyi.oa.domain.CmcBudgetCar;
20
+import com.ruoyi.oa.service.ICmcBudgetCarService;
21
+import com.ruoyi.common.utils.poi.ExcelUtil;
22
+import com.ruoyi.common.core.page.TableDataInfo;
23
+
24
+/**
25
+ * cmc车辆预算Controller
26
+ * 
27
+ * @author cmc
28
+ * @date 2024-03-22
29
+ */
30
+@RestController
31
+@RequestMapping("/oa/budgetCar")
32
+public class CmcBudgetCarController extends BaseController
33
+{
34
+    @Autowired
35
+    private ICmcBudgetCarService cmcBudgetCarService;
36
+
37
+    /**
38
+     * 查询cmc车辆预算列表
39
+     */
40
+    @PreAuthorize("@ss.hasPermi('oa:budgetCar:list')")
41
+    @GetMapping("/list")
42
+    public TableDataInfo list(CmcBudgetCar cmcBudgetCar)
43
+    {
44
+        startPage();
45
+        List<CmcBudgetCar> list = cmcBudgetCarService.selectCmcBudgetCarList(cmcBudgetCar);
46
+        return getDataTable(list);
47
+    }
48
+
49
+    /**
50
+     * 导出cmc车辆预算列表
51
+     */
52
+    @PreAuthorize("@ss.hasPermi('oa:budgetCar:export')")
53
+    @Log(title = "cmc车辆预算", businessType = BusinessType.EXPORT)
54
+    @PostMapping("/export")
55
+    public void export(HttpServletResponse response, CmcBudgetCar cmcBudgetCar)
56
+    {
57
+        List<CmcBudgetCar> list = cmcBudgetCarService.selectCmcBudgetCarList(cmcBudgetCar);
58
+        ExcelUtil<CmcBudgetCar> util = new ExcelUtil<CmcBudgetCar>(CmcBudgetCar.class);
59
+        util.exportExcel(response, list, "cmc车辆预算数据");
60
+    }
61
+
62
+    /**
63
+     * 获取cmc车辆预算详细信息
64
+     */
65
+    @PreAuthorize("@ss.hasPermi('oa:budgetCar:query')")
66
+    @GetMapping(value = "/{budgetCarId}")
67
+    public AjaxResult getInfo(@PathVariable("budgetCarId") String budgetCarId)
68
+    {
69
+        return success(cmcBudgetCarService.selectCmcBudgetCarByBudgetCarId(budgetCarId));
70
+    }
71
+
72
+    /**
73
+     * 新增cmc车辆预算
74
+     */
75
+    @PreAuthorize("@ss.hasPermi('oa:budgetCar:add')")
76
+    @Log(title = "cmc车辆预算", businessType = BusinessType.INSERT)
77
+    @PostMapping
78
+    public AjaxResult add(@RequestBody CmcBudgetCar cmcBudgetCar)
79
+    {
80
+        return toAjax(cmcBudgetCarService.insertCmcBudgetCar(cmcBudgetCar));
81
+    }
82
+
83
+    /**
84
+     * 修改cmc车辆预算
85
+     */
86
+    @PreAuthorize("@ss.hasPermi('oa:budgetCar:edit')")
87
+    @Log(title = "cmc车辆预算", businessType = BusinessType.UPDATE)
88
+    @PutMapping
89
+    public AjaxResult edit(@RequestBody CmcBudgetCar cmcBudgetCar)
90
+    {
91
+        return toAjax(cmcBudgetCarService.updateCmcBudgetCar(cmcBudgetCar));
92
+    }
93
+
94
+    /**
95
+     * 删除cmc车辆预算
96
+     */
97
+    @PreAuthorize("@ss.hasPermi('oa:budgetCar:remove')")
98
+    @Log(title = "cmc车辆预算", businessType = BusinessType.DELETE)
99
+	@DeleteMapping("/{budgetCarIds}")
100
+    public AjaxResult remove(@PathVariable String[] budgetCarIds)
101
+    {
102
+        return toAjax(cmcBudgetCarService.deleteCmcBudgetCarByBudgetCarIds(budgetCarIds));
103
+    }
104
+}

+ 104
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcBudgetDeviceController.java View File

1
+package com.ruoyi.web.controller.oa;
2
+
3
+import java.util.List;
4
+import javax.servlet.http.HttpServletResponse;
5
+import org.springframework.security.access.prepost.PreAuthorize;
6
+import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.web.bind.annotation.GetMapping;
8
+import org.springframework.web.bind.annotation.PostMapping;
9
+import org.springframework.web.bind.annotation.PutMapping;
10
+import org.springframework.web.bind.annotation.DeleteMapping;
11
+import org.springframework.web.bind.annotation.PathVariable;
12
+import org.springframework.web.bind.annotation.RequestBody;
13
+import org.springframework.web.bind.annotation.RequestMapping;
14
+import org.springframework.web.bind.annotation.RestController;
15
+import com.ruoyi.common.annotation.Log;
16
+import com.ruoyi.common.core.controller.BaseController;
17
+import com.ruoyi.common.core.domain.AjaxResult;
18
+import com.ruoyi.common.enums.BusinessType;
19
+import com.ruoyi.oa.domain.CmcBudgetDevice;
20
+import com.ruoyi.oa.service.ICmcBudgetDeviceService;
21
+import com.ruoyi.common.utils.poi.ExcelUtil;
22
+import com.ruoyi.common.core.page.TableDataInfo;
23
+
24
+/**
25
+ * cmc设备预算Controller
26
+ * 
27
+ * @author cmc
28
+ * @date 2024-03-22
29
+ */
30
+@RestController
31
+@RequestMapping("/oa/budgetDevice")
32
+public class CmcBudgetDeviceController extends BaseController
33
+{
34
+    @Autowired
35
+    private ICmcBudgetDeviceService cmcBudgetDeviceService;
36
+
37
+    /**
38
+     * 查询cmc设备预算列表
39
+     */
40
+    @PreAuthorize("@ss.hasPermi('oa:budgetDevice:list')")
41
+    @GetMapping("/list")
42
+    public TableDataInfo list(CmcBudgetDevice cmcBudgetDevice)
43
+    {
44
+        startPage();
45
+        List<CmcBudgetDevice> list = cmcBudgetDeviceService.selectCmcBudgetDeviceList(cmcBudgetDevice);
46
+        return getDataTable(list);
47
+    }
48
+
49
+    /**
50
+     * 导出cmc设备预算列表
51
+     */
52
+    @PreAuthorize("@ss.hasPermi('oa:budgetDevice:export')")
53
+    @Log(title = "cmc设备预算", businessType = BusinessType.EXPORT)
54
+    @PostMapping("/export")
55
+    public void export(HttpServletResponse response, CmcBudgetDevice cmcBudgetDevice)
56
+    {
57
+        List<CmcBudgetDevice> list = cmcBudgetDeviceService.selectCmcBudgetDeviceList(cmcBudgetDevice);
58
+        ExcelUtil<CmcBudgetDevice> util = new ExcelUtil<CmcBudgetDevice>(CmcBudgetDevice.class);
59
+        util.exportExcel(response, list, "cmc设备预算数据");
60
+    }
61
+
62
+    /**
63
+     * 获取cmc设备预算详细信息
64
+     */
65
+    @PreAuthorize("@ss.hasPermi('oa:budgetDevice:query')")
66
+    @GetMapping(value = "/{budgetDeviceId}")
67
+    public AjaxResult getInfo(@PathVariable("budgetDeviceId") String budgetDeviceId)
68
+    {
69
+        return success(cmcBudgetDeviceService.selectCmcBudgetDeviceByBudgetDeviceId(budgetDeviceId));
70
+    }
71
+
72
+    /**
73
+     * 新增cmc设备预算
74
+     */
75
+    @PreAuthorize("@ss.hasPermi('oa:budgetDevice:add')")
76
+    @Log(title = "cmc设备预算", businessType = BusinessType.INSERT)
77
+    @PostMapping
78
+    public AjaxResult add(@RequestBody CmcBudgetDevice cmcBudgetDevice)
79
+    {
80
+        return toAjax(cmcBudgetDeviceService.insertCmcBudgetDevice(cmcBudgetDevice));
81
+    }
82
+
83
+    /**
84
+     * 修改cmc设备预算
85
+     */
86
+    @PreAuthorize("@ss.hasPermi('oa:budgetDevice:edit')")
87
+    @Log(title = "cmc设备预算", businessType = BusinessType.UPDATE)
88
+    @PutMapping
89
+    public AjaxResult edit(@RequestBody CmcBudgetDevice cmcBudgetDevice)
90
+    {
91
+        return toAjax(cmcBudgetDeviceService.updateCmcBudgetDevice(cmcBudgetDevice));
92
+    }
93
+
94
+    /**
95
+     * 删除cmc设备预算
96
+     */
97
+    @PreAuthorize("@ss.hasPermi('oa:budgetDevice:remove')")
98
+    @Log(title = "cmc设备预算", businessType = BusinessType.DELETE)
99
+	@DeleteMapping("/{budgetDeviceIds}")
100
+    public AjaxResult remove(@PathVariable String[] budgetDeviceIds)
101
+    {
102
+        return toAjax(cmcBudgetDeviceService.deleteCmcBudgetDeviceByBudgetDeviceIds(budgetDeviceIds));
103
+    }
104
+}

+ 104
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcBudgetSettleController.java View File

1
+package com.ruoyi.web.controller.oa;
2
+
3
+import java.util.List;
4
+import javax.servlet.http.HttpServletResponse;
5
+import org.springframework.security.access.prepost.PreAuthorize;
6
+import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.web.bind.annotation.GetMapping;
8
+import org.springframework.web.bind.annotation.PostMapping;
9
+import org.springframework.web.bind.annotation.PutMapping;
10
+import org.springframework.web.bind.annotation.DeleteMapping;
11
+import org.springframework.web.bind.annotation.PathVariable;
12
+import org.springframework.web.bind.annotation.RequestBody;
13
+import org.springframework.web.bind.annotation.RequestMapping;
14
+import org.springframework.web.bind.annotation.RestController;
15
+import com.ruoyi.common.annotation.Log;
16
+import com.ruoyi.common.core.controller.BaseController;
17
+import com.ruoyi.common.core.domain.AjaxResult;
18
+import com.ruoyi.common.enums.BusinessType;
19
+import com.ruoyi.oa.domain.CmcBudgetSettle;
20
+import com.ruoyi.oa.service.ICmcBudgetSettleService;
21
+import com.ruoyi.common.utils.poi.ExcelUtil;
22
+import com.ruoyi.common.core.page.TableDataInfo;
23
+
24
+/**
25
+ * cmc预结算Controller
26
+ * 
27
+ * @author cmc
28
+ * @date 2024-03-22
29
+ */
30
+@RestController
31
+@RequestMapping("/oa/budgetSettle")
32
+public class CmcBudgetSettleController extends BaseController
33
+{
34
+    @Autowired
35
+    private ICmcBudgetSettleService cmcBudgetSettleService;
36
+
37
+    /**
38
+     * 查询cmc预结算列表
39
+     */
40
+    @PreAuthorize("@ss.hasPermi('oa:budgetSettle:list')")
41
+    @GetMapping("/list")
42
+    public TableDataInfo list(CmcBudgetSettle cmcBudgetSettle)
43
+    {
44
+        startPage();
45
+        List<CmcBudgetSettle> list = cmcBudgetSettleService.selectCmcBudgetSettleList(cmcBudgetSettle);
46
+        return getDataTable(list);
47
+    }
48
+
49
+    /**
50
+     * 导出cmc预结算列表
51
+     */
52
+    @PreAuthorize("@ss.hasPermi('oa:budgetSettle:export')")
53
+    @Log(title = "cmc预结算", businessType = BusinessType.EXPORT)
54
+    @PostMapping("/export")
55
+    public void export(HttpServletResponse response, CmcBudgetSettle cmcBudgetSettle)
56
+    {
57
+        List<CmcBudgetSettle> list = cmcBudgetSettleService.selectCmcBudgetSettleList(cmcBudgetSettle);
58
+        ExcelUtil<CmcBudgetSettle> util = new ExcelUtil<CmcBudgetSettle>(CmcBudgetSettle.class);
59
+        util.exportExcel(response, list, "cmc预结算数据");
60
+    }
61
+
62
+    /**
63
+     * 获取cmc预结算详细信息
64
+     */
65
+    @PreAuthorize("@ss.hasPermi('oa:budgetSettle:query')")
66
+    @GetMapping(value = "/{budgetSettleId}")
67
+    public AjaxResult getInfo(@PathVariable("budgetSettleId") String budgetSettleId)
68
+    {
69
+        return success(cmcBudgetSettleService.selectCmcBudgetSettleByBudgetSettleId(budgetSettleId));
70
+    }
71
+
72
+    /**
73
+     * 新增cmc预结算
74
+     */
75
+    @PreAuthorize("@ss.hasPermi('oa:budgetSettle:add')")
76
+    @Log(title = "cmc预结算", businessType = BusinessType.INSERT)
77
+    @PostMapping
78
+    public AjaxResult add(@RequestBody CmcBudgetSettle cmcBudgetSettle)
79
+    {
80
+        return toAjax(cmcBudgetSettleService.insertCmcBudgetSettle(cmcBudgetSettle));
81
+    }
82
+
83
+    /**
84
+     * 修改cmc预结算
85
+     */
86
+    @PreAuthorize("@ss.hasPermi('oa:budgetSettle:edit')")
87
+    @Log(title = "cmc预结算", businessType = BusinessType.UPDATE)
88
+    @PutMapping
89
+    public AjaxResult edit(@RequestBody CmcBudgetSettle cmcBudgetSettle)
90
+    {
91
+        return toAjax(cmcBudgetSettleService.updateCmcBudgetSettle(cmcBudgetSettle));
92
+    }
93
+
94
+    /**
95
+     * 删除cmc预结算
96
+     */
97
+    @PreAuthorize("@ss.hasPermi('oa:budgetSettle:remove')")
98
+    @Log(title = "cmc预结算", businessType = BusinessType.DELETE)
99
+	@DeleteMapping("/{budgetSettleIds}")
100
+    public AjaxResult remove(@PathVariable String[] budgetSettleIds)
101
+    {
102
+        return toAjax(cmcBudgetSettleService.deleteCmcBudgetSettleByBudgetSettleIds(budgetSettleIds));
103
+    }
104
+}

+ 104
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcBudgetStaffController.java View File

1
+package com.ruoyi.web.controller.oa;
2
+
3
+import java.util.List;
4
+import javax.servlet.http.HttpServletResponse;
5
+import org.springframework.security.access.prepost.PreAuthorize;
6
+import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.web.bind.annotation.GetMapping;
8
+import org.springframework.web.bind.annotation.PostMapping;
9
+import org.springframework.web.bind.annotation.PutMapping;
10
+import org.springframework.web.bind.annotation.DeleteMapping;
11
+import org.springframework.web.bind.annotation.PathVariable;
12
+import org.springframework.web.bind.annotation.RequestBody;
13
+import org.springframework.web.bind.annotation.RequestMapping;
14
+import org.springframework.web.bind.annotation.RestController;
15
+import com.ruoyi.common.annotation.Log;
16
+import com.ruoyi.common.core.controller.BaseController;
17
+import com.ruoyi.common.core.domain.AjaxResult;
18
+import com.ruoyi.common.enums.BusinessType;
19
+import com.ruoyi.oa.domain.CmcBudgetStaff;
20
+import com.ruoyi.oa.service.ICmcBudgetStaffService;
21
+import com.ruoyi.common.utils.poi.ExcelUtil;
22
+import com.ruoyi.common.core.page.TableDataInfo;
23
+
24
+/**
25
+ * cmc人员预算Controller
26
+ * 
27
+ * @author cmc
28
+ * @date 2024-03-22
29
+ */
30
+@RestController
31
+@RequestMapping("/oa/budgetStaff")
32
+public class CmcBudgetStaffController extends BaseController
33
+{
34
+    @Autowired
35
+    private ICmcBudgetStaffService cmcBudgetStaffService;
36
+
37
+    /**
38
+     * 查询cmc人员预算列表
39
+     */
40
+    @PreAuthorize("@ss.hasPermi('oa:budgetStaff:list')")
41
+    @GetMapping("/list")
42
+    public TableDataInfo list(CmcBudgetStaff cmcBudgetStaff)
43
+    {
44
+        startPage();
45
+        List<CmcBudgetStaff> list = cmcBudgetStaffService.selectCmcBudgetStaffList(cmcBudgetStaff);
46
+        return getDataTable(list);
47
+    }
48
+
49
+    /**
50
+     * 导出cmc人员预算列表
51
+     */
52
+    @PreAuthorize("@ss.hasPermi('oa:budgetStaff:export')")
53
+    @Log(title = "cmc人员预算", businessType = BusinessType.EXPORT)
54
+    @PostMapping("/export")
55
+    public void export(HttpServletResponse response, CmcBudgetStaff cmcBudgetStaff)
56
+    {
57
+        List<CmcBudgetStaff> list = cmcBudgetStaffService.selectCmcBudgetStaffList(cmcBudgetStaff);
58
+        ExcelUtil<CmcBudgetStaff> util = new ExcelUtil<CmcBudgetStaff>(CmcBudgetStaff.class);
59
+        util.exportExcel(response, list, "cmc人员预算数据");
60
+    }
61
+
62
+    /**
63
+     * 获取cmc人员预算详细信息
64
+     */
65
+    @PreAuthorize("@ss.hasPermi('oa:budgetStaff:query')")
66
+    @GetMapping(value = "/{budgetStaffId}")
67
+    public AjaxResult getInfo(@PathVariable("budgetStaffId") String budgetStaffId)
68
+    {
69
+        return success(cmcBudgetStaffService.selectCmcBudgetStaffByBudgetStaffId(budgetStaffId));
70
+    }
71
+
72
+    /**
73
+     * 新增cmc人员预算
74
+     */
75
+    @PreAuthorize("@ss.hasPermi('oa:budgetStaff:add')")
76
+    @Log(title = "cmc人员预算", businessType = BusinessType.INSERT)
77
+    @PostMapping
78
+    public AjaxResult add(@RequestBody CmcBudgetStaff cmcBudgetStaff)
79
+    {
80
+        return toAjax(cmcBudgetStaffService.insertCmcBudgetStaff(cmcBudgetStaff));
81
+    }
82
+
83
+    /**
84
+     * 修改cmc人员预算
85
+     */
86
+    @PreAuthorize("@ss.hasPermi('oa:budgetStaff:edit')")
87
+    @Log(title = "cmc人员预算", businessType = BusinessType.UPDATE)
88
+    @PutMapping
89
+    public AjaxResult edit(@RequestBody CmcBudgetStaff cmcBudgetStaff)
90
+    {
91
+        return toAjax(cmcBudgetStaffService.updateCmcBudgetStaff(cmcBudgetStaff));
92
+    }
93
+
94
+    /**
95
+     * 删除cmc人员预算
96
+     */
97
+    @PreAuthorize("@ss.hasPermi('oa:budgetStaff:remove')")
98
+    @Log(title = "cmc人员预算", businessType = BusinessType.DELETE)
99
+	@DeleteMapping("/{budgetStaffIds}")
100
+    public AjaxResult remove(@PathVariable String[] budgetStaffIds)
101
+    {
102
+        return toAjax(cmcBudgetStaffService.deleteCmcBudgetStaffByBudgetStaffIds(budgetStaffIds));
103
+    }
104
+}

+ 3
- 25
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcCarApprovalController.java View File

71
     @GetMapping(value = "/{carApplyId}")
71
     @GetMapping(value = "/{carApplyId}")
72
     public AjaxResult getInfo(@PathVariable("carApplyId") String carApplyId)
72
     public AjaxResult getInfo(@PathVariable("carApplyId") String carApplyId)
73
     {
73
     {
74
-        JSONObject formData = new JSONObject();
75
-        CmcCarApproval cmcCarApproval = cmcCarApprovalService.selectCmcCarApprovalByCarApplyId(carApplyId);
76
-        if (cmcCarApproval != null) {
77
-            formData.put("user", userService.selectUserById(cmcCarApproval.getApplier()).getNickName());
78
-            formData.put("deptName", deptService.selectDeptById(userService.selectUserById(cmcCarApproval.getApplier()).getDeptId()).getDeptName());
79
-            formData.put("applyDate", cmcCarApproval.getApplyDate());
80
-            formData.put("beginDate", cmcCarApproval.getBeginDate());
81
-            formData.put("endDate", cmcCarApproval.getEndDate());
82
-            formData.put("days", cmcCarApproval.getDays());
83
-            formData.put("passengers", cmcCarApproval.getPassengers());
84
-            formData.put("projectNumber", cmcCarApproval.getProjectId());
85
-            formData.put("applyReason", cmcCarApproval.getApplyReason());
86
-            formData.put("deptUser", cmcCarApproval.getDeptUserId());
87
-            formData.put("deptComment", cmcCarApproval.getDeptComment());
88
-            formData.put("managerUser", cmcCarApproval.getManagerUserId());
89
-            formData.put("managerComment", cmcCarApproval.getManagerComment());
90
-            formData.put("unionUser", cmcCarApproval.getUnionUserId());
91
-            formData.put("unionComment", cmcCarApproval.getUnionComment());
92
-            formData.put("dispatcher", cmcCarApproval.getDispatcher());
93
-            formData.put("dispatchComment", cmcCarApproval.getDispatchComment());
94
-            formData.put("cars", cmcCarApproval.getCars());
95
-            formData.put("drivers", cmcCarApproval.getDrivers());
96
-        }
97
-        return success(formData);
74
+        return success(cmcCarApprovalService.selectCmcCarApprovalByCarApplyId(carApplyId));
98
     }
75
     }
99
 
76
 
100
     /**
77
     /**
118
         CmcCarApproval cmcCarApproval = new CmcCarApproval();
95
         CmcCarApproval cmcCarApproval = new CmcCarApproval();
119
         cmcCarApproval.setCarApplyId(formDataJson.getString("formId"));
96
         cmcCarApproval.setCarApplyId(formDataJson.getString("formId"));
120
         cmcCarApproval.setApplier(getLoginUser().getUserId());
97
         cmcCarApproval.setApplier(getLoginUser().getUserId());
98
+        cmcCarApproval.setUseDept(getLoginUser().getDeptId());
121
         cmcCarApproval.setApplyDate(DateUtils.getNowDate());
99
         cmcCarApproval.setApplyDate(DateUtils.getNowDate());
122
-        cmcCarApproval.setProjectId(formDataJson.getString("projectNumber"));
100
+        cmcCarApproval.setProjectId(formDataJson.getString("projectId"));
123
         cmcCarApproval.setApplyReason(formDataJson.getString("applyReason"));
101
         cmcCarApproval.setApplyReason(formDataJson.getString("applyReason"));
124
         cmcCarApproval.setPassengers(formDataJson.getInteger("passengers"));
102
         cmcCarApproval.setPassengers(formDataJson.getInteger("passengers"));
125
         cmcCarApproval.setBeginDate(formDataJson.getDate("beginDate"));
103
         cmcCarApproval.setBeginDate(formDataJson.getDate("beginDate"));

+ 3
- 30
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcDeviceApprovalController.java View File

8
 import com.ruoyi.common.utils.DateUtils;
8
 import com.ruoyi.common.utils.DateUtils;
9
 import com.ruoyi.oa.domain.*;
9
 import com.ruoyi.oa.domain.*;
10
 import com.ruoyi.oa.service.ICmcDeviceService;
10
 import com.ruoyi.oa.service.ICmcDeviceService;
11
-import com.ruoyi.system.service.ISysDeptService;
12
-import com.ruoyi.system.service.ISysUserService;
13
 import org.springframework.beans.factory.annotation.Autowired;
11
 import org.springframework.beans.factory.annotation.Autowired;
14
 import org.springframework.web.bind.annotation.*;
12
 import org.springframework.web.bind.annotation.*;
15
 import com.ruoyi.common.annotation.Log;
13
 import com.ruoyi.common.annotation.Log;
37
     @Autowired
35
     @Autowired
38
     private ICmcDeviceService cmcDeviceService;
36
     private ICmcDeviceService cmcDeviceService;
39
 
37
 
40
-    @Autowired
41
-    private ISysUserService userService;
42
-
43
-    @Autowired
44
-    private ISysDeptService deptService;
45
-
46
     /**
38
     /**
47
      * 查询cmc设备审批列表
39
      * 查询cmc设备审批列表
48
      */
40
      */
72
     @GetMapping(value = "/{deviceApplyId}")
64
     @GetMapping(value = "/{deviceApplyId}")
73
     public AjaxResult getInfo(@PathVariable("deviceApplyId") String deviceApplyId)
65
     public AjaxResult getInfo(@PathVariable("deviceApplyId") String deviceApplyId)
74
     {
66
     {
75
-        JSONObject formData = new JSONObject();
76
-        CmcDeviceApproval cmcDeviceApproval = cmcDeviceApprovalService.selectCmcDeviceApprovalByDeviceApplyId(deviceApplyId);
77
-        if (cmcDeviceApproval != null) {
78
-            formData.put("user", userService.selectUserById(cmcDeviceApproval.getApplier()).getNickName());
79
-            formData.put("deptName", deptService.selectDeptById(userService.selectUserById(cmcDeviceApproval.getApplier()).getDeptId()).getDeptName());
80
-            formData.put("applyDate", cmcDeviceApproval.getApplyDate());
81
-            formData.put("beginDate", cmcDeviceApproval.getBeginDate());
82
-            formData.put("endDate", cmcDeviceApproval.getEndDate());
83
-            formData.put("days", cmcDeviceApproval.getDays());
84
-            formData.put("projectNumber", cmcDeviceApproval.getProjectId());
85
-            formData.put("applyReason", cmcDeviceApproval.getApplyReason());
86
-            formData.put("deptUser", cmcDeviceApproval.getDeptUserId());
87
-            formData.put("deptComment", cmcDeviceApproval.getDeptComment());
88
-            formData.put("managerUser", cmcDeviceApproval.getManagerUserId());
89
-            formData.put("managerComment", cmcDeviceApproval.getManagerComment());
90
-            formData.put("dispatcher", cmcDeviceApproval.getDispatcher());
91
-            formData.put("dispatchComment", cmcDeviceApproval.getDispatchComment());
92
-            formData.put("devices", cmcDeviceApproval.getDevices());
93
-        }
94
-        return success(formData);
67
+        return success(cmcDeviceApprovalService.selectCmcDeviceApprovalByDeviceApplyId(deviceApplyId));
95
     }
68
     }
96
 
69
 
97
     /**
70
     /**
115
         CmcDeviceApproval cmcDeviceApproval = new CmcDeviceApproval();
88
         CmcDeviceApproval cmcDeviceApproval = new CmcDeviceApproval();
116
         cmcDeviceApproval.setDeviceApplyId(formDataJson.getString("formId"));
89
         cmcDeviceApproval.setDeviceApplyId(formDataJson.getString("formId"));
117
         cmcDeviceApproval.setApplier(getLoginUser().getUserId());
90
         cmcDeviceApproval.setApplier(getLoginUser().getUserId());
118
-        cmcDeviceApproval.setDept(getLoginUser().getDeptId());
91
+        cmcDeviceApproval.setUseDept(getLoginUser().getDeptId());
119
         cmcDeviceApproval.setApplyDate(DateUtils.getNowDate());
92
         cmcDeviceApproval.setApplyDate(DateUtils.getNowDate());
120
-        cmcDeviceApproval.setProjectId(formDataJson.getString("projectNumber"));
93
+        cmcDeviceApproval.setProjectId(formDataJson.getString("projectId"));
121
         cmcDeviceApproval.setApplyReason(formDataJson.getString("applyReason"));
94
         cmcDeviceApproval.setApplyReason(formDataJson.getString("applyReason"));
122
         cmcDeviceApproval.setBeginDate(formDataJson.getDate("beginDate"));
95
         cmcDeviceApproval.setBeginDate(formDataJson.getDate("beginDate"));
123
         cmcDeviceApproval.setEndDate(formDataJson.getDate("endDate"));
96
         cmcDeviceApproval.setEndDate(formDataJson.getDate("endDate"));

+ 104
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcPostSalaryController.java View File

1
+package com.ruoyi.web.controller.oa;
2
+
3
+import java.util.List;
4
+import javax.servlet.http.HttpServletResponse;
5
+import org.springframework.security.access.prepost.PreAuthorize;
6
+import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.web.bind.annotation.GetMapping;
8
+import org.springframework.web.bind.annotation.PostMapping;
9
+import org.springframework.web.bind.annotation.PutMapping;
10
+import org.springframework.web.bind.annotation.DeleteMapping;
11
+import org.springframework.web.bind.annotation.PathVariable;
12
+import org.springframework.web.bind.annotation.RequestBody;
13
+import org.springframework.web.bind.annotation.RequestMapping;
14
+import org.springframework.web.bind.annotation.RestController;
15
+import com.ruoyi.common.annotation.Log;
16
+import com.ruoyi.common.core.controller.BaseController;
17
+import com.ruoyi.common.core.domain.AjaxResult;
18
+import com.ruoyi.common.enums.BusinessType;
19
+import com.ruoyi.common.core.domain.entity.CmcPostSalary;
20
+import com.ruoyi.oa.service.ICmcPostSalaryService;
21
+import com.ruoyi.common.utils.poi.ExcelUtil;
22
+import com.ruoyi.common.core.page.TableDataInfo;
23
+
24
+/**
25
+ * cmc岗位工资Controller
26
+ * 
27
+ * @author cmc
28
+ * @date 2024-03-25
29
+ */
30
+@RestController
31
+@RequestMapping("/oa/salary")
32
+public class CmcPostSalaryController extends BaseController
33
+{
34
+    @Autowired
35
+    private ICmcPostSalaryService cmcPostSalaryService;
36
+
37
+    /**
38
+     * 查询cmc岗位工资列表
39
+     */
40
+    @PreAuthorize("@ss.hasPermi('oa:salary:list')")
41
+    @GetMapping("/list")
42
+    public TableDataInfo list(CmcPostSalary cmcPostSalary)
43
+    {
44
+        startPage();
45
+        List<CmcPostSalary> list = cmcPostSalaryService.selectCmcPostSalaryList(cmcPostSalary);
46
+        return getDataTable(list);
47
+    }
48
+
49
+    /**
50
+     * 导出cmc岗位工资列表
51
+     */
52
+    @PreAuthorize("@ss.hasPermi('oa:salary:export')")
53
+    @Log(title = "cmc岗位工资", businessType = BusinessType.EXPORT)
54
+    @PostMapping("/export")
55
+    public void export(HttpServletResponse response, CmcPostSalary cmcPostSalary)
56
+    {
57
+        List<CmcPostSalary> list = cmcPostSalaryService.selectCmcPostSalaryList(cmcPostSalary);
58
+        ExcelUtil<CmcPostSalary> util = new ExcelUtil<CmcPostSalary>(CmcPostSalary.class);
59
+        util.exportExcel(response, list, "cmc岗位工资数据");
60
+    }
61
+
62
+    /**
63
+     * 获取cmc岗位工资详细信息
64
+     */
65
+    @PreAuthorize("@ss.hasPermi('oa:salary:query')")
66
+    @GetMapping(value = "/{salaryId}")
67
+    public AjaxResult getInfo(@PathVariable("salaryId") Integer salaryId)
68
+    {
69
+        return success(cmcPostSalaryService.selectCmcPostSalaryBySalaryId(salaryId));
70
+    }
71
+
72
+    /**
73
+     * 新增cmc岗位工资
74
+     */
75
+    @PreAuthorize("@ss.hasPermi('oa:salary:add')")
76
+    @Log(title = "cmc岗位工资", businessType = BusinessType.INSERT)
77
+    @PostMapping
78
+    public AjaxResult add(@RequestBody CmcPostSalary cmcPostSalary)
79
+    {
80
+        return toAjax(cmcPostSalaryService.insertCmcPostSalary(cmcPostSalary));
81
+    }
82
+
83
+    /**
84
+     * 修改cmc岗位工资
85
+     */
86
+    @PreAuthorize("@ss.hasPermi('oa:salary:edit')")
87
+    @Log(title = "cmc岗位工资", businessType = BusinessType.UPDATE)
88
+    @PutMapping
89
+    public AjaxResult edit(@RequestBody CmcPostSalary cmcPostSalary)
90
+    {
91
+        return toAjax(cmcPostSalaryService.updateCmcPostSalary(cmcPostSalary));
92
+    }
93
+
94
+    /**
95
+     * 删除cmc岗位工资
96
+     */
97
+    @PreAuthorize("@ss.hasPermi('oa:salary:remove')")
98
+    @Log(title = "cmc岗位工资", businessType = BusinessType.DELETE)
99
+	@DeleteMapping("/{salaryIds}")
100
+    public AjaxResult remove(@PathVariable Integer[] salaryIds)
101
+    {
102
+        return toAjax(cmcPostSalaryService.deleteCmcPostSalaryBySalaryIds(salaryIds));
103
+    }
104
+}

+ 80
- 0
oa-back/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/CmcPostSalary.java View File

1
+package com.ruoyi.common.core.domain.entity;
2
+
3
+import java.math.BigDecimal;
4
+import org.apache.commons.lang3.builder.ToStringBuilder;
5
+import org.apache.commons.lang3.builder.ToStringStyle;
6
+import com.ruoyi.common.annotation.Excel;
7
+import com.ruoyi.common.core.domain.BaseEntity;
8
+
9
+/**
10
+ * cmc岗位工资对象 cmc_post_salary
11
+ *
12
+ * @author cmc
13
+ * @date 2024-03-25
14
+ */
15
+public class CmcPostSalary extends BaseEntity
16
+{
17
+    private static final long serialVersionUID = 1L;
18
+
19
+    /** 成本id */
20
+    private Integer salaryId;
21
+
22
+    /** 岗级 */
23
+    @Excel(name = "岗级")
24
+    private String postLevel;
25
+
26
+    /** 薪档 */
27
+    @Excel(name = "薪档")
28
+    private String salaryLevel;
29
+
30
+    /** 月薪 */
31
+    @Excel(name = "月薪")
32
+    private BigDecimal salary;
33
+
34
+    public void setSalaryId(Integer salaryId)
35
+    {
36
+        this.salaryId = salaryId;
37
+    }
38
+
39
+    public Integer getSalaryId()
40
+    {
41
+        return salaryId;
42
+    }
43
+    public void setPostLevel(String postLevel)
44
+    {
45
+        this.postLevel = postLevel;
46
+    }
47
+
48
+    public String getPostLevel()
49
+    {
50
+        return postLevel;
51
+    }
52
+    public void setSalaryLevel(String salaryLevel)
53
+    {
54
+        this.salaryLevel = salaryLevel;
55
+    }
56
+
57
+    public String getSalaryLevel()
58
+    {
59
+        return salaryLevel;
60
+    }
61
+    public void setSalary(BigDecimal salary)
62
+    {
63
+        this.salary = salary;
64
+    }
65
+
66
+    public BigDecimal getSalary()
67
+    {
68
+        return salary;
69
+    }
70
+
71
+    @Override
72
+    public String toString() {
73
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
74
+                .append("salaryId", getSalaryId())
75
+                .append("postLevel", getPostLevel())
76
+                .append("salaryLevel", getSalaryLevel())
77
+                .append("salary", getSalary())
78
+                .toString();
79
+    }
80
+}

+ 13
- 0
oa-back/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java View File

3
 import java.util.Date;
3
 import java.util.Date;
4
 import java.util.List;
4
 import java.util.List;
5
 import javax.validation.constraints.*;
5
 import javax.validation.constraints.*;
6
+
6
 import org.apache.commons.lang3.builder.ToStringBuilder;
7
 import org.apache.commons.lang3.builder.ToStringBuilder;
7
 import org.apache.commons.lang3.builder.ToStringStyle;
8
 import org.apache.commons.lang3.builder.ToStringStyle;
8
 import com.ruoyi.common.annotation.Excel;
9
 import com.ruoyi.common.annotation.Excel;
117
     })
118
     })
118
     private SysDept dept;
119
     private SysDept dept;
119
 
120
 
121
+    private CmcPostSalary salary;
122
+
120
     /** 角色对象 */
123
     /** 角色对象 */
121
     private List<SysRole> roles;
124
     private List<SysRole> roles;
122
 
125
 
392
         this.dept = dept;
395
         this.dept = dept;
393
     }
396
     }
394
 
397
 
398
+    public CmcPostSalary getSalary()
399
+    {
400
+        return salary;
401
+    }
402
+
403
+    public void setSalary(CmcPostSalary salary)
404
+    {
405
+        this.salary = salary;
406
+    }
407
+
395
     public List<SysRole> getRoles()
408
     public List<SysRole> getRoles()
396
     {
409
     {
397
         return roles;
410
         return roles;

+ 48
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcCarApproval.java View File

3
 import java.math.BigDecimal;
3
 import java.math.BigDecimal;
4
 import java.util.Date;
4
 import java.util.Date;
5
 import com.fasterxml.jackson.annotation.JsonFormat;
5
 import com.fasterxml.jackson.annotation.JsonFormat;
6
+import com.ruoyi.common.core.domain.entity.SysDept;
7
+import com.ruoyi.common.core.domain.entity.SysUser;
6
 import org.apache.commons.lang3.builder.ToStringBuilder;
8
 import org.apache.commons.lang3.builder.ToStringBuilder;
7
 import org.apache.commons.lang3.builder.ToStringStyle;
9
 import org.apache.commons.lang3.builder.ToStringStyle;
8
 import com.ruoyi.common.annotation.Excel;
10
 import com.ruoyi.common.annotation.Excel;
25
     @Excel(name = "申请人")
27
     @Excel(name = "申请人")
26
     private Long applier;
28
     private Long applier;
27
 
29
 
30
+    private SysUser user;
31
+
32
+    /** 使用部门 */
33
+    @Excel(name = "使用部门")
34
+    private Long useDept;
35
+
36
+    private SysDept dept;
37
+
28
     /** 车辆id */
38
     /** 车辆id */
29
     @Excel(name = "车辆id")
39
     @Excel(name = "车辆id")
30
     private String cars;
40
     private String cars;
37
     @Excel(name = "项目编号")
47
     @Excel(name = "项目编号")
38
     private String projectId;
48
     private String projectId;
39
 
49
 
50
+    private CmcProject project;
51
+
40
     /** 用车事由 */
52
     /** 用车事由 */
41
     @Excel(name = "用车事由")
53
     @Excel(name = "用车事由")
42
     private String applyReason;
54
     private String applyReason;
126
     {
138
     {
127
         return applier;
139
         return applier;
128
     }
140
     }
141
+    public void setUser(SysUser user)
142
+    {
143
+        this.user = user;
144
+    }
145
+
146
+    public SysUser getUser()
147
+    {
148
+        return user;
149
+    }
150
+    public void setUseDept(Long useDept)
151
+    {
152
+        this.useDept = useDept;
153
+    }
154
+
155
+    public Long getUseDept()
156
+    {
157
+        return useDept;
158
+    }
159
+    public void setDept(SysDept dept)
160
+    {
161
+        this.dept = dept;
162
+    }
163
+
164
+    public SysDept getDept()
165
+    {
166
+        return dept;
167
+    }
129
     public void setCars(String cars)
168
     public void setCars(String cars)
130
     {
169
     {
131
         this.cars = cars;
170
         this.cars = cars;
153
     {
192
     {
154
         return projectId;
193
         return projectId;
155
     }
194
     }
195
+    public void setProject(CmcProject project)
196
+    {
197
+        this.project = project;
198
+    }
199
+
200
+    public CmcProject getProject()
201
+    {
202
+        return project;
203
+    }
156
     public void setApplyReason(String applyReason)
204
     public void setApplyReason(String applyReason)
157
     {
205
     {
158
         this.applyReason = applyReason;
206
         this.applyReason = applyReason;

+ 8
- 7
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcDevice.java View File

3
 import java.math.BigDecimal;
3
 import java.math.BigDecimal;
4
 import java.util.Date;
4
 import java.util.Date;
5
 import com.fasterxml.jackson.annotation.JsonFormat;
5
 import com.fasterxml.jackson.annotation.JsonFormat;
6
+import com.ruoyi.common.core.domain.entity.SysDept;
6
 import org.apache.commons.lang3.builder.ToStringBuilder;
7
 import org.apache.commons.lang3.builder.ToStringBuilder;
7
 import org.apache.commons.lang3.builder.ToStringStyle;
8
 import org.apache.commons.lang3.builder.ToStringStyle;
8
 import com.ruoyi.common.annotation.Excel;
9
 import com.ruoyi.common.annotation.Excel;
79
     @Excel(name = "保修期", readConverterExp = "月=")
80
     @Excel(name = "保修期", readConverterExp = "月=")
80
     private Integer warranty;
81
     private Integer warranty;
81
 
82
 
82
-    /** 管理部门 */
83
-    @Excel(name = "管理部门")
83
+    /** 管理部门id */
84
+    @Excel(name = "管理部门id")
84
     private Long manageDept;
85
     private Long manageDept;
85
 
86
 
86
     /** 管理部门 */
87
     /** 管理部门 */
87
     @Excel(name = "管理部门")
88
     @Excel(name = "管理部门")
88
-    private String manageDeptName;
89
+    private SysDept dept;
89
 
90
 
90
     public void setDeviceId(Integer deviceId)
91
     public void setDeviceId(Integer deviceId)
91
     {
92
     {
231
     {
232
     {
232
         return manageDept;
233
         return manageDept;
233
     }
234
     }
234
-    public void setManageDeptName(String manageDeptName)
235
+    public void setDept(SysDept dept)
235
     {
236
     {
236
-        this.manageDeptName = manageDeptName;
237
+        this.dept = dept;
237
     }
238
     }
238
 
239
 
239
-    public String getManageDeptName()
240
+    public SysDept getDept()
240
     {
241
     {
241
-        return manageDeptName;
242
+        return dept;
242
     }
243
     }
243
 
244
 
244
     @Override
245
     @Override

+ 36
- 25
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcDeviceApproval.java View File

3
 import java.math.BigDecimal;
3
 import java.math.BigDecimal;
4
 import java.util.Date;
4
 import java.util.Date;
5
 import com.fasterxml.jackson.annotation.JsonFormat;
5
 import com.fasterxml.jackson.annotation.JsonFormat;
6
+import com.ruoyi.common.core.domain.entity.SysDept;
7
+import com.ruoyi.common.core.domain.entity.SysUser;
8
+import com.ruoyi.system.domain.SysDeployForm;
6
 import org.apache.commons.lang3.builder.ToStringBuilder;
9
 import org.apache.commons.lang3.builder.ToStringBuilder;
7
 import org.apache.commons.lang3.builder.ToStringStyle;
10
 import org.apache.commons.lang3.builder.ToStringStyle;
8
 import com.ruoyi.common.annotation.Excel;
11
 import com.ruoyi.common.annotation.Excel;
25
     @Excel(name = "申请人")
28
     @Excel(name = "申请人")
26
     private Long applier;
29
     private Long applier;
27
 
30
 
31
+    private SysUser user;
32
+
28
     /** 使用部门 */
33
     /** 使用部门 */
29
     @Excel(name = "使用部门")
34
     @Excel(name = "使用部门")
30
-    private Long dept;
35
+    private Long useDept;
36
+
37
+    private SysDept dept;
31
 
38
 
32
     /** 设备id */
39
     /** 设备id */
33
     @Excel(name = "设备id")
40
     @Excel(name = "设备id")
37
     @Excel(name = "项目id")
44
     @Excel(name = "项目id")
38
     private String projectId;
45
     private String projectId;
39
 
46
 
40
-    /** 项目编号 */
41
-    @Excel(name = "项目编号")
42
-    private String projectNumber;
43
-
44
-    /** 项目名称 */
45
-    @Excel(name = "项目名称")
46
-    private String projectName;
47
+    private CmcProject project;
47
 
48
 
48
     /** 申领事由 */
49
     /** 申领事由 */
49
     @Excel(name = "申领事由")
50
     @Excel(name = "申领事由")
118
     {
119
     {
119
         return deviceApplyId;
120
         return deviceApplyId;
120
     }
121
     }
121
-    public void setApplier(Long applier) 
122
+    public void setApplier(Long applier)
122
     {
123
     {
123
         this.applier = applier;
124
         this.applier = applier;
124
     }
125
     }
125
 
126
 
126
-    public Long getApplier() 
127
+    public Long getApplier()
127
     {
128
     {
128
         return applier;
129
         return applier;
129
     }
130
     }
130
-    public void setDept(Long dept)
131
+
132
+    public void setUser(SysUser user)
133
+    {
134
+        this.user = user;
135
+    }
136
+
137
+    public SysUser getUser()
138
+    {
139
+        return user;
140
+    }
141
+    public void setUseDept(Long useDept)
142
+    {
143
+        this.useDept = useDept;
144
+    }
145
+
146
+    public Long getUseDept()
147
+    {
148
+        return useDept;
149
+    }
150
+    public void setDept(SysDept dept)
131
     {
151
     {
132
         this.dept = dept;
152
         this.dept = dept;
133
     }
153
     }
134
 
154
 
135
-    public Long getDept()
155
+    public SysDept getDept()
136
     {
156
     {
137
         return dept;
157
         return dept;
138
     }
158
     }
154
     {
174
     {
155
         return projectId;
175
         return projectId;
156
     }
176
     }
157
-    public void setProjectNumber(String projectNumber)
158
-    {
159
-        this.projectNumber = projectNumber;
160
-    }
161
-
162
-    public String getProjectNumber()
163
-    {
164
-        return projectNumber;
165
-    }
166
-    public void setProjectName(String projectName)
177
+    public void setProject(CmcProject project)
167
     {
178
     {
168
-        this.projectName = projectName;
179
+        this.project = project;
169
     }
180
     }
170
 
181
 
171
-    public String getProjectName()
182
+    public CmcProject getProject()
172
     {
183
     {
173
-        return projectName;
184
+        return project;
174
     }
185
     }
175
     public void setApplyReason(String applyReason) 
186
     public void setApplyReason(String applyReason) 
176
     {
187
     {

+ 61
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcPostSalaryMapper.java View File

1
+package com.ruoyi.oa.mapper;
2
+
3
+import java.util.List;
4
+import com.ruoyi.common.core.domain.entity.CmcPostSalary;
5
+
6
+/**
7
+ * cmc岗位工资Mapper接口
8
+ * 
9
+ * @author cmc
10
+ * @date 2024-03-25
11
+ */
12
+public interface CmcPostSalaryMapper 
13
+{
14
+    /**
15
+     * 查询cmc岗位工资
16
+     * 
17
+     * @param salaryId cmc岗位工资主键
18
+     * @return cmc岗位工资
19
+     */
20
+    public CmcPostSalary selectCmcPostSalaryBySalaryId(Integer salaryId);
21
+
22
+    /**
23
+     * 查询cmc岗位工资列表
24
+     * 
25
+     * @param cmcPostSalary cmc岗位工资
26
+     * @return cmc岗位工资集合
27
+     */
28
+    public List<CmcPostSalary> selectCmcPostSalaryList(CmcPostSalary cmcPostSalary);
29
+
30
+    /**
31
+     * 新增cmc岗位工资
32
+     * 
33
+     * @param cmcPostSalary cmc岗位工资
34
+     * @return 结果
35
+     */
36
+    public int insertCmcPostSalary(CmcPostSalary cmcPostSalary);
37
+
38
+    /**
39
+     * 修改cmc岗位工资
40
+     * 
41
+     * @param cmcPostSalary cmc岗位工资
42
+     * @return 结果
43
+     */
44
+    public int updateCmcPostSalary(CmcPostSalary cmcPostSalary);
45
+
46
+    /**
47
+     * 删除cmc岗位工资
48
+     * 
49
+     * @param salaryId cmc岗位工资主键
50
+     * @return 结果
51
+     */
52
+    public int deleteCmcPostSalaryBySalaryId(Integer salaryId);
53
+
54
+    /**
55
+     * 批量删除cmc岗位工资
56
+     * 
57
+     * @param salaryIds 需要删除的数据主键集合
58
+     * @return 结果
59
+     */
60
+    public int deleteCmcPostSalaryBySalaryIds(Integer[] salaryIds);
61
+}

+ 61
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcPostSalaryService.java View File

1
+package com.ruoyi.oa.service;
2
+
3
+import java.util.List;
4
+import com.ruoyi.common.core.domain.entity.CmcPostSalary;
5
+
6
+/**
7
+ * cmc岗位工资Service接口
8
+ * 
9
+ * @author cmc
10
+ * @date 2024-03-25
11
+ */
12
+public interface ICmcPostSalaryService 
13
+{
14
+    /**
15
+     * 查询cmc岗位工资
16
+     * 
17
+     * @param salaryId cmc岗位工资主键
18
+     * @return cmc岗位工资
19
+     */
20
+    public CmcPostSalary selectCmcPostSalaryBySalaryId(Integer salaryId);
21
+
22
+    /**
23
+     * 查询cmc岗位工资列表
24
+     * 
25
+     * @param cmcPostSalary cmc岗位工资
26
+     * @return cmc岗位工资集合
27
+     */
28
+    public List<CmcPostSalary> selectCmcPostSalaryList(CmcPostSalary cmcPostSalary);
29
+
30
+    /**
31
+     * 新增cmc岗位工资
32
+     * 
33
+     * @param cmcPostSalary cmc岗位工资
34
+     * @return 结果
35
+     */
36
+    public int insertCmcPostSalary(CmcPostSalary cmcPostSalary);
37
+
38
+    /**
39
+     * 修改cmc岗位工资
40
+     * 
41
+     * @param cmcPostSalary cmc岗位工资
42
+     * @return 结果
43
+     */
44
+    public int updateCmcPostSalary(CmcPostSalary cmcPostSalary);
45
+
46
+    /**
47
+     * 批量删除cmc岗位工资
48
+     * 
49
+     * @param salaryIds 需要删除的cmc岗位工资主键集合
50
+     * @return 结果
51
+     */
52
+    public int deleteCmcPostSalaryBySalaryIds(Integer[] salaryIds);
53
+
54
+    /**
55
+     * 删除cmc岗位工资信息
56
+     * 
57
+     * @param salaryId cmc岗位工资主键
58
+     * @return 结果
59
+     */
60
+    public int deleteCmcPostSalaryBySalaryId(Integer salaryId);
61
+}

+ 93
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcPostSalaryServiceImpl.java View File

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.CmcPostSalaryMapper;
7
+import com.ruoyi.common.core.domain.entity.CmcPostSalary;
8
+import com.ruoyi.oa.service.ICmcPostSalaryService;
9
+
10
+/**
11
+ * cmc岗位工资Service业务层处理
12
+ * 
13
+ * @author cmc
14
+ * @date 2024-03-25
15
+ */
16
+@Service
17
+public class CmcPostSalaryServiceImpl implements ICmcPostSalaryService 
18
+{
19
+    @Autowired
20
+    private CmcPostSalaryMapper cmcPostSalaryMapper;
21
+
22
+    /**
23
+     * 查询cmc岗位工资
24
+     * 
25
+     * @param salaryId cmc岗位工资主键
26
+     * @return cmc岗位工资
27
+     */
28
+    @Override
29
+    public CmcPostSalary selectCmcPostSalaryBySalaryId(Integer salaryId)
30
+    {
31
+        return cmcPostSalaryMapper.selectCmcPostSalaryBySalaryId(salaryId);
32
+    }
33
+
34
+    /**
35
+     * 查询cmc岗位工资列表
36
+     * 
37
+     * @param cmcPostSalary cmc岗位工资
38
+     * @return cmc岗位工资
39
+     */
40
+    @Override
41
+    public List<CmcPostSalary> selectCmcPostSalaryList(CmcPostSalary cmcPostSalary)
42
+    {
43
+        return cmcPostSalaryMapper.selectCmcPostSalaryList(cmcPostSalary);
44
+    }
45
+
46
+    /**
47
+     * 新增cmc岗位工资
48
+     * 
49
+     * @param cmcPostSalary cmc岗位工资
50
+     * @return 结果
51
+     */
52
+    @Override
53
+    public int insertCmcPostSalary(CmcPostSalary cmcPostSalary)
54
+    {
55
+        return cmcPostSalaryMapper.insertCmcPostSalary(cmcPostSalary);
56
+    }
57
+
58
+    /**
59
+     * 修改cmc岗位工资
60
+     * 
61
+     * @param cmcPostSalary cmc岗位工资
62
+     * @return 结果
63
+     */
64
+    @Override
65
+    public int updateCmcPostSalary(CmcPostSalary cmcPostSalary)
66
+    {
67
+        return cmcPostSalaryMapper.updateCmcPostSalary(cmcPostSalary);
68
+    }
69
+
70
+    /**
71
+     * 批量删除cmc岗位工资
72
+     * 
73
+     * @param salaryIds 需要删除的cmc岗位工资主键
74
+     * @return 结果
75
+     */
76
+    @Override
77
+    public int deleteCmcPostSalaryBySalaryIds(Integer[] salaryIds)
78
+    {
79
+        return cmcPostSalaryMapper.deleteCmcPostSalaryBySalaryIds(salaryIds);
80
+    }
81
+
82
+    /**
83
+     * 删除cmc岗位工资信息
84
+     * 
85
+     * @param salaryId cmc岗位工资主键
86
+     * @return 结果
87
+     */
88
+    @Override
89
+    public int deleteCmcPostSalaryBySalaryId(Integer salaryId)
90
+    {
91
+        return cmcPostSalaryMapper.deleteCmcPostSalaryBySalaryId(salaryId);
92
+    }
93
+}

+ 49
- 22
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcCarApprovalMapper.xml View File

7
     <resultMap type="CmcCarApproval" id="CmcCarApprovalResult">
7
     <resultMap type="CmcCarApproval" id="CmcCarApprovalResult">
8
         <result property="carApplyId"    column="car_apply_id"    />
8
         <result property="carApplyId"    column="car_apply_id"    />
9
         <result property="applier"    column="applier"    />
9
         <result property="applier"    column="applier"    />
10
+        <result property="useDept"    column="use_dept"    />
10
         <result property="cars"    column="cars"    />
11
         <result property="cars"    column="cars"    />
11
         <result property="drivers"    column="drivers"    />
12
         <result property="drivers"    column="drivers"    />
12
         <result property="projectId"    column="project_id"    />
13
         <result property="projectId"    column="project_id"    />
27
         <result property="dispatcher"    column="dispatcher"    />
28
         <result property="dispatcher"    column="dispatcher"    />
28
         <result property="dispatchComment"    column="dispatch_comment"    />
29
         <result property="dispatchComment"    column="dispatch_comment"    />
29
         <result property="estimateCost"    column="estimate_cost"    />
30
         <result property="estimateCost"    column="estimate_cost"    />
31
+        <association property="user"    javaType="SysUser"         resultMap="SysUserResult" />
32
+        <association property="dept"    javaType="SysDept"         resultMap="SysDeptResult" />
33
+        <association property="project"    javaType="CmcProject"         resultMap="CmcProjectResult" />
34
+    </resultMap>
35
+
36
+    <resultMap type="SysUser" id="SysUserResult">
37
+        <result property="userId"    column="user_id"    />
38
+        <result property="nickName"    column="nick_name"    />
39
+    </resultMap>
40
+
41
+    <resultMap type="SysDept" id="SysDeptResult">
42
+        <result property="deptId"    column="dept_id"    />
43
+        <result property="deptName"    column="dept_name"    />
44
+    </resultMap>
45
+
46
+    <resultMap type="CmcProject" id="CmcProjectResult">
47
+        <result property="projectId"    column="project_id"    />
48
+        <result property="projectNumber"    column="project_number"    />
49
+        <result property="projectName"    column="project_name"    />
30
     </resultMap>
50
     </resultMap>
31
 
51
 
32
     <sql id="selectCmcCarApprovalVo">
52
     <sql id="selectCmcCarApprovalVo">
33
-        select car_apply_id, applier, cars, drivers, project_id, apply_reason, passengers, apply_date, begin_date, begin_halfday, end_date, end_halfday, days, dept_user_id, dept_comment, manager_user_id, manager_comment, union_user_id, union_comment, dispatcher, dispatch_comment, estimate_cost from cmc_car_approval
53
+        select ca.car_apply_id, ca.applier, u.nick_name, ca.use_dept, d.dept_name, ca.cars, ca.drivers, ca.project_id, p.project_number, p.project_name, ca.apply_reason, ca.passengers, ca.apply_date, ca.begin_date, ca.begin_halfday, ca.end_date, ca.end_halfday, ca.days, ca.dept_user_id, ca.dept_comment, ca.manager_user_id, ca.manager_comment, ca.union_user_id, ca.union_comment, ca.dispatcher, ca.dispatch_comment, ca.estimate_cost from cmc_car_approval as ca
54
+            left join sys_user as u on u.user_id = ca.applier
55
+            left join sys_dept as d on d.dept_id = ca.use_dept
56
+            left join cmc_project as p on ca.project_id = p.project_id
34
     </sql>
57
     </sql>
35
 
58
 
36
     <select id="selectCmcCarApprovalList" parameterType="CmcCarApproval" resultMap="CmcCarApprovalResult">
59
     <select id="selectCmcCarApprovalList" parameterType="CmcCarApproval" resultMap="CmcCarApprovalResult">
37
         <include refid="selectCmcCarApprovalVo"/>
60
         <include refid="selectCmcCarApprovalVo"/>
38
         <where>
61
         <where>
39
-            <if test="applier != null "> and applier = #{applier}</if>
40
-            <if test="cars != null  and cars != ''"> and cars = #{cars}</if>
41
-            <if test="drivers != null  and drivers != ''"> and drivers = #{drivers}</if>
42
-            <if test="projectId != null  and projectId != ''"> and project_id = #{projectId}</if>
43
-            <if test="applyReason != null  and applyReason != ''"> and apply_reason = #{applyReason}</if>
44
-            <if test="passengers != null "> and passengers = #{passengers}</if>
45
-            <if test="applyDate != null "> and apply_date = #{beginDate}</if>
46
-            <if test="beginDate != null "> and begin_date = #{beginDate}</if>
47
-            <if test="beginHalfday != null  and beginHalfday != ''"> and begin_halfday = #{beginHalfday}</if>
48
-            <if test="endDate != null "> and end_date = #{endDate}</if>
49
-            <if test="endHalfday != null  and endHalfday != ''"> and end_halfday = #{endHalfday}</if>
50
-            <if test="days != null "> and days = #{days}</if>
51
-            <if test="deptUserId != null "> and dept_user_id = #{deptUserId}</if>
52
-            <if test="deptComment != null  and deptComment != ''"> and dept_comment = #{deptComment}</if>
53
-            <if test="managerUserId != null "> and manager_user_id = #{managerUserId}</if>
54
-            <if test="managerComment != null  and managerComment != ''"> and manager_comment = #{managerComment}</if>
55
-            <if test="unionUserId != null "> and union_user_id = #{unionUserId}</if>
56
-            <if test="unionComment != null  and unionComment != ''"> and union_comment = #{unionComment}</if>
57
-            <if test="dispatcher != null "> and dispatcher = #{dispatcher}</if>
58
-            <if test="dispatchComment != null  and dispatchComment != ''"> and dispatch_comment = #{dispatchComment}</if>
59
-            <if test="estimateCost != null "> and estimate_cost = #{estimateCost}</if>
62
+            <if test="applier != null "> and ca.ca.applier = #{applier}</if>
63
+            <if test="useDept != null "> and da.use_dept = #{useDept}</if>
64
+            <if test="cars != null  and cars != ''"> and ca.cars = #{cars}</if>
65
+            <if test="drivers != null  and drivers != ''"> and ca.drivers = #{drivers}</if>
66
+            <if test="projectId != null  and projectId != ''"> and ca.project_id = #{projectId}</if>
67
+            <if test="applyReason != null  and applyReason != ''"> and ca.apply_reason = #{applyReason}</if>
68
+            <if test="passengers != null "> and ca.passengers = #{passengers}</if>
69
+            <if test="applyDate != null "> and ca.apply_date = #{beginDate}</if>
70
+            <if test="beginDate != null "> and ca.begin_date = #{beginDate}</if>
71
+            <if test="beginHalfday != null  and beginHalfday != ''"> and ca.begin_halfday = #{beginHalfday}</if>
72
+            <if test="endDate != null "> and ca.end_date = #{endDate}</if>
73
+            <if test="endHalfday != null  and endHalfday != ''"> and ca.end_halfday = #{endHalfday}</if>
74
+            <if test="days != null "> and ca.days = #{days}</if>
75
+            <if test="deptUserId != null "> and ca.dept_user_id = #{deptUserId}</if>
76
+            <if test="deptComment != null  and deptComment != ''"> and ca.dept_comment = #{deptComment}</if>
77
+            <if test="managerUserId != null "> and ca.manager_user_id = #{managerUserId}</if>
78
+            <if test="managerComment != null  and managerComment != ''"> and ca.manager_comment = #{managerComment}</if>
79
+            <if test="unionUserId != null "> and ca.union_user_id = #{unionUserId}</if>
80
+            <if test="unionComment != null  and unionComment != ''"> and ca.union_comment = #{unionComment}</if>
81
+            <if test="dispatcher != null "> and ca.dispatcher = #{dispatcher}</if>
82
+            <if test="dispatchComment != null  and dispatchComment != ''"> and ca.dispatch_comment = #{dispatchComment}</if>
83
+            <if test="estimateCost != null "> and ca.estimate_cost = #{estimateCost}</if>
60
         </where>
84
         </where>
61
     </select>
85
     </select>
62
 
86
 
70
         <trim prefix="(" suffix=")" suffixOverrides=",">
94
         <trim prefix="(" suffix=")" suffixOverrides=",">
71
             <if test="carApplyId != null">car_apply_id,</if>
95
             <if test="carApplyId != null">car_apply_id,</if>
72
             <if test="applier != null">applier,</if>
96
             <if test="applier != null">applier,</if>
97
+            <if test="useDept != null">use_dept,</if>
73
             <if test="cars != null">cars,</if>
98
             <if test="cars != null">cars,</if>
74
             <if test="drivers != null">drivers,</if>
99
             <if test="drivers != null">drivers,</if>
75
             <if test="projectId != null">project_id,</if>
100
             <if test="projectId != null">project_id,</if>
94
         <trim prefix="values (" suffix=")" suffixOverrides=",">
119
         <trim prefix="values (" suffix=")" suffixOverrides=",">
95
             <if test="carApplyId != null">#{carApplyId},</if>
120
             <if test="carApplyId != null">#{carApplyId},</if>
96
             <if test="applier != null">#{applier},</if>
121
             <if test="applier != null">#{applier},</if>
122
+            <if test="useDept != null">#{useDept},</if>
97
             <if test="cars != null">#{cars},</if>
123
             <if test="cars != null">#{cars},</if>
98
             <if test="drivers != null">#{drivers},</if>
124
             <if test="drivers != null">#{drivers},</if>
99
             <if test="projectId != null">#{projectId},</if>
125
             <if test="projectId != null">#{projectId},</if>
121
         update cmc_car_approval
147
         update cmc_car_approval
122
         <trim prefix="SET" suffixOverrides=",">
148
         <trim prefix="SET" suffixOverrides=",">
123
             <if test="applier != null">applier = #{applier},</if>
149
             <if test="applier != null">applier = #{applier},</if>
150
+            <if test="useDept != null">use_dept = #{useDept},</if>
124
             <if test="cars != null">cars = #{cars},</if>
151
             <if test="cars != null">cars = #{cars},</if>
125
             <if test="drivers != null">drivers = #{drivers},</if>
152
             <if test="drivers != null">drivers = #{drivers},</if>
126
             <if test="projectId != null">project_id = #{projectId},</if>
153
             <if test="projectId != null">project_id = #{projectId},</if>

+ 28
- 10
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcDeviceApprovalMapper.xml View File

7
     <resultMap type="CmcDeviceApproval" id="CmcDeviceApprovalResult">
7
     <resultMap type="CmcDeviceApproval" id="CmcDeviceApprovalResult">
8
         <result property="deviceApplyId"    column="device_apply_id"    />
8
         <result property="deviceApplyId"    column="device_apply_id"    />
9
         <result property="applier"    column="applier"    />
9
         <result property="applier"    column="applier"    />
10
-        <result property="dept"    column="dept"    />
10
+        <result property="useDept"    column="use_dept"    />
11
         <result property="devices"    column="devices"    />
11
         <result property="devices"    column="devices"    />
12
         <result property="projectId"    column="project_id"    />
12
         <result property="projectId"    column="project_id"    />
13
-        <result property="projectNumber"    column="project_number"    />
14
-        <result property="projectName"    column="project_name"    />
15
         <result property="applyReason"    column="apply_reason"    />
13
         <result property="applyReason"    column="apply_reason"    />
16
         <result property="applyDate"    column="apply_date"    />
14
         <result property="applyDate"    column="apply_date"    />
17
         <result property="returnDate"    column="return_date"    />
15
         <result property="returnDate"    column="return_date"    />
27
         <result property="dispatcher"    column="dispatcher"    />
25
         <result property="dispatcher"    column="dispatcher"    />
28
         <result property="dispatchComment"    column="dispatch_comment"    />
26
         <result property="dispatchComment"    column="dispatch_comment"    />
29
         <result property="estimateCost"    column="estimate_cost"    />
27
         <result property="estimateCost"    column="estimate_cost"    />
28
+        <association property="user"    javaType="SysUser"         resultMap="SysUserResult" />
29
+        <association property="dept"    javaType="SysDept"         resultMap="SysDeptResult" />
30
+        <association property="project"    javaType="CmcProject"         resultMap="CmcProjectResult" />
31
+    </resultMap>
32
+
33
+    <resultMap type="SysUser" id="SysUserResult">
34
+        <result property="userId"    column="user_id"    />
35
+        <result property="nickName"    column="nick_name"    />
36
+    </resultMap>
37
+
38
+    <resultMap type="SysDept" id="SysDeptResult">
39
+        <result property="deptId"    column="dept_id"    />
40
+        <result property="deptName"    column="dept_name"    />
41
+    </resultMap>
42
+
43
+    <resultMap type="CmcProject" id="CmcProjectResult">
44
+        <result property="projectId"    column="project_id"    />
45
+        <result property="projectNumber"    column="project_number"    />
46
+        <result property="projectName"    column="project_name"    />
30
     </resultMap>
47
     </resultMap>
31
 
48
 
32
     <sql id="selectCmcDeviceApprovalVo">
49
     <sql id="selectCmcDeviceApprovalVo">
33
-        select da.device_apply_id, da.applier, da.dept, da.devices, da.project_id, p.project_number, p.project_name, da.apply_reason, da.apply_date, da.return_date, da.begin_date, da.begin_halfday, da.end_date, da.end_halfday, da.days, da.dept_user_id, da.dept_comment, da.manager_user_id, da.manager_comment, da.dispatcher, da.dispatch_comment, da.estimate_cost from cmc_device_approval as da left join cmc_project as p
50
+        select da.device_apply_id, da.applier, u.nick_name, da.use_dept, d.dept_name, da.devices, da.project_id, p.project_number, p.project_name, da.apply_reason, da.apply_date, da.return_date, da.begin_date, da.begin_halfday, da.end_date, da.end_halfday, da.days, da.dept_user_id, da.dept_comment, da.manager_user_id, da.manager_comment, da.dispatcher, da.dispatch_comment, da.estimate_cost from cmc_device_approval as da
51
+            left join sys_user as u on u.user_id = da.applier
52
+            left join sys_dept as d on d.dept_id = da.use_dept
53
+            left join cmc_project as p on da.project_id = p.project_id
34
     </sql>
54
     </sql>
35
 
55
 
36
     <select id="selectCmcDeviceApprovalList" parameterType="CmcDeviceApproval" resultMap="CmcDeviceApprovalResult">
56
     <select id="selectCmcDeviceApprovalList" parameterType="CmcDeviceApproval" resultMap="CmcDeviceApprovalResult">
37
         <include refid="selectCmcDeviceApprovalVo"/>
57
         <include refid="selectCmcDeviceApprovalVo"/>
38
-        on da.project_id = p.project_id
39
         <where>  
58
         <where>  
40
             <if test="applier != null "> and da.applier = #{applier}</if>
59
             <if test="applier != null "> and da.applier = #{applier}</if>
41
-            <if test="dept != null "> and da.dept = #{dept}</if>
60
+            <if test="useDept != null "> and da.use_dept = #{useDept}</if>
42
             <if test="devices != null  and devices != ''"> and da.devices = #{devices}</if>
61
             <if test="devices != null  and devices != ''"> and da.devices = #{devices}</if>
43
             <if test="projectId != null  and projectId != ''"> and da.project_id = #{projectId}</if>
62
             <if test="projectId != null  and projectId != ''"> and da.project_id = #{projectId}</if>
44
             <if test="applyReason != null  and applyReason != ''"> and da.apply_reason = #{applyReason}</if>
63
             <if test="applyReason != null  and applyReason != ''"> and da.apply_reason = #{applyReason}</if>
61
     
80
     
62
     <select id="selectCmcDeviceApprovalByDeviceApplyId" parameterType="String" resultMap="CmcDeviceApprovalResult">
81
     <select id="selectCmcDeviceApprovalByDeviceApplyId" parameterType="String" resultMap="CmcDeviceApprovalResult">
63
         <include refid="selectCmcDeviceApprovalVo"/>
82
         <include refid="selectCmcDeviceApprovalVo"/>
64
-        on da.project_id = p.project_id
65
         where da.device_apply_id = #{deviceApplyId}
83
         where da.device_apply_id = #{deviceApplyId}
66
     </select>
84
     </select>
67
         
85
         
70
         <trim prefix="(" suffix=")" suffixOverrides=",">
88
         <trim prefix="(" suffix=")" suffixOverrides=",">
71
             <if test="deviceApplyId != null">device_apply_id,</if>
89
             <if test="deviceApplyId != null">device_apply_id,</if>
72
             <if test="applier != null">applier,</if>
90
             <if test="applier != null">applier,</if>
73
-            <if test="dept != null">dept,</if>
91
+            <if test="useDept != null">use_dept,</if>
74
             <if test="devices != null">devices,</if>
92
             <if test="devices != null">devices,</if>
75
             <if test="projectId != null">project_id,</if>
93
             <if test="projectId != null">project_id,</if>
76
             <if test="applyReason != null">apply_reason,</if>
94
             <if test="applyReason != null">apply_reason,</if>
92
         <trim prefix="values (" suffix=")" suffixOverrides=",">
110
         <trim prefix="values (" suffix=")" suffixOverrides=",">
93
             <if test="deviceApplyId != null">#{deviceApplyId},</if>
111
             <if test="deviceApplyId != null">#{deviceApplyId},</if>
94
             <if test="applier != null">#{applier},</if>
112
             <if test="applier != null">#{applier},</if>
95
-            <if test="dept != null">#{dept},</if>
113
+            <if test="useDept != null">#{useDept},</if>
96
             <if test="devices != null">#{devices},</if>
114
             <if test="devices != null">#{devices},</if>
97
             <if test="projectId != null">#{projectId},</if>
115
             <if test="projectId != null">#{projectId},</if>
98
             <if test="applyReason != null">#{applyReason},</if>
116
             <if test="applyReason != null">#{applyReason},</if>
117
         update cmc_device_approval
135
         update cmc_device_approval
118
         <trim prefix="SET" suffixOverrides=",">
136
         <trim prefix="SET" suffixOverrides=",">
119
             <if test="applier != null">applier = #{applier},</if>
137
             <if test="applier != null">applier = #{applier},</if>
120
-            <if test="dept != null">dept = #{dept},</if>
138
+            <if test="useDept != null">use_dept = #{useDept},</if>
121
             <if test="devices != null">devices = #{devices},</if>
139
             <if test="devices != null">devices = #{devices},</if>
122
             <if test="projectId != null">project_id = #{projectId},</if>
140
             <if test="projectId != null">project_id = #{projectId},</if>
123
             <if test="applyReason != null">apply_reason = #{applyReason},</if>
141
             <if test="applyReason != null">apply_reason = #{applyReason},</if>

+ 6
- 1
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcDeviceMapper.xml View File

22
         <result property="checkTime"    column="check_time"    />
22
         <result property="checkTime"    column="check_time"    />
23
         <result property="warranty"    column="warranty"    />
23
         <result property="warranty"    column="warranty"    />
24
         <result property="manageDept"    column="manage_dept"    />
24
         <result property="manageDept"    column="manage_dept"    />
25
-        <result property="manageDeptName"    column="dept_name"    />
25
+        <association property="dept"    javaType="SysDept"         resultMap="deptResult" />
26
+    </resultMap>
27
+
28
+    <resultMap id="deptResult" type="SysDept">
29
+        <id     property="deptId"    column="dept_id"     />
30
+        <result property="deptName"  column="dept_name"   />
26
     </resultMap>
31
     </resultMap>
27
 
32
 
28
     <sql id="selectCmcDeviceVo">
33
     <sql id="selectCmcDeviceVo">

+ 66
- 0
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcPostSalaryMapper.xml View File

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.CmcPostSalaryMapper">
6
+
7
+    <resultMap type="CmcPostSalary" id="CmcPostSalaryResult">
8
+        <result property="salaryId"    column="salary_id"    />
9
+        <result property="postLevel"    column="post_level"    />
10
+        <result property="salaryLevel"    column="salary_level"    />
11
+        <result property="salary"    column="salary"    />
12
+    </resultMap>
13
+
14
+    <sql id="selectCmcPostSalaryVo">
15
+        select salary_id, post_level, salary_level, salary from cmc_post_salary
16
+    </sql>
17
+
18
+    <select id="selectCmcPostSalaryList" parameterType="CmcPostSalary" resultMap="CmcPostSalaryResult">
19
+        <include refid="selectCmcPostSalaryVo"/>
20
+        <where>
21
+            <if test="postLevel != null  and postLevel != ''"> and post_level = #{postLevel}</if>
22
+            <if test="salaryLevel != null  and salaryLevel != ''"> and salary_level = #{salaryLevel}</if>
23
+            <if test="salary != null "> and salary = #{salary}</if>
24
+        </where>
25
+    </select>
26
+
27
+    <select id="selectCmcPostSalaryBySalaryId" parameterType="Integer" resultMap="CmcPostSalaryResult">
28
+        <include refid="selectCmcPostSalaryVo"/>
29
+        where salary_id = #{salaryId}
30
+    </select>
31
+
32
+    <insert id="insertCmcPostSalary" parameterType="CmcPostSalary" useGeneratedKeys="true" keyProperty="salaryId">
33
+        insert into cmc_post_salary
34
+        <trim prefix="(" suffix=")" suffixOverrides=",">
35
+            <if test="postLevel != null">post_level,</if>
36
+            <if test="salaryLevel != null">salary_level,</if>
37
+            <if test="salary != null">salary,</if>
38
+        </trim>
39
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
40
+            <if test="postLevel != null">#{postLevel},</if>
41
+            <if test="salaryLevel != null">#{salaryLevel},</if>
42
+            <if test="salary != null">#{salary},</if>
43
+        </trim>
44
+    </insert>
45
+
46
+    <update id="updateCmcPostSalary" parameterType="CmcPostSalary">
47
+        update cmc_post_salary
48
+        <trim prefix="SET" suffixOverrides=",">
49
+            <if test="postLevel != null">post_level = #{postLevel},</if>
50
+            <if test="salaryLevel != null">salary_level = #{salaryLevel},</if>
51
+            <if test="salary != null">salary = #{salary},</if>
52
+        </trim>
53
+        where salary_id = #{salaryId}
54
+    </update>
55
+
56
+    <delete id="deleteCmcPostSalaryBySalaryId" parameterType="Integer">
57
+        delete from cmc_post_salary where salary_id = #{salaryId}
58
+    </delete>
59
+
60
+    <delete id="deleteCmcPostSalaryBySalaryIds" parameterType="String">
61
+        delete from cmc_post_salary where salary_id in
62
+        <foreach item="salaryId" collection="array" open="(" separator="," close=")">
63
+            #{salaryId}
64
+        </foreach>
65
+    </delete>
66
+</mapper>

+ 16
- 6
oa-back/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml View File

34
         <result property="birthday"       column="birthday"       />
34
         <result property="birthday"       column="birthday"       />
35
         <result property="age"       column="age"       />
35
         <result property="age"       column="age"       />
36
         <association property="dept"    javaType="SysDept"         resultMap="deptResult" />
36
         <association property="dept"    javaType="SysDept"         resultMap="deptResult" />
37
+        <association property="salary"    javaType="CmcPostSalary"         resultMap="CmcPostSalaryResult" />
37
         <collection  property="roles"   javaType="java.util.List"  resultMap="RoleResult" />
38
         <collection  property="roles"   javaType="java.util.List"  resultMap="RoleResult" />
38
     </resultMap>
39
     </resultMap>
39
-	
40
+
40
     <resultMap id="deptResult" type="SysDept">
41
     <resultMap id="deptResult" type="SysDept">
41
         <id     property="deptId"    column="dept_id"     />
42
         <id     property="deptId"    column="dept_id"     />
42
         <result property="parentId"  column="parent_id"   />
43
         <result property="parentId"  column="parent_id"   />
46
         <result property="leader"    column="leader"      />
47
         <result property="leader"    column="leader"      />
47
         <result property="status"    column="dept_status" />
48
         <result property="status"    column="dept_status" />
48
     </resultMap>
49
     </resultMap>
49
-	
50
+
50
     <resultMap id="RoleResult" type="SysRole">
51
     <resultMap id="RoleResult" type="SysRole">
51
         <id     property="roleId"       column="role_id"        />
52
         <id     property="roleId"       column="role_id"        />
52
         <result property="roleName"     column="role_name"      />
53
         <result property="roleName"     column="role_name"      />
55
         <result property="dataScope"    column="data_scope"     />
56
         <result property="dataScope"    column="data_scope"     />
56
         <result property="status"       column="role_status"    />
57
         <result property="status"       column="role_status"    />
57
     </resultMap>
58
     </resultMap>
58
-	
59
+
60
+    <resultMap id="CmcPostSalaryResult" type="CmcPostSalary">
61
+		<result property="salaryId"    column="salary_id"    />
62
+		<result property="postLevel"    column="post_level"    />
63
+		<result property="salaryLevel"    column="salary_level"    />
64
+		<result property="salary"    column="salary"    />
65
+    </resultMap>
66
+
59
 	<sql id="selectUserVo">
67
 	<sql id="selectUserVo">
60
         select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.pm_level, u.titles, u.certificates, u.update_reason, u.engineer_level, u.post_level, u.salary_level, u.entry_date, u.birthday, u.age,
68
         select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.pm_level, u.titles, u.certificates, u.update_reason, u.engineer_level, u.post_level, u.salary_level, u.entry_date, u.birthday, u.age,
61
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
69
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
62
-        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
70
+        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status, ps.salary
63
         from sys_user u
71
         from sys_user u
64
 		    left join sys_dept d on u.dept_id = d.dept_id
72
 		    left join sys_dept d on u.dept_id = d.dept_id
73
+		    left join cmc_post_salary ps on u.post_level = ps.post_level and u.salary_level = ps.salary_level
65
 		    left join sys_user_role ur on u.user_id = ur.user_id
74
 		    left join sys_user_role ur on u.user_id = ur.user_id
66
 		    left join sys_role r on r.role_id = ur.role_id
75
 		    left join sys_role r on r.role_id = ur.role_id
67
     </sql>
76
     </sql>
68
-    
77
+
69
     <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
78
     <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
70
-		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.pm_level, u.titles, u.certificates, u.update_reason, u.engineer_level, u.post_level, u.salary_level, u.entry_date, u.birthday, u.age, d.dept_name, d.leader from sys_user u
79
+		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, u.pm_level, u.titles, u.certificates, u.update_reason, u.engineer_level, u.post_level, u.salary_level, u.entry_date, u.birthday, u.age, d.dept_name, d.leader, ps.salary from sys_user u
71
 		left join sys_dept d on u.dept_id = d.dept_id
80
 		left join sys_dept d on u.dept_id = d.dept_id
81
+		left join cmc_post_salary ps on u.post_level = ps.post_level and u.salary_level = ps.salary_level
72
 		where u.del_flag = '0'
82
 		where u.del_flag = '0'
73
 		<if test="userId != null and userId != 0">
83
 		<if test="userId != null and userId != 0">
74
 			AND u.user_id = #{userId}
84
 			AND u.user_id = #{userId}

+ 83
- 68
oa-back/sql/sql.sql View File

358
 insert into sys_menu values('1', 	'系统管理', '0', '1', 'system',		null, '', 1, 0, 'M', '0', '0', '', 'system',	'admin', sysdate(), '', null, '系统管理目录');
358
 insert into sys_menu values('1', 	'系统管理', '0', '1', 'system',		null, '', 1, 0, 'M', '0', '0', '', 'system',	'admin', sysdate(), '', null, '系统管理目录');
359
 insert into sys_menu values('2', 	'系统监控', '0', '2', 'monitor',	null, '', 1, 0, 'M', '0', '0', '', 'monitor',	'admin', sysdate(), '', null, '系统监控目录');
359
 insert into sys_menu values('2', 	'系统监控', '0', '2', 'monitor',	null, '', 1, 0, 'M', '0', '0', '', 'monitor',	'admin', sysdate(), '', null, '系统监控目录');
360
 insert into sys_menu values('3', 	'系统工具', '0', '3', 'tool',		null, '', 1, 0, 'M', '0', '0', '', 'tool',		'admin', sysdate(), '', null, '系统工具目录');
360
 insert into sys_menu values('3', 	'系统工具', '0', '3', 'tool',		null, '', 1, 0, 'M', '0', '0', '', 'tool',		'admin', sysdate(), '', null, '系统工具目录');
361
-insert into sys_menu values('4', 	'人事管理', '0', '4', 'staff',		'oa/staff/index', 			'', 1, 0, 'C', '0', '0', 'system:user:list','user',		'admin', sysdate(), '', null, '人事管理菜单');
361
+insert into sys_menu values('4', 	'人事管理', '0', '4', 'staff',		null, '', 1, 0, 'M', '0', '0', '', 'user',		'admin', sysdate(), '', null, '人事管理菜单');
362
 insert into sys_menu values('5', 	'车辆管理', '0', '5', 'car',		'oa/car/index', 			'', 1, 0, 'C', '0', '0', 'oa:car:list', 	'car',		'admin', sysdate(), '', null, '车辆管理菜单');
362
 insert into sys_menu values('5', 	'车辆管理', '0', '5', 'car',		'oa/car/index', 			'', 1, 0, 'C', '0', '0', 'oa:car:list', 	'car',		'admin', sysdate(), '', null, '车辆管理菜单');
363
 insert into sys_menu values('6', 	'设备管理', '0', '6', 'device',		'oa/device/index', 			'', 1, 0, 'C', '0', '0', 'oa:device:list', 	'component','admin', sysdate(), '', null, '设备管理菜单');
363
 insert into sys_menu values('6', 	'设备管理', '0', '6', 'device',		'oa/device/index', 			'', 1, 0, 'C', '0', '0', 'oa:device:list', 	'component','admin', sysdate(), '', null, '设备管理菜单');
364
 insert into sys_menu values('7', 	'投标管理', '0', '7', 'tender',		'oa/tender/index', 			'', 1, 0, 'C', '0', '0', 'oa:tender:list', 	'guide',	'admin', sysdate(), '', null, '投标管理菜单');
364
 insert into sys_menu values('7', 	'投标管理', '0', '7', 'tender',		'oa/tender/index', 			'', 1, 0, 'C', '0', '0', 'oa:tender:list', 	'guide',	'admin', sysdate(), '', null, '投标管理菜单');
385
 insert into sys_menu values('115',  '表单构建', '3',   '1', 'build',      'tool/build/index',         '', 1, 0, 'C', '0', '0', 'tool:build:list',         'build',         'admin', sysdate(), '', null, '表单构建菜单');
385
 insert into sys_menu values('115',  '表单构建', '3',   '1', 'build',      'tool/build/index',         '', 1, 0, 'C', '0', '0', 'tool:build:list',         'build',         'admin', sysdate(), '', null, '表单构建菜单');
386
 insert into sys_menu values('116',  '代码生成', '3',   '2', 'gen',        'tool/gen/index',           '', 1, 0, 'C', '0', '0', 'tool:gen:list',           'code',          'admin', sysdate(), '', null, '代码生成菜单');
386
 insert into sys_menu values('116',  '代码生成', '3',   '2', 'gen',        'tool/gen/index',           '', 1, 0, 'C', '0', '0', 'tool:gen:list',           'code',          'admin', sysdate(), '', null, '代码生成菜单');
387
 insert into sys_menu values('117',  '系统接口', '3',   '3', 'swagger',    'tool/swagger/index',       '', 1, 0, 'C', '0', '0', 'tool:swagger:list',       'swagger',       'admin', sysdate(), '', null, '系统接口菜单');
387
 insert into sys_menu values('117',  '系统接口', '3',   '3', 'swagger',    'tool/swagger/index',       '', 1, 0, 'C', '0', '0', 'tool:swagger:list',       'swagger',       'admin', sysdate(), '', null, '系统接口菜单');
388
+insert into sys_menu values('118',  '人员信息', '4',   '1', 'user',      'oa/staff/index',       	  '', 1, 0, 'C', '0', '0', 'system:user:list',        'peoples',       'admin', sysdate(), '', null, '人员信息菜单');
389
+insert into sys_menu values('119',  '岗位工资', '4',   '2', 'salary',     'oa/staff/salary',       	  '', 1, 0, 'C', '0', '0', 'oa:salary:list',       	  'cost',          'admin', sysdate(), '', null, '岗位工资菜单');
388
 -- 三级菜单
390
 -- 三级菜单
389
 insert into sys_menu values('500',  '操作日志', '108', '1', 'operlog',    'monitor/operlog/index',    '', 1, 0, 'C', '0', '0', 'monitor:operlog:list',    'form',          'admin', sysdate(), '', null, '操作日志菜单');
391
 insert into sys_menu values('500',  '操作日志', '108', '1', 'operlog',    'monitor/operlog/index',    '', 1, 0, 'C', '0', '0', 'monitor:operlog:list',    'form',          'admin', sysdate(), '', null, '操作日志菜单');
390
 insert into sys_menu values('501',  '登录日志', '108', '2', 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor',    'admin', sysdate(), '', null, '登录日志菜单');
392
 insert into sys_menu values('501',  '登录日志', '108', '2', 'logininfor', 'monitor/logininfor/index', '', 1, 0, 'C', '0', '0', 'monitor:logininfor:list', 'logininfor',    'admin', sysdate(), '', null, '登录日志菜单');
493
 insert into sys_menu values('1084', '项目修改', '9', '3', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:edit',            	'#', 'admin', sysdate(), '', null, '');
495
 insert into sys_menu values('1084', '项目修改', '9', '3', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:edit',            	'#', 'admin', sysdate(), '', null, '');
494
 insert into sys_menu values('1085', '项目删除', '9', '4', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:remove',          	'#', 'admin', sysdate(), '', null, '');
496
 insert into sys_menu values('1085', '项目删除', '9', '4', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:remove',          	'#', 'admin', sysdate(), '', null, '');
495
 insert into sys_menu values('1086', '项目导出', '9', '5', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:export',          	'#', 'admin', sysdate(), '', null, '');
497
 insert into sys_menu values('1086', '项目导出', '9', '5', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:export',          	'#', 'admin', sysdate(), '', null, '');
498
+-- 项目管理按钮
499
+insert into sys_menu values('1087', '工资查询', '119', '1', '#', '', '', 1, 0, 'F', '0', '0', 'oa:salary:query',			'#', 'admin', sysdate(), '', null, '');
500
+insert into sys_menu values('1088', '工资新增', '119', '2', '#', '', '', 1, 0, 'F', '0', '0', 'oa:salary:add',				'#', 'admin', sysdate(), '', null, '');
501
+insert into sys_menu values('1089', '工资修改', '119', '3', '#', '', '', 1, 0, 'F', '0', '0', 'oa:salary:edit',            	'#', 'admin', sysdate(), '', null, '');
502
+insert into sys_menu values('1090', '工资删除', '119', '4', '#', '', '', 1, 0, 'F', '0', '0', 'oa:salary:remove',          	'#', 'admin', sysdate(), '', null, '');
503
+insert into sys_menu values('1091', '工资导出', '119', '5', '#', '', '', 1, 0, 'F', '0', '0', 'oa:salary:export',          	'#', 'admin', sysdate(), '', null, '');
496
 
504
 
497
 -- ----------------------------
505
 -- ----------------------------
498
 -- 6、用户和角色关联表  用户N-1角色
506
 -- 6、用户和角色关联表  用户N-1角色
1569
 create table `cmc_car_approval`  (
1577
 create table `cmc_car_approval`  (
1570
   `car_apply_id`		char(19)		not null		comment '用车申请id',
1578
   `car_apply_id`		char(19)		not null		comment '用车申请id',
1571
   `applier`				bigint			default null	comment '申请人',
1579
   `applier`				bigint			default null	comment '申请人',
1580
+  `use_dept`			bigint			default null	comment '使用部门',
1572
   `cars`				varchar(10)		default null	comment '车辆id',
1581
   `cars`				varchar(10)		default null	comment '车辆id',
1573
   `drivers`				varchar(20)		default null	comment '驾驶员id',
1582
   `drivers`				varchar(20)		default null	comment '驾驶员id',
1574
   `project_id`			char(19)		default null	comment '项目id',
1583
   `project_id`			char(19)		default null	comment '项目id',
2227
 create table `cmc_device_approval`  (
2236
 create table `cmc_device_approval`  (
2228
   `device_apply_id`		char(19)		not null		comment '设备申请id',
2237
   `device_apply_id`		char(19)		not null		comment '设备申请id',
2229
   `applier`				bigint			default null	comment '申请人',
2238
   `applier`				bigint			default null	comment '申请人',
2230
-  `dept`				bigint			default null	comment '使用部门',
2239
+  `use_dept`			bigint			default null	comment '使用部门',
2231
   `devices`				varchar(50)		default null	comment '设备id',
2240
   `devices`				varchar(50)		default null	comment '设备id',
2232
   `project_id`			char(19)		default null	comment '项目id',
2241
   `project_id`			char(19)		default null	comment '项目id',
2233
   `apply_reason`		varchar(255)	default null 	comment '申领事由',
2242
   `apply_reason`		varchar(255)	default null 	comment '申领事由',
2905
 -- ----------------------------
2914
 -- ----------------------------
2906
 
2915
 
2907
 -- ----------------------------
2916
 -- ----------------------------
2908
-drop table if exists `cmc_user_cost`;
2909
-create table `cmc_user_cost`  (
2910
-  `cost_id`			int				not null	auto_increment	comment '成本id',
2911
-  `name`			varchar(10)		default null				comment '项名',
2912
-  `month_cost`		decimal(10, 2)	default null				comment '月成本',
2913
-  primary key (`cost_id`)
2914
-) engine = innodb comment = 'cmc用户成本表';
2915
-
2916
-insert into `cmc_user_cost` values (1, '一岗一档', 300.00);
2917
-insert into `cmc_user_cost` values (2, '一岗二档', 340.00);
2918
-insert into `cmc_user_cost` values (3, '一岗三档', 380.00);
2919
-insert into `cmc_user_cost` values (4, '一岗四档', 420.00);
2920
-insert into `cmc_user_cost` values (5, '二岗一档', 440.00);
2921
-insert into `cmc_user_cost` values (6, '二岗二档', 500.00);
2922
-insert into `cmc_user_cost` values (7, '二岗三档', 560.00);
2923
-insert into `cmc_user_cost` values (8, '二岗四档', 620.00);
2924
-insert into `cmc_user_cost` values (9, '二岗五档', 680.00);
2925
-insert into `cmc_user_cost` values (10, '二岗六档', 740.00);
2926
-insert into `cmc_user_cost` values (11, '三岗一档', 560.00);
2927
-insert into `cmc_user_cost` values (12, '三岗二档', 640.00);
2928
-insert into `cmc_user_cost` values (13, '三岗三档', 720.00);
2929
-insert into `cmc_user_cost` values (14, '三岗四档', 800.00);
2930
-insert into `cmc_user_cost` values (15, '三岗五档', 880.00);
2931
-insert into `cmc_user_cost` values (16, '三岗六档', 960.00);
2932
-insert into `cmc_user_cost` values (17, '三岗七档', 1040.00);
2933
-insert into `cmc_user_cost` values (18, '三岗八档', 1120.00);
2934
-insert into `cmc_user_cost` values (19, '四岗一档', 880.00);
2935
-insert into `cmc_user_cost` values (20, '四岗二档', 1020.00);
2936
-insert into `cmc_user_cost` values (21, '四岗三档', 1160.00);
2937
-insert into `cmc_user_cost` values (22, '四岗四档', 1300.00);
2938
-insert into `cmc_user_cost` values (23, '四岗五档', 1440.00);
2939
-insert into `cmc_user_cost` values (24, '四岗六档', 1580.00);
2940
-insert into `cmc_user_cost` values (25, '四岗七档', 1720.00);
2941
-insert into `cmc_user_cost` values (26, '四岗八档', 1860.00);
2942
-insert into `cmc_user_cost` values (27, '五岗一档', 1700.00);
2943
-insert into `cmc_user_cost` values (28, '五岗二档', 1860.00);
2944
-insert into `cmc_user_cost` values (29, '五岗三档', 2020.00);
2945
-insert into `cmc_user_cost` values (30, '五岗四档', 2180.00);
2946
-insert into `cmc_user_cost` values (31, '五岗五档', 2340.00);
2947
-insert into `cmc_user_cost` values (32, '五岗六档', 2500.00);
2948
-insert into `cmc_user_cost` values (33, '五岗七档', 2660.00);
2949
-insert into `cmc_user_cost` values (34, '五岗八档', 2820.00);
2950
-insert into `cmc_user_cost` values (35, '六岗一档', 2640.00);
2951
-insert into `cmc_user_cost` values (36, '六岗二档', 2820.00);
2952
-insert into `cmc_user_cost` values (37, '六岗三档', 3000.00);
2953
-insert into `cmc_user_cost` values (38, '六岗四档', 3180.00);
2954
-insert into `cmc_user_cost` values (39, '六岗五档', 3360.00);
2955
-insert into `cmc_user_cost` values (40, '六岗六档', 3540.00);
2956
-insert into `cmc_user_cost` values (41, '六岗七档', 3720.00);
2957
-insert into `cmc_user_cost` values (42, '六岗八档', 3900.00);
2958
-insert into `cmc_user_cost` values (43, '七岗一档', 3700.00);
2959
-insert into `cmc_user_cost` values (44, '七岗二档', 3900.00);
2960
-insert into `cmc_user_cost` values (45, '七岗三档', 4100.00);
2961
-insert into `cmc_user_cost` values (46, '七岗四档', 4300.00);
2962
-insert into `cmc_user_cost` values (47, '七岗五档', 4500.00);
2963
-insert into `cmc_user_cost` values (48, '七岗六档', 4700.00);
2964
-insert into `cmc_user_cost` values (49, '七岗七档', 4900.00);
2965
-insert into `cmc_user_cost` values (50, '七岗八档', 5100.00);
2966
-insert into `cmc_user_cost` values (51, '八岗一档', 4880.00);
2967
-insert into `cmc_user_cost` values (52, '八岗二档', 5100.00);
2968
-insert into `cmc_user_cost` values (53, '八岗三档', 5320.00);
2969
-insert into `cmc_user_cost` values (54, '八岗四档', 5540.00);
2970
-insert into `cmc_user_cost` values (55, '八岗五档', 5760.00);
2971
-insert into `cmc_user_cost` values (56, '八岗六档', 5980.00);
2972
-insert into `cmc_user_cost` values (57, '八岗七档', 6200.00);
2973
-insert into `cmc_user_cost` values (58, '八岗八档', 6420.00);
2917
+-- 31、cmc岗位工资表
2918
+-- ----------------------------
2919
+drop table if exists `cmc_post_salary`;
2920
+create table `cmc_post_salary`  (
2921
+  `salary_id`		int				not null	auto_increment	comment '成本id',
2922
+  `post_level`		char(1)			default null				comment '岗级',
2923
+  `salary_level`	char(1)			default null				comment '薪档',
2924
+  `salary`			decimal(10, 2)	default null				comment '月薪',
2925
+  primary key (`salary_id`)
2926
+) engine = innodb comment = 'cmc岗位工资表';
2927
+
2928
+-- ----------------------------
2929
+-- 初始化-岗位工资表数据
2930
+-- ----------------------------
2931
+insert into `cmc_post_salary` values (1, '0', '0', 300.00);
2932
+insert into `cmc_post_salary` values (2, '0', '1', 340.00);
2933
+insert into `cmc_post_salary` values (3, '0', '2', 380.00);
2934
+insert into `cmc_post_salary` values (4, '0', '3', 420.00);
2935
+insert into `cmc_post_salary` values (5, '1', '0', 440.00);
2936
+insert into `cmc_post_salary` values (6, '1', '1', 500.00);
2937
+insert into `cmc_post_salary` values (7, '1', '2', 560.00);
2938
+insert into `cmc_post_salary` values (8, '1', '3', 620.00);
2939
+insert into `cmc_post_salary` values (9, '1', '4', 680.00);
2940
+insert into `cmc_post_salary` values (10, '1', '5', 740.00);
2941
+insert into `cmc_post_salary` values (11, '2', '0', 560.00);
2942
+insert into `cmc_post_salary` values (12, '2', '1', 640.00);
2943
+insert into `cmc_post_salary` values (13, '2', '2', 720.00);
2944
+insert into `cmc_post_salary` values (14, '2', '3', 800.00);
2945
+insert into `cmc_post_salary` values (15, '2', '4', 880.00);
2946
+insert into `cmc_post_salary` values (16, '2', '5', 960.00);
2947
+insert into `cmc_post_salary` values (17, '2', '6', 1040.00);
2948
+insert into `cmc_post_salary` values (18, '2', '7', 1120.00);
2949
+insert into `cmc_post_salary` values (19, '3', '0', 880.00);
2950
+insert into `cmc_post_salary` values (20, '3', '1', 1020.00);
2951
+insert into `cmc_post_salary` values (21, '3', '2', 1160.00);
2952
+insert into `cmc_post_salary` values (22, '3', '3', 1300.00);
2953
+insert into `cmc_post_salary` values (23, '3', '4', 1440.00);
2954
+insert into `cmc_post_salary` values (24, '3', '5', 1580.00);
2955
+insert into `cmc_post_salary` values (25, '3', '6', 1720.00);
2956
+insert into `cmc_post_salary` values (26, '3', '7', 1860.00);
2957
+insert into `cmc_post_salary` values (27, '4', '0', 1700.00);
2958
+insert into `cmc_post_salary` values (28, '4', '1', 1860.00);
2959
+insert into `cmc_post_salary` values (29, '4', '2', 2020.00);
2960
+insert into `cmc_post_salary` values (30, '4', '3', 2180.00);
2961
+insert into `cmc_post_salary` values (31, '4', '4', 2340.00);
2962
+insert into `cmc_post_salary` values (32, '4', '5', 2500.00);
2963
+insert into `cmc_post_salary` values (33, '4', '6', 2660.00);
2964
+insert into `cmc_post_salary` values (34, '4', '7', 2820.00);
2965
+insert into `cmc_post_salary` values (35, '5', '0', 2640.00);
2966
+insert into `cmc_post_salary` values (36, '5', '1', 2820.00);
2967
+insert into `cmc_post_salary` values (37, '5', '2', 3000.00);
2968
+insert into `cmc_post_salary` values (38, '5', '3', 3180.00);
2969
+insert into `cmc_post_salary` values (39, '5', '4', 3360.00);
2970
+insert into `cmc_post_salary` values (40, '5', '5', 3540.00);
2971
+insert into `cmc_post_salary` values (41, '5', '6', 3720.00);
2972
+insert into `cmc_post_salary` values (42, '5', '7', 3900.00);
2973
+insert into `cmc_post_salary` values (43, '6', '0', 3700.00);
2974
+insert into `cmc_post_salary` values (44, '6', '1', 3900.00);
2975
+insert into `cmc_post_salary` values (45, '6', '2', 4100.00);
2976
+insert into `cmc_post_salary` values (46, '6', '3', 4300.00);
2977
+insert into `cmc_post_salary` values (47, '6', '4', 4500.00);
2978
+insert into `cmc_post_salary` values (48, '6', '5', 4700.00);
2979
+insert into `cmc_post_salary` values (49, '6', '6', 4900.00);
2980
+insert into `cmc_post_salary` values (50, '6', '7', 5100.00);
2981
+insert into `cmc_post_salary` values (51, '7', '0', 4880.00);
2982
+insert into `cmc_post_salary` values (52, '7', '1', 5100.00);
2983
+insert into `cmc_post_salary` values (53, '7', '2', 5320.00);
2984
+insert into `cmc_post_salary` values (54, '7', '3', 5540.00);
2985
+insert into `cmc_post_salary` values (55, '7', '4', 5760.00);
2986
+insert into `cmc_post_salary` values (56, '7', '5', 5980.00);
2987
+insert into `cmc_post_salary` values (57, '7', '6', 6200.00);
2988
+insert into `cmc_post_salary` values (58, '7', '7', 6420.00);
2974
 
2989
 
2975
 -- ----------------------------
2990
 -- ----------------------------
2976
 -- 31、cmc投标管理表
2991
 -- 31、cmc投标管理表

+ 44
- 0
oa-ui/src/api/oa/staff/salary.js View File

1
+import request from '@/utils/request'
2
+
3
+// 查询cmc岗位工资列表
4
+export function listSalary(query) {
5
+  return request({
6
+    url: '/oa/salary/list',
7
+    method: 'get',
8
+    params: query
9
+  })
10
+}
11
+
12
+// 查询cmc岗位工资详细
13
+export function getSalary(salaryId) {
14
+  return request({
15
+    url: '/oa/salary/' + salaryId,
16
+    method: 'get'
17
+  })
18
+}
19
+
20
+// 新增cmc岗位工资
21
+export function addSalary(data) {
22
+  return request({
23
+    url: '/oa/salary',
24
+    method: 'post',
25
+    data: data
26
+  })
27
+}
28
+
29
+// 修改cmc岗位工资
30
+export function updateSalary(data) {
31
+  return request({
32
+    url: '/oa/salary',
33
+    method: 'put',
34
+    data: data
35
+  })
36
+}
37
+
38
+// 删除cmc岗位工资
39
+export function delSalary(salaryId) {
40
+  return request({
41
+    url: '/oa/salary/' + salaryId,
42
+    method: 'delete'
43
+  })
44
+}

+ 36
- 28
oa-ui/src/views/flowable/form/carForm.vue View File

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-03-14 09:33:02
6
--->
7
-<!--
8
- * @Author: wrh
9
- * @Date: 2024-02-29 17:24:39
10
- * @LastEditors: Please set LastEditors
11
- * @LastEditTime: 2024-03-07 13:43:50
4
+ * @LastEditors: wrh
5
+ * @LastEditTime: 2024-03-25 17:24:13
12
 -->
6
 -->
13
 
7
 
14
 <template>
8
 <template>
22
               <!-- 申请人填写 -->
16
               <!-- 申请人填写 -->
23
               <el-row :gutter="20">
17
               <el-row :gutter="20">
24
                 <el-col :span="6" :xs="24">
18
                 <el-col :span="6" :xs="24">
25
-                  <el-form-item label="申请人:" prop="user">
19
+                  <el-form-item label="申请人:" prop="user.nickName">
26
                     <!-- <el-input v-model="form.user"></el-input> -->
20
                     <!-- <el-input v-model="form.user"></el-input> -->
27
-                    {{ form.user }}
21
+                    {{ form.user.nickName }}
28
                   </el-form-item>
22
                   </el-form-item>
29
                 </el-col>
23
                 </el-col>
30
                 <el-col :span="6" :xs="24">
24
                 <el-col :span="6" :xs="24">
31
-                  <el-form-item label="所在部门:" prop="deptName">
25
+                  <el-form-item label="所在部门:" prop="dept.deptName">
32
                     <!-- <el-input v-model="form.deptName"></el-input> -->
26
                     <!-- <el-input v-model="form.deptName"></el-input> -->
33
-                    {{ form.deptName }}
27
+                    {{ form.dept.deptName }}
34
                   </el-form-item>
28
                   </el-form-item>
35
                 </el-col>
29
                 </el-col>
36
                 <el-col :span="6" :xs="24">
30
                 <el-col :span="6" :xs="24">
41
                   </el-form-item>
35
                   </el-form-item>
42
                 </el-col>
36
                 </el-col>
43
               </el-row>
37
               </el-row>
44
-              <el-form-item label="项目编号:" prop="projectNumber" v-if="taskForm.procDefName == '用车审批'">
45
-                <el-select v-model="form.projectNumber" filterable placeholder="请选择" @change="handleSelectProject"
38
+              <el-form-item label="项目编号:" prop="projectId" v-if="taskForm.procDefName == '用车审批'">
39
+                <el-select v-model="form.projectId" filterable placeholder="请选择" @change="handleSelectProject"
46
                   :disabled="taskName != '用车申请'" clearable>
40
                   :disabled="taskName != '用车申请'" clearable>
47
                   <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber"
41
                   <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber"
48
                     :value="item.projectId">
42
                     :value="item.projectId">
50
                 </el-select>
44
                 </el-select>
51
                 <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
45
                 <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
52
                   <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
46
                   <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
53
-                    }}</el-descriptions-item>
47
+                  }}</el-descriptions-item>
54
                   <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
48
                   <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
55
-                    }}</el-descriptions-item>
49
+                  }}</el-descriptions-item>
56
                   <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeader
50
                   <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeader
57
-                    }}</el-descriptions-item>
51
+                  }}</el-descriptions-item>
58
                   <el-descriptions-item label="承担部门" label-class-name="my-label">
52
                   <el-descriptions-item label="承担部门" label-class-name="my-label">
59
                     <el-tag size="small">{{ chooseProject.undertakingDept }}</el-tag>
53
                     <el-tag size="small">{{ chooseProject.undertakingDept }}</el-tag>
60
                   </el-descriptions-item>
54
                   </el-descriptions-item>
61
                   <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
55
                   <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
62
-                    }}</el-descriptions-item>
56
+                  }}</el-descriptions-item>
63
                 </el-descriptions>
57
                 </el-descriptions>
64
               </el-form-item>
58
               </el-form-item>
65
               <el-form-item label="乘车人数:" prop="passengers">
59
               <el-form-item label="乘车人数:" prop="passengers">
99
                 </el-input>
93
                 </el-input>
100
               </el-form-item>
94
               </el-form-item>
101
               <!-- 分管审核意见 -->
95
               <!-- 分管审核意见 -->
102
-              <el-form-item label="分管审核意见:" prop="managerComment" label-width="120px" v-if="taskForm.procDefName == '用车审批'">
96
+              <el-form-item label="分管审核意见:" prop="managerComment" label-width="120px"
97
+                v-if="taskForm.procDefName == '用车审批'">
103
                 <el-input type="textarea" :rows="2" placeholder="请输入分管审核意见" v-model="form.managerComment"
98
                 <el-input type="textarea" :rows="2" placeholder="请输入分管审核意见" v-model="form.managerComment"
104
                   :disabled="taskName != '分管审核'">
99
                   :disabled="taskName != '分管审核'">
105
                 </el-input>
100
                 </el-input>
106
               </el-form-item>
101
               </el-form-item>
107
               <!-- 工会审核意见 -->
102
               <!-- 工会审核意见 -->
108
-              <el-form-item label="工会审核意见:" prop="unionComment" label-width="120px" v-if="taskForm.procDefName == '用车审批(工会)'">
103
+              <el-form-item label="工会审核意见:" prop="unionComment" label-width="120px"
104
+                v-if="taskForm.procDefName == '用车审批(工会)'">
109
                 <el-input type="textarea" :rows="2" placeholder="请输入工会审核意见" v-model="form.unionComment"
105
                 <el-input type="textarea" :rows="2" placeholder="请输入工会审核意见" v-model="form.unionComment"
110
                   :disabled="taskName != '工会审核'">
106
                   :disabled="taskName != '工会审核'">
111
                 </el-input>
107
                 </el-input>
112
               </el-form-item>
108
               </el-form-item>
113
               <!-- 安排用车意见 -->
109
               <!-- 安排用车意见 -->
114
-              <el-form-item label="安排用车意见:" prop="dispatchComment" label-width="120px" v-if="taskForm.procDefName == '用车审批'">
110
+              <el-form-item label="安排用车意见:" prop="dispatchComment" label-width="120px"
111
+                v-if="taskForm.procDefName == '用车审批'">
115
                 <el-input type="textarea" :rows="2" placeholder="请输入安排用车意见" v-model="form.dispatchComment"
112
                 <el-input type="textarea" :rows="2" placeholder="请输入安排用车意见" v-model="form.dispatchComment"
116
                   :disabled="taskName != '安排用车'">
113
                   :disabled="taskName != '安排用车'">
117
                 </el-input>
114
                 </el-input>
181
     }
178
     }
182
   },
179
   },
183
   created() {
180
   created() {
181
+    this.form.user.nickName = this.$store.getters.name;
182
+    this.form.dept.deptName = this.$store.getters.deptName;
184
     this.getProjectList();
183
     this.getProjectList();
185
     this.getCarList();
184
     this.getCarList();
186
     this.getDriverList();
185
     this.getDriverList();
193
       form: {
192
       form: {
194
         days: '',
193
         days: '',
195
         drivers: [],
194
         drivers: [],
196
-        user: '',
195
+        user: {
196
+          nickName: '',
197
+        },
198
+        dept: {
199
+          deptName: '',
200
+        },
197
         applyDate: undefined,
201
         applyDate: undefined,
198
-        deptName: '',
199
         applier: '',
202
         applier: '',
200
         cars: []
203
         cars: []
201
       },
204
       },
232
     // 初始化表单
235
     // 初始化表单
233
     initForm() {
236
     initForm() {
234
       getCarApproval(this.taskForm.formId).then(res => {
237
       getCarApproval(this.taskForm.formId).then(res => {
238
+        console.log(res.data)
235
         if (this.isEmptyObject(res.data)) {
239
         if (this.isEmptyObject(res.data)) {
236
           this.formTotal = 0;
240
           this.formTotal = 0;
237
-          this.form.user = this.$store.getters.name;
241
+          this.form.user.nickName = this.$store.getters.name;
238
           this.form.applier = this.$store.getters.userId;
242
           this.form.applier = this.$store.getters.userId;
239
-          this.form.deptName = this.$store.getters.deptName;
243
+          this.form.dept.deptName = this.$store.getters.deptName;
240
           this.form.applyDate = new Date();
244
           this.form.applyDate = new Date();
241
         }
245
         }
242
         else {
246
         else {
263
             data.cars = arr;
267
             data.cars = arr;
264
           }
268
           }
265
           this.form = data;
269
           this.form = data;
270
+          getProject(data.projectId).then(response => {
271
+            this.chooseProject = response.data;
272
+            this.isSelect = true
273
+          })
266
         }
274
         }
267
       })
275
       })
268
     },
276
     },
326
           });
334
           });
327
         })
335
         })
328
       } else if (this.taskName == '分管审核' || this.taskName == '工会审核') {
336
       } else if (this.taskName == '分管审核' || this.taskName == '工会审核') {
329
-        this.$set(this.taskForm.variables, "approvalList", [8,16]);
337
+        this.$set(this.taskForm.variables, "approvalList", [8, 16]);
330
         complete(this.taskForm).then(response => {
338
         complete(this.taskForm).then(response => {
331
           this.$modal.msgSuccess(response.msg);
339
           this.$modal.msgSuccess(response.msg);
332
           this.$emit('goBack')
340
           this.$emit('goBack')
415
   width: 100px;
423
   width: 100px;
416
   background: #E1F3D8;
424
   background: #E1F3D8;
417
 }
425
 }
426
+
418
 ::v-deep .el-input.is-disabled .el-input__inner {
427
 ::v-deep .el-input.is-disabled .el-input__inner {
419
   color: #121212 !important;
428
   color: #121212 !important;
420
 }
429
 }
421
 
430
 
422
 ::v-deep .el-textarea.is-disabled .el-textarea__inner {
431
 ::v-deep .el-textarea.is-disabled .el-textarea__inner {
423
   color: #121212 !important;
432
   color: #121212 !important;
424
-}
425
-</style>
433
+}</style>

+ 20
- 14
oa-ui/src/views/flowable/form/deviceForm.vue View File

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-03-20 17:05:27
5
+ * @LastEditTime: 2024-03-25 16:49:48
6
 -->
6
 -->
7
 
7
 
8
 <template>
8
 <template>
16
               <!-- 申请人填写 -->
16
               <!-- 申请人填写 -->
17
               <el-row :gutter="20">
17
               <el-row :gutter="20">
18
                 <el-col :span="6" :xs="24">
18
                 <el-col :span="6" :xs="24">
19
-                  <el-form-item label="申请人:" prop="user">
19
+                  <el-form-item label="申请人:" prop="user.nickName">
20
                     <!-- <el-input v-model="form.user"></el-input> -->
20
                     <!-- <el-input v-model="form.user"></el-input> -->
21
-                    {{ form.user }}
21
+                    {{ form.user.nickName }}
22
                   </el-form-item>
22
                   </el-form-item>
23
                 </el-col>
23
                 </el-col>
24
                 <el-col :span="6" :xs="24">
24
                 <el-col :span="6" :xs="24">
25
-                  <el-form-item label="所在部门:" prop="deptName">
25
+                  <el-form-item label="所在部门:" prop="dept.deptName">
26
                     <!-- <el-input v-model="form.deptName"></el-input> -->
26
                     <!-- <el-input v-model="form.deptName"></el-input> -->
27
-                    {{ form.deptName }}
27
+                    {{ form.dept.deptName }}
28
                   </el-form-item>
28
                   </el-form-item>
29
                 </el-col>
29
                 </el-col>
30
                 <el-col :span="6" :xs="24">
30
                 <el-col :span="6" :xs="24">
35
                   </el-form-item>
35
                   </el-form-item>
36
                 </el-col>
36
                 </el-col>
37
               </el-row>
37
               </el-row>
38
-              <el-form-item label="项目编号:" prop="projectNumber">
39
-                <el-select v-model="form.projectNumber" filterable allow-create placeholder="请选择"
38
+              <el-form-item label="项目编号:" prop="projectId">
39
+                <el-select v-model="form.projectId" filterable allow-create placeholder="请选择"
40
                   @change="handleSelectProject" clearable :disabled="taskName != '设备申请'">
40
                   @change="handleSelectProject" clearable :disabled="taskName != '设备申请'">
41
                   <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber"
41
                   <el-option v-for="item in projectList" :key="item.value" :label="item.projectNumber"
42
                     :value="item.projectId">
42
                     :value="item.projectId">
166
     }
166
     }
167
   },
167
   },
168
   created() {
168
   created() {
169
-    this.form.user = this.$store.getters.name;
170
-    this.form.deptName = this.$store.getters.deptName;
169
+    this.form.user.nickName = this.$store.getters.name;
170
+    this.form.dept.deptName = this.$store.getters.deptName;
171
     this.getProjectList();
171
     this.getProjectList();
172
     this.getDeviceList();
172
     this.getDeviceList();
173
     flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
173
     flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
177
   data() {
177
   data() {
178
     return {
178
     return {
179
       form: {
179
       form: {
180
+        user: {
181
+          nickName: '',
182
+        },
183
+        dept: {
184
+          deptName: '',
185
+        },
180
         applyDate: new Date(),
186
         applyDate: new Date(),
181
         days: ""
187
         days: ""
182
       },
188
       },
185
       flowData: {},
191
       flowData: {},
186
       isSelect: false,
192
       isSelect: false,
187
       rules: {
193
       rules: {
188
-        projectNumber: [
194
+        projectId: [
189
           { required: true, message: '请选择项目编号', trigger: 'change' },
195
           { required: true, message: '请选择项目编号', trigger: 'change' },
190
         ],
196
         ],
191
         passengers: [
197
         passengers: [
214
     // 初始化表单
220
     // 初始化表单
215
     initForm() {
221
     initForm() {
216
       getDeviceApproval(this.taskForm.formId).then(res => {
222
       getDeviceApproval(this.taskForm.formId).then(res => {
217
-        debugger
223
+        console.log(res.data)
218
         if (this.isEmptyObject(res.data)) {
224
         if (this.isEmptyObject(res.data)) {
219
           this.formTotal = 0;
225
           this.formTotal = 0;
220
-          this.form.user = this.$store.getters.name;
226
+          this.form.user.nickName = this.$store.getters.name;
221
           this.form.applier = this.$store.getters.userId;
227
           this.form.applier = this.$store.getters.userId;
222
-          this.form.deptName = this.$store.getters.deptName;
228
+          this.form.dept.deptName = this.$store.getters.deptName;
223
           this.form.applyDate = new Date();
229
           this.form.applyDate = new Date();
224
         } else {
230
         } else {
225
           this.formTotal = 1;
231
           this.formTotal = 1;
226
           let data = res.data;
232
           let data = res.data;
227
           this.form = data;
233
           this.form = data;
228
-          getProject(data.projectNumber).then(response => {
234
+          getProject(data.projectId).then(response => {
229
             this.chooseProject = response.data;
235
             this.chooseProject = response.data;
230
             this.isSelect = true
236
             this.isSelect = true
231
           })
237
           })

oa-ui/src/views/oa/device/expense.vue → oa-ui/src/views/oa/device/approval.vue View File

1
-<template>
2
-  <div class="app-container">
3
-    <div class="header">
4
-      <el-button icon="el-icon-d-arrow-left" plain type="primary" class="back" @click="goBack">返回</el-button>
5
-      <h1>{{ '【' + deviceInfo.name + '】' }}设备明细</h1>
6
-    </div>
7
-    <el-divider></el-divider>
8
-    <el-descriptions class="descriptions" :column="column" border style="text-align: center;">
9
-      <el-descriptions-item>
10
-        <template slot="label">
11
-          <svg-icon slot="prefix" icon-class="key" class="el-input__icon input-icon" />
12
-          出厂编号
13
-        </template>
14
-        {{ deviceInfo.code }}
15
-      </el-descriptions-item>
16
-      <el-descriptions-item>
17
-        <template slot="label">
18
-          <svg-icon slot="prefix" icon-class="dict" class="el-input__icon input-icon" />
19
-          设备名称
20
-        </template>
21
-        {{ deviceInfo.name }}
22
-      </el-descriptions-item>
23
-      <el-descriptions-item>
24
-        <template slot="label">
25
-          <svg-icon slot="prefix" icon-class="bug" class="el-input__icon input-icon" />
26
-          设备类别
27
-        </template>
28
-        {{ deviceInfo.type }}
29
-      </el-descriptions-item>
30
-      <el-descriptions-item>
31
-        <template slot="label">
32
-          <svg-icon slot="prefix" icon-class="TeenyiconsYenSolid" class="el-input__icon input-icon" />
33
-          购买价格
34
-        </template>
35
-        {{ deviceInfo.cost }} 元
36
-      </el-descriptions-item>
37
-      <el-descriptions-item>
38
-        <template slot="label">
39
-          <svg-icon slot="prefix" icon-class="date" class="el-input__icon input-icon" />
40
-          购置时间
41
-        </template>
42
-        {{ parseTime(deviceInfo.acquisitionTime, '{y}-{m}-{d}') }}
43
-      </el-descriptions-item>
44
-      <el-descriptions-item>
45
-        <template slot="label">
46
-          <svg-icon slot="prefix" icon-class="Branding" class="el-input__icon input-icon" />
47
-          设备品牌
48
-        </template>
49
-        {{ deviceInfo.brand }}
50
-      </el-descriptions-item>
51
-      <el-descriptions-item>
52
-        <template slot="label">
53
-          <svg-icon slot="prefix" icon-class="date" class="el-input__icon input-icon" />
54
-          预计使用年限
55
-        </template>
56
-        {{ deviceInfo.expectLife }}
57
-      </el-descriptions-item>
58
-      <el-descriptions-item>
59
-        <template slot="label">
60
-          <svg-icon slot="prefix" icon-class="TeenyiconsYenSolid" class="el-input__icon input-icon" />
61
-          单日成本
62
-        </template>
63
-        {{ deviceInfo.dayCost }}
64
-      </el-descriptions-item>
65
-      <el-descriptions-item>
66
-        <template slot="label">
67
-          <svg-icon slot="prefix" icon-class="place" class="el-input__icon input-icon" />
68
-          存放地点
69
-        </template>
70
-        {{ deviceInfo.place }}
71
-      </el-descriptions-item>
72
-      <el-descriptions-item>
73
-        <template slot="label">
74
-          <svg-icon slot="prefix" icon-class="date" class="el-input__icon input-icon" />
75
-          校验周期(年)
76
-        </template>
77
-        {{ deviceInfo.checkTerm }}
78
-      </el-descriptions-item>
79
-      <el-descriptions-item>
80
-        <template slot="label">
81
-          <svg-icon slot="prefix" icon-class="date" class="el-input__icon input-icon" />
82
-          保修期(月)
83
-        </template>
84
-        {{ deviceInfo.warranty }}
85
-      </el-descriptions-item>
86
-      <el-descriptions-item>
87
-        <template slot="label">
88
-          <svg-icon slot="prefix" icon-class="date" class="el-input__icon input-icon" />
89
-          校验日期
90
-        </template>
91
-        {{ parseTime(deviceInfo.checkTime, '{y}-{m}-{d}') }}
92
-      </el-descriptions-item>
93
-      <el-descriptions-item>
94
-        <template slot="label">
95
-          <svg-icon slot="prefix" icon-class="dept" class="el-input__icon input-icon" />
96
-          管理部门
97
-        </template>
98
-        {{ deviceInfo.manageDeptName }}
99
-      </el-descriptions-item>
100
-      <el-descriptions-item>
101
-        <template slot="label">
102
-          <svg-icon slot="prefix" icon-class="remark" class="el-input__icon input-icon" />
103
-          备注
104
-        </template>
105
-        {{ deviceInfo.remark }}
106
-      </el-descriptions-item>
107
-    </el-descriptions>
108
-    <!-- 费用明细 -->
109
-    <el-divider></el-divider>
110
-
111
-    <el-deviced>
112
-      <div slot="header" class="clearfix">
113
-        <h3>设备使用记录</h3>
114
-      </div>
115
-      <el-row :gutter="10" class="mb8">
116
-        <el-col :span="1.5">
117
-          <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
118
-        </el-col>
119
-        <el-col :span="1.5">
120
-          <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single"
121
-            @click="handleUpdate">修改</el-button>
122
-        </el-col>
123
-        <el-col :span="1.5">
124
-          <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
125
-            @click="handleDelete">删除</el-button>
126
-        </el-col>
127
-        <el-col :span="1.5">
128
-          <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
129
-        </el-col>
130
-      </el-row>
131
-      <!-- 设备使用记录 -->
132
-      <el-table v-loading="loading" :data="expenseList" @selection-change="handleSelectionChange">
133
-        <el-table-column type="selection" width="55" align="center" />
134
-        <el-table-column type="index" width="55" align="center" label="序号" />
135
-        <el-table-column label="项目编号" align="center" prop="projectNumber">
136
-        </el-table-column>
137
-        <el-table-column label="项目名称" align="center" prop="projectName">
138
-          <template slot-scope="scope">
139
-            {{ scope.row.projectName }}
140
-          </template>
141
-        </el-table-column>
142
-        <el-table-column label="申请时间" align="center" prop="beginDate">
143
-          <template slot-scope="scope">
144
-            {{ scope.row.beginDate }}
145
-          </template>
146
-        </el-table-column>
147
-        <el-table-column label="归还时间" align="center" prop="returnDate" width="180">
148
-          <template slot-scope="scope">
149
-            {{ scope.row.returnDate }}
150
-          </template>
151
-        </el-table-column>
152
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
153
-          <template slot-scope="scope">
154
-            <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
155
-              v-hasPermi="['oa:deviceApproval:edit']">修改</el-button>
156
-            <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
157
-              v-hasPermi="['oa:deviceApproval:remove']">删除</el-button>
158
-          </template>
159
-        </el-table-column>
160
-      </el-table>
161
-      <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
162
-        @pagination="getList" />
163
-    </el-deviced>
164
-    <!-- 添加明细 -->
165
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
166
-      <el-form ref="expenseForm" :model="form" :rules="rules" label-width="100px">
167
-        <el-form-item label="费用类型" prop="expenseType">
168
-          <el-select v-model="form.expenseType" placeholder="请选择" clearable>
169
-            <el-option label="保险费" value="0"></el-option>
170
-            <el-option label="维修/保养费" value="1"></el-option>
171
-            <el-option label="轮胎费" value="2"></el-option>
172
-          </el-select>
173
-        </el-form-item>
174
-        <el-form-item label="费用金额" prop="expense">
175
-          <el-input v-model="form.expense" placeholder="请输入费用金额" style="width:150px" /> <el-tag>元</el-tag>
176
-        </el-form-item>
177
-        <el-form-item label="发生日期" prop="occurDate">
178
-          <el-date-picker clearable v-model="form.occurDate" type="date" value-format="yyyy-MM-dd"
179
-            placeholder="请选择发生日期">
180
-          </el-date-picker>
181
-        </el-form-item>
182
-      </el-form>
183
-      <div slot="footer" class="dialog-footer">
184
-        <el-button type="primary" @click="submitForm">确 定</el-button>
185
-        <el-button @click="cancel">取 消</el-button>
186
-      </div>
187
-    </el-dialog>
188
-  </div>
189
-</template>
190
-
191
-<script>
192
-import { getDevice } from '@/api/oa/device/device.js'
193
-import { listDeviceApproval, getDeviceApproval, delDeviceApproval, addDeviceApproval, updateDeviceApproval } from "@/api/oa/device/deviceApproval";
194
-export default {
195
-  data() {
196
-    let validateApproval = (rule, value, callback) => {
197
-      setTimeout(() => {
198
-        if (!value) {
199
-          return callback(new Error('请输入金额'));
200
-        }
201
-        if (!this.isNumber(Number(value))) {
202
-          callback(new Error('请输入数字值'));
203
-        } else {
204
-          callback();
205
-        }
206
-      }, 100)
207
-    }
208
-    return {
209
-      column: 4,
210
-      deviceInfo: {},
211
-      expenseList: [],
212
-      queryParams: {
213
-        pageNum: 1,
214
-        pageSize: 10,
215
-      },
216
-      total: 0,
217
-      multiple: true,
218
-      // 选中数组
219
-      ids: [],
220
-      // 非单个禁用
221
-      single: true,
222
-      title: '',
223
-      open: false,
224
-      form: {},
225
-      rules: {
226
-        expenseType: [
227
-          { required: true, message: '请选择费用类型', trigger: 'change' }
228
-        ],
229
-        expense: [
230
-          { validator: validateApproval, required: true, trigger: 'blur' },
231
-        ],
232
-        occurDate: [
233
-          { required: true, message: '请选择发生日期', trigger: 'change' },
234
-        ],
235
-      },
236
-      loading: false
237
-    }
238
-  },
239
-  created() {
240
-    if (this.$route.query) {
241
-      getDevice(this.$route.query.deviceId).then(res => {
242
-        console.log(res);
243
-        this.deviceInfo = res.data;
244
-      })
245
-      this.getList();
246
-    }
247
-    if (this.$store.state.app.device == 'desktop') {
248
-
249
-    } else {
250
-      this.column = 1
251
-    }
252
-  },
253
-  methods: {
254
-    getList() {
255
-      this.queryParams.devices = this.$route.query.deviceId
256
-      listDeviceApproval(this.queryParams).then(res => {
257
-        console.log(res);
258
-        this.expenseList = res.rows;
259
-        this.total = res.total;
260
-      })
261
-    },
262
-    goBack() {
263
-      let obj = { path: "/device/expense" }
264
-      this.$tab.closeOpenPage(obj);
265
-      this.$router.push({ path: '/device' });
266
-    },
267
-    /** 搜索按钮操作 */
268
-    handleQuery() {
269
-      this.queryParams.pageNum = 1;
270
-      this.getList();
271
-    },
272
-    // 多选框选中数据
273
-    handleSelectionChange(selection) {
274
-      this.ids = selection.map(item => item.deviceApprovalId)
275
-      this.single = selection.length !== 1
276
-      this.multiple = !selection.length
277
-    },
278
-    handleAdd() {
279
-      this.reset();
280
-      this.open = true;
281
-      this.title = "添加车辆明细";
282
-    },
283
-    handleUpdate(row) {
284
-      this.reset();
285
-      const deviceApprovalId = row.deviceApprovalId || this.ids
286
-      getDeviceApproval(deviceApprovalId).then(response => {
287
-        this.form = response.data;
288
-        this.open = true;
289
-        this.title = "修改车辆明细";
290
-      });
291
-    },
292
-    handleDelete(row) {
293
-      debugger
294
-      const deviceApprovalIds = row.deviceApprovalId || this.ids;
295
-      this.$modal.confirm('是否确认删除车辆费用编号为"' + deviceApprovalIds + '"的数据项?').then(function () {
296
-        return delDeviceApproval(deviceApprovalIds);
297
-      }).then(() => {
298
-        this.getList();
299
-        this.$modal.msgSuccess("删除成功");
300
-      }).catch(() => { });
301
-    },
302
-    handleExport() {
303
-      this.download('oa/deviceApproval/export', {
304
-        ...this.queryParams
305
-      }, `deviceApproval_${new Date().getTime()}.xlsx`)
306
-    },
307
-    // 表单重置
308
-    reset() {
309
-      this.form = {
310
-        deviceApprovalId: null,
311
-        deviceId: null,
312
-        expenseType: null,
313
-        expense: null,
314
-        occurDate: null
315
-      };
316
-      this.resetForm("expenseForm");
317
-    },
318
-    submitForm() {
319
-      this.$refs["expenseForm"].validate(valid => {
320
-        if (valid) {
321
-          this.form.deviceId = this.$route.query.deviceId
322
-          if (this.form.deviceApprovalId != null) {
323
-            updateDeviceApproval(this.form).then(response => {
324
-              this.$modal.msgSuccess("修改成功");
325
-              this.open = false;
326
-              this.getList();
327
-            });
328
-          } else {
329
-            addDeviceApproval(this.form).then(response => {
330
-              this.$modal.msgSuccess("新增成功");
331
-              this.open = false;
332
-              this.getList();
333
-            });
334
-          }
335
-        }
336
-      });
337
-    },
338
-    cancel() {
339
-      this.open = false;
340
-      this.reset();
341
-    },
342
-    isNumber(value) {
343
-      return typeof value === 'number' && /^\d+(\.\d+)?$/.test(value);
344
-    },
345
-    expenseTypeText(row) {
346
-      if (row == '0') {
347
-        return '保险费'
348
-      }
349
-      if (row == '1') {
350
-        return '维修/保养费'
351
-      }
352
-      if (row == '2') {
353
-        return '轮胎费'
354
-      }
355
-    },
356
-    typeStyle(row) {
357
-      if (row == '0') {
358
-        return 'primary'
359
-      }
360
-      if (row == '1') {
361
-        return 'warning'
362
-      }
363
-      if (row == '2') {
364
-        return 'success'
365
-      }
366
-    }
367
-  },
368
-}
369
-</script>
370
-
371
-<style lang="scss" scoped>
372
-.header {
373
-  position: relative;
374
-  text-align: center;
375
-
376
-  .back {
377
-    position: absolute;
378
-    left: 12px;
379
-    top: -10px;
380
-  }
381
-}
382
-
383
-.descriptions {
384
-  padding: 20px 50px;
385
-}
386
-
387
-
388
-::v-deep .el-descriptions-item__label.is-bordered-label {
389
-  color: #121212;
390
-  background: rgba($color: #46a6ff, $alpha: 0.1);
391
-  width: 200px;
392
-}
393
-
394
-::v-deep .el-descriptions .is-bordered .el-descriptions-item__cell {
395
-  border: 1px solid #2d3f62;
396
-}
1
+<template>
2
+  <div class="app-container">
3
+    <div class="header">
4
+      <el-button icon="el-icon-d-arrow-left" plain type="primary" class="back" @click="goBack">返回</el-button>
5
+      <h1>{{ '【' + deviceInfo.name + '】' }}设备明细</h1>
6
+    </div>
7
+    <el-divider></el-divider>
8
+    <el-descriptions class="descriptions" :column="column" border style="text-align: center;">
9
+      <el-descriptions-item>
10
+        <template slot="label">
11
+          <svg-icon slot="prefix" icon-class="key" class="el-input__icon input-icon" />
12
+          出厂编号
13
+        </template>
14
+        {{ deviceInfo.code }}
15
+      </el-descriptions-item>
16
+      <el-descriptions-item>
17
+        <template slot="label">
18
+          <svg-icon slot="prefix" icon-class="dict" class="el-input__icon input-icon" />
19
+          设备名称
20
+        </template>
21
+        {{ deviceInfo.name }}
22
+      </el-descriptions-item>
23
+      <el-descriptions-item>
24
+        <template slot="label">
25
+          <svg-icon slot="prefix" icon-class="bug" class="el-input__icon input-icon" />
26
+          设备类别
27
+        </template>
28
+        {{ deviceInfo.type }}
29
+      </el-descriptions-item>
30
+      <el-descriptions-item>
31
+        <template slot="label">
32
+          <svg-icon slot="prefix" icon-class="TeenyiconsYenSolid" class="el-input__icon input-icon" />
33
+          购买价格
34
+        </template>
35
+        {{ deviceInfo.cost }} 元
36
+      </el-descriptions-item>
37
+      <el-descriptions-item>
38
+        <template slot="label">
39
+          <svg-icon slot="prefix" icon-class="date" class="el-input__icon input-icon" />
40
+          购置时间
41
+        </template>
42
+        {{ parseTime(deviceInfo.acquisitionTime, '{y}-{m}-{d}') }}
43
+      </el-descriptions-item>
44
+      <el-descriptions-item>
45
+        <template slot="label">
46
+          <svg-icon slot="prefix" icon-class="Branding" class="el-input__icon input-icon" />
47
+          设备品牌
48
+        </template>
49
+        {{ deviceInfo.brand }}
50
+      </el-descriptions-item>
51
+      <el-descriptions-item>
52
+        <template slot="label">
53
+          <svg-icon slot="prefix" icon-class="date" class="el-input__icon input-icon" />
54
+          预计使用年限
55
+        </template>
56
+        {{ deviceInfo.expectLife }}
57
+      </el-descriptions-item>
58
+      <el-descriptions-item>
59
+        <template slot="label">
60
+          <svg-icon slot="prefix" icon-class="TeenyiconsYenSolid" class="el-input__icon input-icon" />
61
+          单日成本
62
+        </template>
63
+        {{ deviceInfo.dayCost }}
64
+      </el-descriptions-item>
65
+      <el-descriptions-item>
66
+        <template slot="label">
67
+          <svg-icon slot="prefix" icon-class="place" class="el-input__icon input-icon" />
68
+          存放地点
69
+        </template>
70
+        {{ deviceInfo.place }}
71
+      </el-descriptions-item>
72
+      <el-descriptions-item>
73
+        <template slot="label">
74
+          <svg-icon slot="prefix" icon-class="date" class="el-input__icon input-icon" />
75
+          校验周期(年)
76
+        </template>
77
+        {{ deviceInfo.checkTerm }}
78
+      </el-descriptions-item>
79
+      <el-descriptions-item>
80
+        <template slot="label">
81
+          <svg-icon slot="prefix" icon-class="date" class="el-input__icon input-icon" />
82
+          保修期(月)
83
+        </template>
84
+        {{ deviceInfo.warranty }}
85
+      </el-descriptions-item>
86
+      <el-descriptions-item>
87
+        <template slot="label">
88
+          <svg-icon slot="prefix" icon-class="date" class="el-input__icon input-icon" />
89
+          校验日期
90
+        </template>
91
+        {{ parseTime(deviceInfo.checkTime, '{y}-{m}-{d}') }}
92
+      </el-descriptions-item>
93
+      <el-descriptions-item>
94
+        <template slot="label">
95
+          <svg-icon slot="prefix" icon-class="dept" class="el-input__icon input-icon" />
96
+          管理部门
97
+        </template>
98
+        {{ deviceInfo.manageDeptName }}
99
+      </el-descriptions-item>
100
+      <el-descriptions-item>
101
+        <template slot="label">
102
+          <svg-icon slot="prefix" icon-class="remark" class="el-input__icon input-icon" />
103
+          备注
104
+        </template>
105
+        {{ deviceInfo.remark }}
106
+      </el-descriptions-item>
107
+    </el-descriptions>
108
+    <!-- 费用明细 -->
109
+    <el-divider></el-divider>
110
+
111
+    <el-deviced>
112
+      <div slot="header" class="clearfix">
113
+        <h3>设备使用记录</h3>
114
+      </div>
115
+      <el-row :gutter="10" class="mb8">
116
+        <el-col :span="1.5">
117
+          <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
118
+        </el-col>
119
+        <el-col :span="1.5">
120
+          <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single"
121
+            @click="handleUpdate">修改</el-button>
122
+        </el-col>
123
+        <el-col :span="1.5">
124
+          <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
125
+            @click="handleDelete">删除</el-button>
126
+        </el-col>
127
+        <el-col :span="1.5">
128
+          <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
129
+        </el-col>
130
+      </el-row>
131
+      <!-- 设备使用记录 -->
132
+      <el-table v-loading="loading" :data="approvalList" @selection-change="handleSelectionChange">
133
+        <el-table-column type="selection" width="55" align="center" />
134
+        <el-table-column type="index" width="55" align="center" label="序号" />
135
+        <el-table-column label="申请人" align="center" prop="user.nickName">
136
+          <template slot-scope="scope">
137
+            {{ scope.row.user ? scope.row.user.nickName : '' }}
138
+          </template>
139
+        </el-table-column>
140
+        <el-table-column label="使用部门" align="center" prop="dept.deptName">
141
+          <template slot-scope="scope">
142
+            {{ scope.row.dept ? scope.row.dept.deptName : '' }}
143
+          </template>
144
+        </el-table-column>
145
+        <el-table-column label="项目编号" align="center" prop="project.projectNumber">
146
+          <template slot-scope="scope">
147
+            {{ scope.row.project ? scope.row.project.projectNumber : '' }}
148
+          </template>
149
+        </el-table-column>
150
+        <el-table-column label="项目名称" align="center" prop="project.projectName">
151
+          <template slot-scope="scope">
152
+            {{ scope.row.project ? scope.row.project.projectName : '' }}
153
+          </template>
154
+        </el-table-column>
155
+        <el-table-column label="申请时间" align="center" prop="beginDate">
156
+          <template slot-scope="scope">
157
+            {{ scope.row.beginDate }}
158
+          </template>
159
+        </el-table-column>
160
+        <el-table-column label="归还时间" align="center" prop="returnDate" width="180">
161
+          <template slot-scope="scope">
162
+            {{ scope.row.returnDate }}
163
+          </template>
164
+        </el-table-column>
165
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
166
+          <template slot-scope="scope">
167
+            <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
168
+              v-hasPermi="['oa:deviceApproval:edit']">修改</el-button>
169
+            <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
170
+              v-hasPermi="['oa:deviceApproval:remove']">删除</el-button>
171
+          </template>
172
+        </el-table-column>
173
+      </el-table>
174
+      <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
175
+        @pagination="getList" />
176
+    </el-deviced>
177
+    <!-- 添加明细 -->
178
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
179
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
180
+        <el-form-item label="申请人" prop="applier">
181
+          <el-input v-model="form.applier" placeholder="请输入申请人" />
182
+        </el-form-item>
183
+        <el-form-item label="使用部门" prop="useDept">
184
+          <el-input v-model="form.useDept" placeholder="请输入使用部门" />
185
+        </el-form-item>
186
+        <el-form-item label="设备id" prop="devices">
187
+          <el-input v-model="form.devices" placeholder="请输入设备id" />
188
+        </el-form-item>
189
+        <el-form-item label="项目id" prop="projectId">
190
+          <el-input v-model="form.projectId" placeholder="请输入项目id" />
191
+        </el-form-item>
192
+        <el-form-item label="申领事由" prop="applyReason">
193
+          <el-input v-model="form.applyReason" placeholder="请输入申领事由" />
194
+        </el-form-item>
195
+        <el-form-item label="开始日期" prop="beginDate">
196
+          <el-date-picker clearable v-model="form.beginDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择开始日期">
197
+          </el-date-picker>
198
+        </el-form-item>
199
+        <el-form-item label="结束日期" prop="endDate">
200
+          <el-date-picker clearable v-model="form.endDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择结束日期">
201
+          </el-date-picker>
202
+        </el-form-item>
203
+        <el-form-item label="天数" prop="days">
204
+          <el-input v-model="form.days" placeholder="请输入天数" />
205
+        </el-form-item>
206
+        <el-form-item label="申请日期" prop="applyDate">
207
+          <el-date-picker clearable v-model="form.applyDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择申请日期">
208
+          </el-date-picker>
209
+        </el-form-item>
210
+        <el-form-item label="归还日期" prop="returnDate">
211
+          <el-date-picker clearable v-model="form.returnDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择归还日期">
212
+          </el-date-picker>
213
+        </el-form-item>
214
+      </el-form>
215
+      <div slot="footer" class="dialog-footer">
216
+        <el-button type="primary" @click="submitForm">确 定</el-button>
217
+        <el-button @click="cancel">取 消</el-button>
218
+      </div>
219
+    </el-dialog>
220
+  </div>
221
+</template>
222
+
223
+<script>
224
+import { getDevice } from '@/api/oa/device/device.js'
225
+import { listDeviceApproval, getDeviceApproval, delDeviceApproval, addDeviceApproval, updateDeviceApproval } from "@/api/oa/device/deviceApproval";
226
+export default {
227
+  data() {
228
+    let validateApproval = (rule, value, callback) => {
229
+      setTimeout(() => {
230
+        if (!value) {
231
+          return callback(new Error('请输入金额'));
232
+        }
233
+        if (!this.isNumber(Number(value))) {
234
+          callback(new Error('请输入数字值'));
235
+        } else {
236
+          callback();
237
+        }
238
+      }, 100)
239
+    }
240
+    return {
241
+      // 遮罩层
242
+      loading: true,
243
+      // 选中数组
244
+      ids: [],
245
+      // 非单个禁用
246
+      single: true,
247
+      // 非多个禁用
248
+      multiple: true,
249
+      // 显示搜索条件
250
+      showSearch: true,
251
+      // 总条数
252
+      total: 0,
253
+      // cmc设备审批表格数据
254
+      approvalList: [],
255
+      column: 4,
256
+      deviceInfo: {},
257
+      // 弹出层标题
258
+      title: "",
259
+      // 是否显示弹出层
260
+      open: false,
261
+      // 查询参数
262
+      queryParams: {
263
+        pageNum: 1,
264
+        pageSize: 10,
265
+      },
266
+      // 表单参数
267
+      form: {},
268
+      // 表单校验
269
+      rules: {
270
+      },
271
+      loading: false
272
+    }
273
+  },
274
+  created() {
275
+    if (this.$route.query) {
276
+      getDevice(this.$route.query.deviceId).then(res => {
277
+        console.log(res);
278
+        this.deviceInfo = res.data;
279
+      })
280
+      this.getList();
281
+    }
282
+    if (this.$store.state.app.device == 'desktop') {
283
+
284
+    } else {
285
+      this.column = 1
286
+    }
287
+  },
288
+  methods: {
289
+    getList() {
290
+      this.queryParams.devices = this.$route.query.deviceId
291
+      listDeviceApproval(this.queryParams).then(res => {
292
+        console.log(res);
293
+        this.approvalList = res.rows;
294
+        this.total = res.total;
295
+      })
296
+    },
297
+    goBack() {
298
+      let obj = { path: "/device/expense" }
299
+      this.$tab.closeOpenPage(obj);
300
+      this.$router.push({ path: '/device' });
301
+    },
302
+    /** 搜索按钮操作 */
303
+    handleQuery() {
304
+      this.queryParams.pageNum = 1;
305
+      this.getList();
306
+    },
307
+    // 多选框选中数据
308
+    handleSelectionChange(selection) {
309
+      this.ids = selection.map(item => item.deviceApprovalId)
310
+      this.single = selection.length !== 1
311
+      this.multiple = !selection.length
312
+    },
313
+    handleAdd() {
314
+      this.reset();
315
+      this.open = true;
316
+      this.title = "添加设备使用明细";
317
+    },
318
+    handleUpdate(row) {
319
+      this.reset();
320
+      const deviceApplyId = row.deviceApplyId || this.ids
321
+      getDeviceApproval(deviceApplyId).then(response => {
322
+        this.form = response.data;
323
+        this.open = true;
324
+        this.title = "修改设备使用明细";
325
+      });
326
+    },
327
+    handleDelete(row) {
328
+      debugger
329
+      const deviceApprovalIds = row.deviceApprovalId || this.ids;
330
+      this.$modal.confirm('是否确认删除设备使用费用编号为"' + deviceApprovalIds + '"的数据项?').then(function () {
331
+        return delDeviceApproval(deviceApprovalIds);
332
+      }).then(() => {
333
+        this.getList();
334
+        this.$modal.msgSuccess("删除成功");
335
+      }).catch(() => { });
336
+    },
337
+    handleExport() {
338
+      this.download('oa/deviceApproval/export', {
339
+        ...this.queryParams
340
+      }, `deviceApproval_${new Date().getTime()}.xlsx`)
341
+    },
342
+    // 表单重置
343
+    reset() {
344
+      this.form = {
345
+        deviceApplyId: null,
346
+        applier: null,
347
+        useDept: null,
348
+        devices: null,
349
+        projectId: null,
350
+        applyReason: null,
351
+        beginDate: null,
352
+        beginHalfday: null,
353
+        endDate: null,
354
+        endHalfday: null,
355
+        days: null,
356
+        deptUserId: null,
357
+        deptComment: null,
358
+        managerUserId: null,
359
+        managerComment: null,
360
+        dispatcher: null,
361
+        dispatchComment: null,
362
+        estimateCost: null,
363
+        applyDate: null,
364
+        returnDate: null
365
+      };
366
+      this.resetForm("form");
367
+    },
368
+    submitForm() {
369
+      this.$refs["form"].validate(valid => {
370
+        if (valid) {
371
+          this.form.deviceId = this.$route.query.deviceId
372
+          if (this.form.deviceApprovalId != null) {
373
+            updateDeviceApproval(this.form).then(response => {
374
+              this.$modal.msgSuccess("修改成功");
375
+              this.open = false;
376
+              this.getList();
377
+            });
378
+          } else {
379
+            addDeviceApproval(this.form).then(response => {
380
+              this.$modal.msgSuccess("新增成功");
381
+              this.open = false;
382
+              this.getList();
383
+            });
384
+          }
385
+        }
386
+      });
387
+    },
388
+    cancel() {
389
+      this.open = false;
390
+      this.reset();
391
+    },
392
+    isNumber(value) {
393
+      return typeof value === 'number' && /^\d+(\.\d+)?$/.test(value);
394
+    },
395
+  },
396
+}
397
+</script>
398
+
399
+<style lang="scss" scoped>
400
+.header {
401
+  position: relative;
402
+  text-align: center;
403
+
404
+  .back {
405
+    position: absolute;
406
+    left: 12px;
407
+    top: -10px;
408
+  }
409
+}
410
+
411
+.descriptions {
412
+  padding: 20px 50px;
413
+}
414
+
415
+
416
+::v-deep .el-descriptions-item__label.is-bordered-label {
417
+  color: #121212;
418
+  background: rgba($color: #46a6ff, $alpha: 0.1);
419
+  width: 200px;
420
+}
421
+
422
+::v-deep .el-descriptions .is-bordered .el-descriptions-item__cell {
423
+  border: 1px solid #2d3f62;
424
+}
397
 </style>
425
 </style>

+ 4
- 4
oa-ui/src/views/oa/device/index.vue View File

59
       <el-table-column label="校验周期(年)" align="center" prop="checkTerm" />
59
       <el-table-column label="校验周期(年)" align="center" prop="checkTerm" />
60
       <el-table-column label="保修期(月)" align="center" prop="warranty" />
60
       <el-table-column label="保修期(月)" align="center" prop="warranty" />
61
       <el-table-column label="校验日期" align="center" prop="checkTime" />
61
       <el-table-column label="校验日期" align="center" prop="checkTime" />
62
-      <el-table-column label="管理部门" align="center" prop="manageDeptName" />
62
+      <el-table-column label="管理部门" align="center" prop="dept.deptName" />
63
       <el-table-column label="备注" align="center" prop="remark" />
63
       <el-table-column label="备注" align="center" prop="remark" />
64
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
64
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
65
 
65
 
166
             </el-form-item>
166
             </el-form-item>
167
           </el-col>
167
           </el-col>
168
           <el-col :span="12">
168
           <el-col :span="12">
169
-            <el-form-item label="管理部门" prop="manageDeptName">
170
-              <el-input v-model="form.manageDeptName" placeholder="请输入管理部门" />
169
+            <el-form-item label="管理部门" prop="dept.deptName">
170
+              <el-input v-model="form.deptName" placeholder="请输入管理部门" />
171
             </el-form-item>
171
             </el-form-item>
172
           </el-col>
172
           </el-col>
173
         </el-row>
173
         </el-row>
288
     handleAddDetail(row) {
288
     handleAddDetail(row) {
289
       console.log(row);
289
       console.log(row);
290
       this.$router.push({
290
       this.$router.push({
291
-        path: '/device/expense',
291
+        path: '/device/approval',
292
         query: {
292
         query: {
293
           deviceId: row.deviceId,
293
           deviceId: row.deviceId,
294
         }
294
         }

+ 2
- 3
oa-ui/src/views/oa/staff/index.vue View File

90
             <span>{{ parseTime(scope.row.entryDate, '{y}-{m}') }}</span>
90
             <span>{{ parseTime(scope.row.entryDate, '{y}-{m}') }}</span>
91
           </template>
91
           </template>
92
         </el-table-column>
92
         </el-table-column>
93
-        <el-table-column label="固定成本(天)" align="center" key="costDay" prop="costDay" v-if="columns[2].visible"
93
+        <el-table-column label="固定成本(天)" align="center" key="salary" prop="salary.salary" v-if="columns[2].visible"
94
           :show-overflow-tooltip="true">
94
           :show-overflow-tooltip="true">
95
           <template slot-scope="scope">
95
           <template slot-scope="scope">
96
-
96
+            {{ scope.row.salary ? scope.row.salary.salary : "" }}
97
           </template>
97
           </template>
98
         </el-table-column>
98
         </el-table-column>
99
         <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
99
         <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
236
                   :value="dict.value" />
236
                   :value="dict.value" />
237
               </el-select>
237
               </el-select>
238
             </el-form-item>
238
             </el-form-item>
239
-            </el-form-item>
240
           </el-col>
239
           </el-col>
241
         </el-row>
240
         </el-row>
242
         <el-row>
241
         <el-row>

+ 234
- 0
oa-ui/src/views/oa/staff/salary.vue View File

1
+<template>
2
+  <div class="app-container">
3
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4
+      <el-form-item label="岗级" prop="postLevel">
5
+        <el-input v-model="queryParams.postLevel" placeholder="请输入岗级" clearable @keyup.enter.native="handleQuery" />
6
+      </el-form-item>
7
+      <el-form-item label="薪档" prop="salaryLevel">
8
+        <el-input v-model="queryParams.salaryLevel" placeholder="请输入薪档" clearable @keyup.enter.native="handleQuery" />
9
+      </el-form-item>
10
+      <el-form-item label="月薪" prop="salary">
11
+        <el-input v-model="queryParams.salary" placeholder="请输入月薪" clearable @keyup.enter.native="handleQuery" />
12
+      </el-form-item>
13
+      <el-form-item>
14
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
15
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
16
+      </el-form-item>
17
+    </el-form>
18
+
19
+    <el-row :gutter="10" class="mb8">
20
+      <el-col :span="1.5">
21
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
22
+          v-hasPermi="['oa:salary:add']">新增</el-button>
23
+      </el-col>
24
+      <el-col :span="1.5">
25
+        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
26
+          v-hasPermi="['oa:salary:edit']">修改</el-button>
27
+      </el-col>
28
+      <el-col :span="1.5">
29
+        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
30
+          v-hasPermi="['oa:salary:remove']">删除</el-button>
31
+      </el-col>
32
+      <el-col :span="1.5">
33
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
34
+          v-hasPermi="['oa:salary:export']">导出</el-button>
35
+      </el-col>
36
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
37
+    </el-row>
38
+
39
+    <el-table v-loading="loading" :data="salaryList" @selection-change="handleSelectionChange">
40
+      <el-table-column type="selection" width="55" align="center" />
41
+      <el-table-column label="成本id" align="center" prop="salaryId" />
42
+      <el-table-column label="岗级" align="center" prop="postLevel">
43
+        <template slot-scope="scope">
44
+          {{ formatLevel(scope.row.postLevel, dict.type.sys_user_postlevel) }}
45
+        </template>
46
+      </el-table-column>
47
+      <el-table-column label="薪档" align="center" prop="salaryLevel">
48
+        <template slot-scope="scope">
49
+          {{ formatLevel(scope.row.salaryLevel, dict.type.sys_user_salarylevel) }}
50
+        </template>
51
+      </el-table-column>
52
+      <el-table-column label="月薪" align="center" prop="salary" />
53
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
54
+        <template slot-scope="scope">
55
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
56
+            v-hasPermi="['oa:salary:edit']">修改</el-button>
57
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
58
+            v-hasPermi="['oa:salary:remove']">删除</el-button>
59
+        </template>
60
+      </el-table-column>
61
+    </el-table>
62
+
63
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
64
+      @pagination="getList" />
65
+
66
+    <!-- 添加或修改cmc岗位工资对话框 -->
67
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
68
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
69
+        <el-form-item label="岗级" prop="postLevel">
70
+          <el-input v-model="form.postLevel" placeholder="请输入岗级" />
71
+        </el-form-item>
72
+        <el-form-item label="薪档" prop="salaryLevel">
73
+          <el-input v-model="form.salaryLevel" placeholder="请输入薪档" />
74
+        </el-form-item>
75
+        <el-form-item label="月薪" prop="salary">
76
+          <el-input v-model="form.salary" placeholder="请输入月薪" />
77
+        </el-form-item>
78
+      </el-form>
79
+      <div slot="footer" class="dialog-footer">
80
+        <el-button type="primary" @click="submitForm">确 定</el-button>
81
+        <el-button @click="cancel">取 消</el-button>
82
+      </div>
83
+    </el-dialog>
84
+  </div>
85
+</template>
86
+
87
+<script>
88
+import { listSalary, getSalary, delSalary, addSalary, updateSalary } from "@/api/oa/staff/salary";
89
+
90
+export default {
91
+  name: "Salary",
92
+  dicts: ['sys_user_postlevel', 'sys_user_salarylevel'],
93
+  data() {
94
+    return {
95
+      // 遮罩层
96
+      loading: true,
97
+      // 选中数组
98
+      ids: [],
99
+      // 非单个禁用
100
+      single: true,
101
+      // 非多个禁用
102
+      multiple: true,
103
+      // 显示搜索条件
104
+      showSearch: true,
105
+      // 总条数
106
+      total: 0,
107
+      // cmc岗位工资表格数据
108
+      salaryList: [],
109
+      // 弹出层标题
110
+      title: "",
111
+      // 是否显示弹出层
112
+      open: false,
113
+      // 查询参数
114
+      queryParams: {
115
+        pageNum: 1,
116
+        pageSize: 10,
117
+        postLevel: null,
118
+        salaryLevel: null,
119
+        salary: null
120
+      },
121
+      // 表单参数
122
+      form: {},
123
+      // 表单校验
124
+      rules: {
125
+      }
126
+    };
127
+  },
128
+  created() {
129
+    this.getList();
130
+  },
131
+  methods: {
132
+    /** 查询cmc岗位工资列表 */
133
+    getList() {
134
+      this.loading = true;
135
+      listSalary(this.queryParams).then(response => {
136
+        this.salaryList = response.rows;
137
+        this.total = response.total;
138
+        this.loading = false;
139
+      });
140
+    },
141
+    // 取消按钮
142
+    cancel() {
143
+      this.open = false;
144
+      this.reset();
145
+    },
146
+    // 表单重置
147
+    reset() {
148
+      this.form = {
149
+        salaryId: null,
150
+        postLevel: null,
151
+        salaryLevel: null,
152
+        salary: null
153
+      };
154
+      this.resetForm("form");
155
+    },
156
+    /** 搜索按钮操作 */
157
+    handleQuery() {
158
+      this.queryParams.pageNum = 1;
159
+      this.getList();
160
+    },
161
+    /** 重置按钮操作 */
162
+    resetQuery() {
163
+      this.resetForm("queryForm");
164
+      this.handleQuery();
165
+    },
166
+    // 多选框选中数据
167
+    handleSelectionChange(selection) {
168
+      this.ids = selection.map(item => item.salaryId)
169
+      this.single = selection.length !== 1
170
+      this.multiple = !selection.length
171
+    },
172
+    /** 新增按钮操作 */
173
+    handleAdd() {
174
+      this.reset();
175
+      this.open = true;
176
+      this.title = "添加cmc岗位工资";
177
+    },
178
+    /** 修改按钮操作 */
179
+    handleUpdate(row) {
180
+      this.reset();
181
+      const salaryId = row.salaryId || this.ids
182
+      getSalary(salaryId).then(response => {
183
+        this.form = response.data;
184
+        this.open = true;
185
+        this.title = "修改cmc岗位工资";
186
+      });
187
+    },
188
+    /** 提交按钮 */
189
+    submitForm() {
190
+      this.$refs["form"].validate(valid => {
191
+        if (valid) {
192
+          if (this.form.salaryId != null) {
193
+            updateSalary(this.form).then(response => {
194
+              this.$modal.msgSuccess("修改成功");
195
+              this.open = false;
196
+              this.getList();
197
+            });
198
+          } else {
199
+            addSalary(this.form).then(response => {
200
+              this.$modal.msgSuccess("新增成功");
201
+              this.open = false;
202
+              this.getList();
203
+            });
204
+          }
205
+        }
206
+      });
207
+    },
208
+    /** 删除按钮操作 */
209
+    handleDelete(row) {
210
+      const salaryIds = row.salaryId || this.ids;
211
+      this.$modal.confirm('是否确认删除cmc岗位工资编号为"' + salaryIds + '"的数据项?').then(function () {
212
+        return delSalary(salaryIds);
213
+      }).then(() => {
214
+        this.getList();
215
+        this.$modal.msgSuccess("删除成功");
216
+      }).catch(() => { });
217
+    },
218
+    /** 导出按钮操作 */
219
+    handleExport() {
220
+      this.download('oa/salary/export', {
221
+        ...this.queryParams
222
+      }, `salary_${new Date().getTime()}.xlsx`)
223
+    },
224
+    formatLevel(level, levelList) {
225
+      if (level) {
226
+        let levelLabel = levelList[level].label
227
+        return levelLabel
228
+      } else {
229
+        return ''
230
+      }
231
+    },
232
+  }
233
+};
234
+</script>

Loading…
Cancel
Save