Bladeren bron

调整技术交底为技术方案

lamphua 11 maanden geleden
bovenliggende
commit
857ef710aa
31 gewijzigde bestanden met toevoegingen van 4304 en 2202 verwijderingen
  1. 4
    4
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcCarApprovalController.java
  2. 6
    6
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcDeviceApprovalController.java
  3. 2
    2
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcProjectChangeController.java
  4. 4
    11
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcProjectController.java
  5. 2
    2
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcSafeReportController.java
  6. 32
    32
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcTechnicalPlanController.java
  7. 9
    9
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcTechnicalPlan.java
  8. 0
    61
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcTechnicalMapper.java
  9. 61
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcTechnicalPlanMapper.java
  10. 61
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcTechnicalPlanService.java
  11. 0
    61
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcTechnicalService.java
  12. 93
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcTechnicalPlanServiceImpl.java
  13. 0
    93
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcTechnicalServiceImpl.java
  14. 3
    3
      oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcProjectMapper.xml
  15. 24
    24
      oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcTechnicalPlanMapper.xml
  16. 3927
    694
      oa-back/sql/sql.sql
  17. 0
    44
      oa-ui/src/api/oa/technical/technical.js
  18. 1
    1
      oa-ui/src/views/flowable/form/business/subContract.vue
  19. 2
    2
      oa-ui/src/views/flowable/form/components/conditionDisplay.vue
  20. 4
    4
      oa-ui/src/views/flowable/form/components/detailDisplay.vue
  21. 1
    1
      oa-ui/src/views/flowable/form/projectProcess/arrangeProject.vue
  22. 6
    6
      oa-ui/src/views/flowable/form/projectProcess/index.vue
  23. 1
    1
      oa-ui/src/views/flowable/form/projectProcess/safeTab.vue
  24. 0
    262
      oa-ui/src/views/flowable/form/projectProcess/technicalTab.vue
  25. 0
    513
      oa-ui/src/views/flowable/form/technicalForm.vue
  26. 2
    2
      oa-ui/src/views/flowable/task/finished/detail/index.vue
  27. 1
    1
      oa-ui/src/views/flowable/task/myProcess/index.vue
  28. 1
    1
      oa-ui/src/views/flowable/task/myProcess/progressTree.vue
  29. 1
    1
      oa-ui/src/views/flowable/task/todo/detail/index.vue
  30. 56
    13
      oa-ui/src/views/oa/project/info.vue
  31. 0
    348
      oa-ui/src/views/oa/technical/index.vue

+ 4
- 4
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcCarApprovalController.java Bestand weergeven

@@ -52,14 +52,14 @@ public class CmcCarApprovalController extends BaseController
52 52
             StringBuilder carNames = new StringBuilder();
53 53
             if (carIds != null && !carIds.equals("") && carIds.split(",").length > 0) {
54 54
                 for (String carId : carIds.split(","))
55
-                    carNames.append(cmcCarService.selectCmcCarByCarId(Integer.parseInt(carId)).getLicensePlate()).append("");
55
+                    carNames.append(cmcCarService.selectCmcCarByCarId(Integer.parseInt(carId)).getLicensePlate()).append(",");
56 56
                 carApproval.setCarNames(carNames.substring(0, carNames.length() - 1));
57 57
             }
58 58
             String driverIds = carApproval.getDrivers();
59 59
             StringBuilder driverNames = new StringBuilder();
60 60
             if (driverIds != null && !driverIds.equals("") && driverIds.split(",").length > 0) {
61 61
                 for (String driverId : driverIds.split(","))
62
-                    driverNames.append(userService.selectUserById(Long.parseLong(driverId)).getNickName()).append("");
62
+                    driverNames.append(userService.selectUserById(Long.parseLong(driverId)).getNickName()).append(",");
63 63
                 carApproval.setDriverNames(driverNames.substring(0, driverNames.length() - 1));
64 64
             }
65 65
         }
@@ -79,14 +79,14 @@ public class CmcCarApprovalController extends BaseController
79 79
             StringBuilder carNames = new StringBuilder();
80 80
             if (carIds != null && !carIds.equals("") && carIds.split(",").length > 0) {
81 81
                 for (String carId : carIds.split(","))
82
-                    carNames.append(cmcCarService.selectCmcCarByCarId(Integer.parseInt(carId)).getLicensePlate()).append("");
82
+                    carNames.append(cmcCarService.selectCmcCarByCarId(Integer.parseInt(carId)).getLicensePlate()).append(",");
83 83
                 carApproval.setCarNames(carNames.substring(0, carNames.length() - 1));
84 84
             }
85 85
             String driverIds = carApproval.getDrivers();
86 86
             StringBuilder driverNames = new StringBuilder();
87 87
             if (driverIds != null && !driverIds.equals("") && driverIds.split(",").length > 0) {
88 88
                 for (String driverId : driverIds.split(","))
89
-                    driverNames.append(userService.selectUserById(Long.parseLong(driverId)).getNickName()).append("");
89
+                    driverNames.append(userService.selectUserById(Long.parseLong(driverId)).getNickName()).append(",");
90 90
                 carApproval.setDriverNames(driverNames.substring(0, driverNames.length() - 1));
91 91
             }
92 92
         }

+ 6
- 6
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcDeviceApprovalController.java Bestand weergeven

@@ -52,7 +52,7 @@ public class CmcDeviceApprovalController extends BaseController
52 52
                     CmcDevice device = cmcDeviceService.selectCmcDeviceByDeviceId(Integer.parseInt(deviceId));
53 53
                     deviceNames.append(device.getName()).append("【").append(device.getBrand() != null ? device.getBrand() : "")
54 54
                             .append(device.getSeries() != null ? "-" + device.getSeries() + "】" : "")
55
-                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append("");
55
+                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append(",");
56 56
                 }
57 57
                 deviceApproval.setDeviceNames(deviceNames.substring(0, deviceNames.length() - 1));
58 58
             }
@@ -65,7 +65,7 @@ public class CmcDeviceApprovalController extends BaseController
65 65
                     modifyDeviceNumbers.append(device.getDeviceNumber());
66 66
                     modifyDeviceNames.append(device.getName()).append("【").append(device.getBrand() != null ? device.getBrand() : "")
67 67
                             .append(device.getSeries() != null ? "-" + device.getSeries() + "】" : "")
68
-                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append("");
68
+                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append(",");
69 69
                 }
70 70
                 deviceApproval.setModifyDeviceNumbers(modifyDeviceNumbers.substring(0, modifyDeviceNumbers.length() - 1));
71 71
                 deviceApproval.setModifyDeviceNames(modifyDeviceNames.substring(0, modifyDeviceNames.length() - 1));
@@ -79,7 +79,7 @@ public class CmcDeviceApprovalController extends BaseController
79 79
                     repairDeviceNumbers.append(device.getDeviceNumber());
80 80
                     repairDeviceNames.append(device.getName()).append("【").append(device.getBrand() != null ? device.getBrand() : "")
81 81
                             .append(device.getSeries() != null ? "-" + device.getSeries() + "】" : "")
82
-                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append("");
82
+                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append(",");
83 83
                 }
84 84
                 deviceApproval.setRepairDeviceNumbers(repairDeviceNumbers.substring(0, repairDeviceNumbers.length() - 1));
85 85
                 deviceApproval.setRepairDeviceNames(repairDeviceNames.substring(0, repairDeviceNames.length() - 1));
@@ -104,7 +104,7 @@ public class CmcDeviceApprovalController extends BaseController
104 104
                     CmcDevice device = cmcDeviceService.selectCmcDeviceByDeviceId(Integer.parseInt(deviceId));
105 105
                     deviceNames.append(device.getName()).append("【").append(device.getBrand() != null ? device.getBrand() : "")
106 106
                             .append(device.getSeries() != null ? "-" + device.getSeries() + "】" : "")
107
-                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append("");
107
+                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append(",");
108 108
                 }
109 109
                 deviceApproval.setDeviceNames(deviceNames.substring(0, deviceNames.length() - 1));
110 110
             }
@@ -117,7 +117,7 @@ public class CmcDeviceApprovalController extends BaseController
117 117
                     modifyDeviceNumbers.append(device.getDeviceNumber());
118 118
                     modifyDeviceNames.append(device.getName()).append("【").append(device.getBrand() != null ? device.getBrand() : "")
119 119
                             .append(device.getSeries() != null ? "-" + device.getSeries() + "】" : "")
120
-                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append("");
120
+                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append(",");
121 121
                 }
122 122
                 deviceApproval.setModifyDeviceNumbers(modifyDeviceNumbers.substring(0, modifyDeviceNumbers.length() - 1));
123 123
                 deviceApproval.setModifyDeviceNames(modifyDeviceNames.substring(0, modifyDeviceNames.length() - 1));
@@ -131,7 +131,7 @@ public class CmcDeviceApprovalController extends BaseController
131 131
                     repairDeviceNumbers.append(device.getDeviceNumber());
132 132
                     repairDeviceNames.append(device.getName()).append("【").append(device.getBrand() != null ? device.getBrand() : "")
133 133
                             .append(device.getSeries() != null ? "-" + device.getSeries() + "】" : "")
134
-                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append("");
134
+                            .append(device.getCode() != null ? "(设备编号:" + device.getCode() + ")" : "").append(",");
135 135
                 }
136 136
                 deviceApproval.setRepairDeviceNumbers(repairDeviceNumbers.substring(0, repairDeviceNumbers.length() - 1));
137 137
                 deviceApproval.setRepairDeviceNames(repairDeviceNames.substring(0, repairDeviceNames.length() - 1));

+ 2
- 2
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcProjectChangeController.java Bestand weergeven

@@ -52,7 +52,7 @@ public class CmcProjectChangeController extends BaseController
52 52
             StringBuilder underTakingDeptName = new StringBuilder();
53 53
             if (underTakingDept != null && !underTakingDept.equals("") && underTakingDept.split(",").length > 0) {
54 54
                 for (String dept : underTakingDept.split(","))
55
-                    underTakingDeptName.append(deptService.selectDeptById(Long.parseLong(dept)).getDeptName()).append("");
55
+                    underTakingDeptName.append(deptService.selectDeptById(Long.parseLong(dept)).getDeptName()).append(",");
56 56
                 project.setUndertakingDeptName(underTakingDeptName.substring(0, underTakingDeptName.length() - 1));
57 57
             }
58 58
         }
@@ -72,7 +72,7 @@ public class CmcProjectChangeController extends BaseController
72 72
             StringBuilder underTakingDeptName = new StringBuilder();
73 73
             if (underTakingDept != null && !underTakingDept.equals("") && underTakingDept.split(",").length > 0) {
74 74
                 for (String dept : underTakingDept.split(","))
75
-                    underTakingDeptName.append(deptService.selectDeptById(Long.parseLong(dept)).getDeptName()).append("");
75
+                    underTakingDeptName.append(deptService.selectDeptById(Long.parseLong(dept)).getDeptName()).append(",");
76 76
                 project.setUndertakingDeptName(underTakingDeptName.substring(0, underTakingDeptName.length() - 1));
77 77
             }
78 78
         }

+ 4
- 11
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcProjectController.java Bestand weergeven

@@ -4,15 +4,8 @@ import java.util.Date;
4 4
 import java.util.List;
5 5
 import javax.servlet.http.HttpServletResponse;
6 6
 
7
-import com.alibaba.fastjson2.JSONObject;
8
-import com.ruoyi.common.utils.DateUtils;
9
-import com.ruoyi.common.utils.SnowFlake;
10
-import com.ruoyi.oa.domain.CmcPartyA;
11
-import com.ruoyi.oa.domain.CmcProjectWork;
12
-import com.ruoyi.oa.domain.CmcTechnical;
13 7
 import com.ruoyi.oa.service.ICmcPartyAService;
14 8
 import com.ruoyi.oa.service.ICmcProjectWorkService;
15
-import com.ruoyi.oa.service.ICmcTechnicalService;
16 9
 import com.ruoyi.system.service.ISysDeptService;
17 10
 import com.ruoyi.system.service.ISysUserService;
18 11
 import org.springframework.beans.factory.annotation.Autowired;
@@ -64,14 +57,14 @@ public class CmcProjectController extends BaseController
64 57
             StringBuilder underTakingDeptName = new StringBuilder();
65 58
             if (underTakingDept != null && !underTakingDept.equals("") && underTakingDept.split(",").length > 0) {
66 59
                 for (String dept : underTakingDept.split(","))
67
-                    underTakingDeptName.append(deptService.selectDeptById(Long.parseLong(dept)).getDeptName()).append("");
60
+                    underTakingDeptName.append(deptService.selectDeptById(Long.parseLong(dept)).getDeptName()).append(",");
68 61
                 project.setUndertakingDeptName(underTakingDeptName.substring(0, underTakingDeptName.length() - 1));
69 62
             }
70 63
             String qualityInspector = project.getQualityInspector();
71 64
             StringBuilder qualityInspectorName = new StringBuilder();
72 65
             if (qualityInspector != null && !qualityInspector.equals("") && qualityInspector.split(",").length > 0) {
73 66
                 for (String inspector : qualityInspector.split(","))
74
-                    qualityInspectorName.append(userService.selectUserById(Long.parseLong(inspector)).getNickName()).append("");
67
+                    qualityInspectorName.append(userService.selectUserById(Long.parseLong(inspector)).getNickName()).append(",");
75 68
                 project.setQualityInspectorName(qualityInspectorName.substring(0, qualityInspectorName.length() - 1));
76 69
             }
77 70
         }
@@ -101,14 +94,14 @@ public class CmcProjectController extends BaseController
101 94
         StringBuilder underTakingDeptName = new StringBuilder();
102 95
         if (underTakingDept != null && !underTakingDept.equals("") && underTakingDept.split(",").length > 0) {
103 96
             for (String dept : underTakingDept.split(","))
104
-                underTakingDeptName.append(deptService.selectDeptById(Long.parseLong(dept)).getDeptName()).append("");
97
+                underTakingDeptName.append(deptService.selectDeptById(Long.parseLong(dept)).getDeptName()).append(",");
105 98
             cmcProject.setUndertakingDeptName(underTakingDeptName.substring(0, underTakingDeptName.length() - 1));
106 99
         }
107 100
         String qualityInspector = cmcProject.getQualityInspector();
108 101
         StringBuilder qualityInspectorName = new StringBuilder();
109 102
         if (qualityInspector != null && !qualityInspector.equals("") && qualityInspector.split(",").length > 0) {
110 103
             for (String inspector : qualityInspector.split(","))
111
-                qualityInspectorName.append(userService.selectUserById(Long.parseLong(inspector)).getNickName()).append("");
104
+                qualityInspectorName.append(userService.selectUserById(Long.parseLong(inspector)).getNickName()).append(",");
112 105
             cmcProject.setQualityInspectorName(qualityInspectorName.substring(0, qualityInspectorName.length() - 1));
113 106
         }
114 107
         return success(cmcProject);

+ 2
- 2
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcSafeReportController.java Bestand weergeven

@@ -51,7 +51,7 @@ public class CmcSafeReportController extends BaseController
51 51
             StringBuilder userName = new StringBuilder();
52 52
             if (userId != null && !userId.equals("") && userId.split(",").length > 0) {
53 53
                 for (String user : userId.split(","))
54
-                    userName.append(userService.selectUserById(Long.parseLong(user)).getNickName()).append("");
54
+                    userName.append(userService.selectUserById(Long.parseLong(user)).getNickName()).append(",");
55 55
                 safeReport.setUserNames(userName.substring(0, userName.length() - 1));
56 56
             }
57 57
         }
@@ -71,7 +71,7 @@ public class CmcSafeReportController extends BaseController
71 71
             StringBuilder userName = new StringBuilder();
72 72
             if (userId != null && !userId.equals("") && userId.split(",").length > 0) {
73 73
                 for (String user : userId.split(","))
74
-                    userName.append(userService.selectUserById(Long.parseLong(user)).getNickName()).append("");
74
+                    userName.append(userService.selectUserById(Long.parseLong(user)).getNickName()).append(",");
75 75
                 safeReport.setUserNames(userName.substring(0, userName.length() - 1));
76 76
             }
77 77
         }

oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcTechnicalController.java → oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcTechnicalPlanController.java Bestand weergeven

@@ -18,8 +18,8 @@ import com.ruoyi.common.annotation.Log;
18 18
 import com.ruoyi.common.core.controller.BaseController;
19 19
 import com.ruoyi.common.core.domain.AjaxResult;
20 20
 import com.ruoyi.common.enums.BusinessType;
21
-import com.ruoyi.oa.domain.CmcTechnical;
22
-import com.ruoyi.oa.service.ICmcTechnicalService;
21
+import com.ruoyi.oa.domain.CmcTechnicalPlan;
22
+import com.ruoyi.oa.service.ICmcTechnicalPlanService;
23 23
 import com.ruoyi.common.utils.poi.ExcelUtil;
24 24
 import com.ruoyi.common.core.page.TableDataInfo;
25 25
 
@@ -30,11 +30,11 @@ import com.ruoyi.common.core.page.TableDataInfo;
30 30
  * @date 2024-04-02
31 31
  */
32 32
 @RestController
33
-@RequestMapping("/oa/technical")
34
-public class CmcTechnicalController extends BaseController
33
+@RequestMapping("/oa/technicalPlan")
34
+public class CmcTechnicalPlanController extends BaseController
35 35
 {
36 36
     @Autowired
37
-    private ICmcTechnicalService cmcTechnicalService;
37
+    private ICmcTechnicalPlanService cmcTechnicalPlanService;
38 38
 
39 39
     @Autowired
40 40
     private ISysUserService userService;
@@ -43,10 +43,10 @@ public class CmcTechnicalController extends BaseController
43 43
      * 查询cmc技术方案列表
44 44
      */
45 45
     @GetMapping("/list")
46
-    public TableDataInfo list(CmcTechnical cmcTechnical)
46
+    public TableDataInfo list(CmcTechnicalPlan cmcTechnicalPlan)
47 47
     {
48 48
         startPage();
49
-        List<CmcTechnical> list = cmcTechnicalService.selectCmcTechnicalList(cmcTechnical);
49
+        List<CmcTechnicalPlan> list = cmcTechnicalPlanService.selectCmcTechnicalPlanList(cmcTechnicalPlan);
50 50
         return getDataTable(list);
51 51
     }
52 52
 
@@ -55,29 +55,29 @@ public class CmcTechnicalController extends BaseController
55 55
      */
56 56
     @Log(title = "cmc技术方案", businessType = BusinessType.EXPORT)
57 57
     @PostMapping("/export")
58
-    public void export(HttpServletResponse response, CmcTechnical cmcTechnical)
58
+    public void export(HttpServletResponse response, CmcTechnicalPlan cmcTechnicalPlan)
59 59
     {
60
-        List<CmcTechnical> list = cmcTechnicalService.selectCmcTechnicalList(cmcTechnical);
61
-        for (CmcTechnical technical : list) {
60
+        List<CmcTechnicalPlan> list = cmcTechnicalPlanService.selectCmcTechnicalPlanList(cmcTechnicalPlan);
61
+        for (CmcTechnicalPlan technical : list) {
62 62
             String qualityInspector = technical.getQualityInspector();
63 63
             StringBuilder qualityInspectorName = new StringBuilder();
64 64
             if (qualityInspector != null && !qualityInspector.equals("") && qualityInspector.split(",").length > 0) {
65 65
                 for (String inspector : qualityInspector.split(","))
66
-                    qualityInspectorName.append(userService.selectUserById(Long.parseLong(inspector)).getNickName()).append("");
66
+                    qualityInspectorName.append(userService.selectUserById(Long.parseLong(inspector)).getNickName()).append(",");
67 67
                 technical.setQualityInspectorName(qualityInspectorName.substring(0, qualityInspectorName.length() - 1));
68 68
             }
69 69
         }
70
-        ExcelUtil<CmcTechnical> util = new ExcelUtil<CmcTechnical>(CmcTechnical.class);
70
+        ExcelUtil<CmcTechnicalPlan> util = new ExcelUtil<CmcTechnicalPlan>(CmcTechnicalPlan.class);
71 71
         util.exportExcel(response, list, "cmc技术方案数据");
72 72
     }
73 73
 
74 74
     /**
75 75
      * 获取cmc技术方案详细信息
76 76
      */
77
-    @GetMapping(value = "/{technicalId}")
78
-    public AjaxResult getInfo(@PathVariable("technicalId") String technicalId)
77
+    @GetMapping(value = "/{technicalPlanId}")
78
+    public AjaxResult getInfo(@PathVariable("technicalPlanId") String technicalPlanId)
79 79
     {
80
-        return success(cmcTechnicalService.selectCmcTechnicalByTechnicalId(technicalId));
80
+        return success(cmcTechnicalPlanService.selectCmcTechnicalPlanByTechnicalPlanId(technicalPlanId));
81 81
     }
82 82
 
83 83
     /**
@@ -85,10 +85,10 @@ public class CmcTechnicalController extends BaseController
85 85
      */
86 86
     @Log(title = "cmc技术方案", businessType = BusinessType.INSERT)
87 87
     @PostMapping
88
-    public AjaxResult add(@RequestBody CmcTechnical cmcTechnical)
88
+    public AjaxResult add(@RequestBody CmcTechnicalPlan cmcTechnicalPlan)
89 89
     {
90
-        cmcTechnical.setTechnicalTime(new Date());
91
-        return toAjax(cmcTechnicalService.insertCmcTechnical(cmcTechnical));
90
+        cmcTechnicalPlan.setTechnicalTime(new Date());
91
+        return toAjax(cmcTechnicalPlanService.insertCmcTechnicalPlan(cmcTechnicalPlan));
92 92
     }
93 93
 
94 94
     /**
@@ -96,30 +96,30 @@ public class CmcTechnicalController extends BaseController
96 96
      */
97 97
     @Log(title = "cmc技术方案", businessType = BusinessType.UPDATE)
98 98
     @PutMapping
99
-    public AjaxResult edit(@RequestBody CmcTechnical cmcTechnical)
99
+    public AjaxResult edit(@RequestBody CmcTechnicalPlan cmcTechnicalPlan)
100 100
     {
101
-        if (cmcTechnical.getTechnicalDocument() != null && cmcTechnical.getTechnicalComment() == null && cmcTechnical.getModifyDocument() == null) {
102
-            cmcTechnical.setTechnicalDesigner(getLoginUser().getUserId());
103
-            cmcTechnical.setTechnicalUploadTime(new Date());
101
+        if (cmcTechnicalPlan.getTechnicalDocument() != null && cmcTechnicalPlan.getTechnicalComment() == null && cmcTechnicalPlan.getModifyDocument() == null) {
102
+            cmcTechnicalPlan.setTechnicalDesigner(getLoginUser().getUserId());
103
+            cmcTechnicalPlan.setTechnicalUploadTime(new Date());
104 104
         }
105
-        if ((cmcTechnical.getModifyDocument() != null || cmcTechnical.getTechnicalComment() != null) && cmcTechnical.getManageComment() == null) {
106
-            cmcTechnical.setTechnicalPlanner(getLoginUser().getUserId());
107
-            cmcTechnical.setTechApprovalTime(new Date());
105
+        if ((cmcTechnicalPlan.getModifyDocument() != null || cmcTechnicalPlan.getTechnicalComment() != null) && cmcTechnicalPlan.getManageComment() == null) {
106
+            cmcTechnicalPlan.setTechnicalPlanner(getLoginUser().getUserId());
107
+            cmcTechnicalPlan.setTechApprovalTime(new Date());
108 108
         }
109
-        if (cmcTechnical.getManageComment() != null) {
110
-            cmcTechnical.setManagerUserId(getLoginUser().getUserId());
111
-            cmcTechnical.setManageApprovalTime(new Date());
109
+        if (cmcTechnicalPlan.getManageComment() != null) {
110
+            cmcTechnicalPlan.setManagerUserId(getLoginUser().getUserId());
111
+            cmcTechnicalPlan.setManageApprovalTime(new Date());
112 112
         }
113
-        return toAjax(cmcTechnicalService.updateCmcTechnical(cmcTechnical));
113
+        return toAjax(cmcTechnicalPlanService.updateCmcTechnicalPlan(cmcTechnicalPlan));
114 114
     }
115 115
 
116 116
     /**
117 117
      * 删除cmc技术方案
118 118
      */
119 119
     @Log(title = "cmc技术方案", businessType = BusinessType.DELETE)
120
-	@DeleteMapping("/{technicalIds}")
121
-    public AjaxResult remove(@PathVariable String[] technicalIds)
120
+	@DeleteMapping("/{technicalPlanIds}")
121
+    public AjaxResult remove(@PathVariable String[] technicalPlanIds)
122 122
     {
123
-        return success(cmcTechnicalService.deleteCmcTechnicalByTechnicalIds(technicalIds));
123
+        return success(cmcTechnicalPlanService.deleteCmcTechnicalPlanByTechnicalPlanIds(technicalPlanIds));
124 124
     }
125 125
 }

oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcTechnical.java → oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcTechnicalPlan.java Bestand weergeven

@@ -9,17 +9,17 @@ import com.ruoyi.common.annotation.Excel;
9 9
 import com.ruoyi.common.core.domain.BaseEntity;
10 10
 
11 11
 /**
12
- * cmc技术交底对象 cmc_technical
12
+ * cmc技术交底对象 cmc_technical_plan
13 13
  *
14 14
  * @author cmc
15 15
  * @date 2024-04-03
16 16
  */
17
-public class CmcTechnical extends BaseEntity
17
+public class CmcTechnicalPlan extends BaseEntity
18 18
 {
19 19
     private static final long serialVersionUID = 1L;
20 20
 
21
-    /** 项目id */
22
-    private String technicalId;
21
+    /** 方案id */
22
+    private String technicalPlanId;
23 23
 
24 24
     /** 项目id */
25 25
     private String projectId;
@@ -111,14 +111,14 @@ public class CmcTechnical extends BaseEntity
111 111
     @Excel(name = "总工审核时间", width = 30, dateFormat = "yyyy-MM-dd")
112 112
     private Date manageApprovalTime;
113 113
 
114
-    public void setTechnicalId(String technicalId)
114
+    public void setTechnicalPlanId(String technicalPlanId)
115 115
     {
116
-        this.technicalId = technicalId;
116
+        this.technicalPlanId = technicalPlanId;
117 117
     }
118 118
 
119
-    public String getTechnicalId()
119
+    public String getTechnicalPlanId()
120 120
     {
121
-        return technicalId;
121
+        return technicalPlanId;
122 122
     }
123 123
     public void setProjectId(String projectId)
124 124
     {
@@ -339,7 +339,7 @@ public class CmcTechnical extends BaseEntity
339 339
     @Override
340 340
     public String toString() {
341 341
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
342
-                .append("technicalId", getTechnicalId())
342
+                .append("technicalPlanId", getTechnicalPlanId())
343 343
                 .append("projectId", getProjectId())
344 344
                 .append("technicalDirector", getTechnicalDirector())
345 345
                 .append("technicalDesigner", getTechnicalDesigner())

+ 0
- 61
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcTechnicalMapper.java Bestand weergeven

@@ -1,61 +0,0 @@
1
-package com.ruoyi.oa.mapper;
2
-
3
-import java.util.List;
4
-import com.ruoyi.oa.domain.CmcTechnical;
5
-
6
-/**
7
- * cmc技术方案Mapper接口
8
- * 
9
- * @author cmc
10
- * @date 2024-04-02
11
- */
12
-public interface CmcTechnicalMapper 
13
-{
14
-    /**
15
-     * 查询cmc技术方案
16
-     * 
17
-     * @param technicalId cmc技术方案主键
18
-     * @return cmc技术方案
19
-     */
20
-    public CmcTechnical selectCmcTechnicalByTechnicalId(String technicalId);
21
-
22
-    /**
23
-     * 查询cmc技术方案列表
24
-     * 
25
-     * @param cmcTechnical cmc技术方案
26
-     * @return cmc技术方案集合
27
-     */
28
-    public List<CmcTechnical> selectCmcTechnicalList(CmcTechnical cmcTechnical);
29
-
30
-    /**
31
-     * 新增cmc技术方案
32
-     * 
33
-     * @param cmcTechnical cmc技术方案
34
-     * @return 结果
35
-     */
36
-    public int insertCmcTechnical(CmcTechnical cmcTechnical);
37
-
38
-    /**
39
-     * 修改cmc技术方案
40
-     * 
41
-     * @param cmcTechnical cmc技术方案
42
-     * @return 结果
43
-     */
44
-    public int updateCmcTechnical(CmcTechnical cmcTechnical);
45
-
46
-    /**
47
-     * 删除cmc技术方案
48
-     * 
49
-     * @param technicalId cmc技术方案主键
50
-     * @return 结果
51
-     */
52
-    public int deleteCmcTechnicalByTechnicalId(String technicalId);
53
-
54
-    /**
55
-     * 批量删除cmc技术方案
56
-     * 
57
-     * @param technicalIds 需要删除的数据主键集合
58
-     * @return 结果
59
-     */
60
-    public int deleteCmcTechnicalByTechnicalIds(String[] technicalIds);
61
-}

+ 61
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcTechnicalPlanMapper.java Bestand weergeven

@@ -0,0 +1,61 @@
1
+package com.ruoyi.oa.mapper;
2
+
3
+import java.util.List;
4
+import com.ruoyi.oa.domain.CmcTechnicalPlan;
5
+
6
+/**
7
+ * cmc技术方案Mapper接口
8
+ * 
9
+ * @author cmc
10
+ * @date 2024-04-02
11
+ */
12
+public interface CmcTechnicalPlanMapper 
13
+{
14
+    /**
15
+     * 查询cmc技术方案
16
+     * 
17
+     * @param technicalPlanId cmc技术方案主键
18
+     * @return cmc技术方案
19
+     */
20
+    public CmcTechnicalPlan selectCmcTechnicalPlanByTechnicalPlanId(String technicalPlanId);
21
+
22
+    /**
23
+     * 查询cmc技术方案列表
24
+     * 
25
+     * @param cmcTechnicalPlan cmc技术方案
26
+     * @return cmc技术方案集合
27
+     */
28
+    public List<CmcTechnicalPlan> selectCmcTechnicalPlanList(CmcTechnicalPlan cmcTechnicalPlan);
29
+
30
+    /**
31
+     * 新增cmc技术方案
32
+     * 
33
+     * @param cmcTechnicalPlan cmc技术方案
34
+     * @return 结果
35
+     */
36
+    public int insertCmcTechnicalPlan(CmcTechnicalPlan cmcTechnicalPlan);
37
+
38
+    /**
39
+     * 修改cmc技术方案
40
+     * 
41
+     * @param cmcTechnicalPlan cmc技术方案
42
+     * @return 结果
43
+     */
44
+    public int updateCmcTechnicalPlan(CmcTechnicalPlan cmcTechnicalPlan);
45
+
46
+    /**
47
+     * 删除cmc技术方案
48
+     * 
49
+     * @param technicalPlanId cmc技术方案主键
50
+     * @return 结果
51
+     */
52
+    public int deleteCmcTechnicalPlanByTechnicalPlanId(String technicalPlanId);
53
+
54
+    /**
55
+     * 批量删除cmc技术方案
56
+     * 
57
+     * @param technicalPlanIds 需要删除的数据主键集合
58
+     * @return 结果
59
+     */
60
+    public int deleteCmcTechnicalPlanByTechnicalPlanIds(String[] technicalPlanIds);
61
+}

+ 61
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcTechnicalPlanService.java Bestand weergeven

@@ -0,0 +1,61 @@
1
+package com.ruoyi.oa.service;
2
+
3
+import java.util.List;
4
+import com.ruoyi.oa.domain.CmcTechnicalPlan;
5
+
6
+/**
7
+ * cmc技术方案Service接口
8
+ * 
9
+ * @author cmc
10
+ * @date 2024-04-02
11
+ */
12
+public interface ICmcTechnicalPlanService 
13
+{
14
+    /**
15
+     * 查询cmc技术方案
16
+     * 
17
+     * @param technicalPlanId cmc技术方案主键
18
+     * @return cmc技术方案
19
+     */
20
+    public CmcTechnicalPlan selectCmcTechnicalPlanByTechnicalPlanId(String technicalPlanId);
21
+
22
+    /**
23
+     * 查询cmc技术方案列表
24
+     * 
25
+     * @param cmcTechnicalPlan cmc技术方案
26
+     * @return cmc技术方案集合
27
+     */
28
+    public List<CmcTechnicalPlan> selectCmcTechnicalPlanList(CmcTechnicalPlan cmcTechnicalPlan);
29
+
30
+    /**
31
+     * 新增cmc技术方案
32
+     * 
33
+     * @param cmcTechnicalPlan cmc技术方案
34
+     * @return 结果
35
+     */
36
+    public int insertCmcTechnicalPlan(CmcTechnicalPlan cmcTechnicalPlan);
37
+
38
+    /**
39
+     * 修改cmc技术方案
40
+     * 
41
+     * @param cmcTechnicalPlan cmc技术方案
42
+     * @return 结果
43
+     */
44
+    public int updateCmcTechnicalPlan(CmcTechnicalPlan cmcTechnicalPlan);
45
+
46
+    /**
47
+     * 批量删除cmc技术方案
48
+     * 
49
+     * @param technicalPlanIds 需要删除的cmc技术方案主键集合
50
+     * @return 结果
51
+     */
52
+    public int deleteCmcTechnicalPlanByTechnicalPlanIds(String[] technicalPlanIds);
53
+
54
+    /**
55
+     * 删除cmc技术方案信息
56
+     * 
57
+     * @param technicalPlanId cmc技术方案主键
58
+     * @return 结果
59
+     */
60
+    public int deleteCmcTechnicalPlanByTechnicalPlanId(String technicalPlanId);
61
+}

+ 0
- 61
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcTechnicalService.java Bestand weergeven

@@ -1,61 +0,0 @@
1
-package com.ruoyi.oa.service;
2
-
3
-import java.util.List;
4
-import com.ruoyi.oa.domain.CmcTechnical;
5
-
6
-/**
7
- * cmc技术方案Service接口
8
- * 
9
- * @author cmc
10
- * @date 2024-04-02
11
- */
12
-public interface ICmcTechnicalService 
13
-{
14
-    /**
15
-     * 查询cmc技术方案
16
-     * 
17
-     * @param technicalId cmc技术方案主键
18
-     * @return cmc技术方案
19
-     */
20
-    public CmcTechnical selectCmcTechnicalByTechnicalId(String technicalId);
21
-
22
-    /**
23
-     * 查询cmc技术方案列表
24
-     * 
25
-     * @param cmcTechnical cmc技术方案
26
-     * @return cmc技术方案集合
27
-     */
28
-    public List<CmcTechnical> selectCmcTechnicalList(CmcTechnical cmcTechnical);
29
-
30
-    /**
31
-     * 新增cmc技术方案
32
-     * 
33
-     * @param cmcTechnical cmc技术方案
34
-     * @return 结果
35
-     */
36
-    public int insertCmcTechnical(CmcTechnical cmcTechnical);
37
-
38
-    /**
39
-     * 修改cmc技术方案
40
-     * 
41
-     * @param cmcTechnical cmc技术方案
42
-     * @return 结果
43
-     */
44
-    public int updateCmcTechnical(CmcTechnical cmcTechnical);
45
-
46
-    /**
47
-     * 批量删除cmc技术方案
48
-     * 
49
-     * @param technicalIds 需要删除的cmc技术方案主键集合
50
-     * @return 结果
51
-     */
52
-    public int deleteCmcTechnicalByTechnicalIds(String[] technicalIds);
53
-
54
-    /**
55
-     * 删除cmc技术方案信息
56
-     * 
57
-     * @param technicalId cmc技术方案主键
58
-     * @return 结果
59
-     */
60
-    public int deleteCmcTechnicalByTechnicalId(String technicalId);
61
-}

+ 93
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcTechnicalPlanServiceImpl.java Bestand weergeven

@@ -0,0 +1,93 @@
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.CmcTechnicalPlanMapper;
7
+import com.ruoyi.oa.domain.CmcTechnicalPlan;
8
+import com.ruoyi.oa.service.ICmcTechnicalPlanService;
9
+
10
+/**
11
+ * cmc技术方案Service业务层处理
12
+ * 
13
+ * @author cmc
14
+ * @date 2024-04-02
15
+ */
16
+@Service
17
+public class CmcTechnicalPlanServiceImpl implements ICmcTechnicalPlanService 
18
+{
19
+    @Autowired
20
+    private CmcTechnicalPlanMapper cmcTechnicalPlanMapper;
21
+
22
+    /**
23
+     * 查询cmc技术方案
24
+     * 
25
+     * @param technicalPlanId cmc技术方案主键
26
+     * @return cmc技术方案
27
+     */
28
+    @Override
29
+    public CmcTechnicalPlan selectCmcTechnicalPlanByTechnicalPlanId(String technicalPlanId)
30
+    {
31
+        return cmcTechnicalPlanMapper.selectCmcTechnicalPlanByTechnicalPlanId(technicalPlanId);
32
+    }
33
+
34
+    /**
35
+     * 查询cmc技术方案列表
36
+     * 
37
+     * @param cmcTechnicalPlan cmc技术方案
38
+     * @return cmc技术方案
39
+     */
40
+    @Override
41
+    public List<CmcTechnicalPlan> selectCmcTechnicalPlanList(CmcTechnicalPlan cmcTechnicalPlan)
42
+    {
43
+        return cmcTechnicalPlanMapper.selectCmcTechnicalPlanList(cmcTechnicalPlan);
44
+    }
45
+
46
+    /**
47
+     * 新增cmc技术方案
48
+     * 
49
+     * @param cmcTechnicalPlan cmc技术方案
50
+     * @return 结果
51
+     */
52
+    @Override
53
+    public int insertCmcTechnicalPlan(CmcTechnicalPlan cmcTechnicalPlan)
54
+    {
55
+        return cmcTechnicalPlanMapper.insertCmcTechnicalPlan(cmcTechnicalPlan);
56
+    }
57
+
58
+    /**
59
+     * 修改cmc技术方案
60
+     * 
61
+     * @param cmcTechnicalPlan cmc技术方案
62
+     * @return 结果
63
+     */
64
+    @Override
65
+    public int updateCmcTechnicalPlan(CmcTechnicalPlan cmcTechnicalPlan)
66
+    {
67
+        return cmcTechnicalPlanMapper.updateCmcTechnicalPlan(cmcTechnicalPlan);
68
+    }
69
+
70
+    /**
71
+     * 批量删除cmc技术方案
72
+     * 
73
+     * @param technicalPlanIds 需要删除的cmc技术方案主键
74
+     * @return 结果
75
+     */
76
+    @Override
77
+    public int deleteCmcTechnicalPlanByTechnicalPlanIds(String[] technicalPlanIds)
78
+    {
79
+        return cmcTechnicalPlanMapper.deleteCmcTechnicalPlanByTechnicalPlanIds(technicalPlanIds);
80
+    }
81
+
82
+    /**
83
+     * 删除cmc技术方案信息
84
+     * 
85
+     * @param technicalPlanId cmc技术方案主键
86
+     * @return 结果
87
+     */
88
+    @Override
89
+    public int deleteCmcTechnicalPlanByTechnicalPlanId(String technicalPlanId)
90
+    {
91
+        return cmcTechnicalPlanMapper.deleteCmcTechnicalPlanByTechnicalPlanId(technicalPlanId);
92
+    }
93
+}

+ 0
- 93
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcTechnicalServiceImpl.java Bestand weergeven

@@ -1,93 +0,0 @@
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.CmcTechnicalMapper;
7
-import com.ruoyi.oa.domain.CmcTechnical;
8
-import com.ruoyi.oa.service.ICmcTechnicalService;
9
-
10
-/**
11
- * cmc技术方案Service业务层处理
12
- * 
13
- * @author cmc
14
- * @date 2024-04-02
15
- */
16
-@Service
17
-public class CmcTechnicalServiceImpl implements ICmcTechnicalService 
18
-{
19
-    @Autowired
20
-    private CmcTechnicalMapper cmcTechnicalMapper;
21
-
22
-    /**
23
-     * 查询cmc技术方案
24
-     * 
25
-     * @param technicalId cmc技术方案主键
26
-     * @return cmc技术方案
27
-     */
28
-    @Override
29
-    public CmcTechnical selectCmcTechnicalByTechnicalId(String technicalId)
30
-    {
31
-        return cmcTechnicalMapper.selectCmcTechnicalByTechnicalId(technicalId);
32
-    }
33
-
34
-    /**
35
-     * 查询cmc技术方案列表
36
-     * 
37
-     * @param cmcTechnical cmc技术方案
38
-     * @return cmc技术方案
39
-     */
40
-    @Override
41
-    public List<CmcTechnical> selectCmcTechnicalList(CmcTechnical cmcTechnical)
42
-    {
43
-        return cmcTechnicalMapper.selectCmcTechnicalList(cmcTechnical);
44
-    }
45
-
46
-    /**
47
-     * 新增cmc技术方案
48
-     * 
49
-     * @param cmcTechnical cmc技术方案
50
-     * @return 结果
51
-     */
52
-    @Override
53
-    public int insertCmcTechnical(CmcTechnical cmcTechnical)
54
-    {
55
-        return cmcTechnicalMapper.insertCmcTechnical(cmcTechnical);
56
-    }
57
-
58
-    /**
59
-     * 修改cmc技术方案
60
-     * 
61
-     * @param cmcTechnical cmc技术方案
62
-     * @return 结果
63
-     */
64
-    @Override
65
-    public int updateCmcTechnical(CmcTechnical cmcTechnical)
66
-    {
67
-        return cmcTechnicalMapper.updateCmcTechnical(cmcTechnical);
68
-    }
69
-
70
-    /**
71
-     * 批量删除cmc技术方案
72
-     * 
73
-     * @param technicalIds 需要删除的cmc技术方案主键
74
-     * @return 结果
75
-     */
76
-    @Override
77
-    public int deleteCmcTechnicalByTechnicalIds(String[] technicalIds)
78
-    {
79
-        return cmcTechnicalMapper.deleteCmcTechnicalByTechnicalIds(technicalIds);
80
-    }
81
-
82
-    /**
83
-     * 删除cmc技术方案信息
84
-     * 
85
-     * @param technicalId cmc技术方案主键
86
-     * @return 结果
87
-     */
88
-    @Override
89
-    public int deleteCmcTechnicalByTechnicalId(String technicalId)
90
-    {
91
-        return cmcTechnicalMapper.deleteCmcTechnicalByTechnicalId(technicalId);
92
-    }
93
-}

+ 3
- 3
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcProjectMapper.xml Bestand weergeven

@@ -67,12 +67,12 @@
67 67
     <sql id="selectCmcProjectVo">
68 68
         select p.project_id, p.project_number, p.project_name, p.project_leader, u.nick_name as leader_nick_name, p.is_finished, p.project_source, p.party_a_id, pa.party_a_name, p.contact_person, p.telephone,
69 69
                p.project_type, p.project_level, p.project_registrant, u1.nick_name as registrant_nick_name, p.undertaking_dept, p.project_planner, p.site_leader, p.organize_document, p.organize_time,
70
-               p.register_time, p.plan_time, p.entry_time, p.exit_time, p.remark, c.technical_director, u2.nick_name as director_nick_name, c.quality_inspector, p.project_kml, p.project_cp, p.kml_lng, p.kml_lat,
70
+               p.register_time, p.plan_time, p.entry_time, p.exit_time, p.remark, tp.technical_director, u2.nick_name as director_nick_name, tp.quality_inspector, p.project_kml, p.project_cp, p.kml_lng, p.kml_lat,
71 71
                p.cars, p.drivers, p.devices, p.participates, p.task_document, p.project_request from cmc_project as p
72 72
         left join sys_user as u on u.user_id = p.project_leader
73 73
         left join sys_user as u1 on u1.user_id = p.project_registrant
74
-        left join cmc_technical as c on c.project_id = p.project_id
75
-        left join sys_user as u2 on u2.user_id = c.technical_director
74
+        left join cmc_technical_plan as tp on tp.project_id = p.project_id
75
+        left join sys_user as u2 on u2.user_id = tp.technical_director
76 76
         left join cmc_party_a as pa on pa.party_a_id = p.party_a_id
77 77
     </sql>
78 78
 

oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcTechnicalMapper.xml → oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcTechnicalPlanMapper.xml Bestand weergeven

@@ -2,10 +2,10 @@
2 2
 <!DOCTYPE mapper
3 3
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4 4
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
-<mapper namespace="com.ruoyi.oa.mapper.CmcTechnicalMapper">
5
+<mapper namespace="com.ruoyi.oa.mapper.CmcTechnicalPlanMapper">
6 6
 
7
-    <resultMap type="CmcTechnical" id="CmcTechnicalResult">
8
-        <result property="technicalId"    column="technical_id"    />
7
+    <resultMap type="CmcTechnicalPlan" id="CmcTechnicalPlanResult">
8
+        <result property="technicalPlanId"    column="technical_plan_id"    />
9 9
         <result property="projectId"    column="project_id"    />
10 10
         <result property="technicalDirector"    column="technical_director"    />
11 11
         <result property="technicalDesigner"    column="technical_designer"    />
@@ -55,10 +55,10 @@
55 55
         <result property="projectName"    column="project_name"    />
56 56
     </resultMap>
57 57
 
58
-    <sql id="selectCmcTechnicalVo">
59
-        select t.technical_id, t.project_id, p.project_number, p.project_name, t.technical_director, u.nick_name as direct_nick_name, t.technical_designer, u1.nick_name as design_nick_name,
58
+    <sql id="selectCmcTechnicalPlanVo">
59
+        select t.technical_plan_id, t.project_id, p.project_number, p.project_name, t.technical_director, u.nick_name as direct_nick_name, t.technical_designer, u1.nick_name as design_nick_name,
60 60
                t.technical_planner, u2.nick_name as plan_nick_name, t.plan_comment, t.quality_inspector, t.technical_time, t.technical_document, t.modify_document, t.final_document,
61
-               t.design_description, t.technical_comment, t.manager_user_id, u3.nick_name as manager_nick_name, t.manage_comment, t.technical_upload_time, t.tech_approval_time, t.manage_approval_time from cmc_technical as t
61
+               t.design_description, t.technical_comment, t.manager_user_id, u3.nick_name as manager_nick_name, t.manage_comment, t.technical_upload_time, t.tech_approval_time, t.manage_approval_time from cmc_technical_plan as t
62 62
         left join sys_user as u on u.user_id = t.technical_director
63 63
         left join sys_user as u1 on u1.user_id = t.technical_designer
64 64
         left join sys_user as u2 on u2.user_id = t.technical_planner
@@ -66,8 +66,8 @@
66 66
         left join cmc_project as p on p.project_id = t.project_id
67 67
     </sql>
68 68
 
69
-    <select id="selectCmcTechnicalList" parameterType="CmcTechnical" resultMap="CmcTechnicalResult">
70
-        <include refid="selectCmcTechnicalVo"/>
69
+    <select id="selectCmcTechnicalPlanList" parameterType="CmcTechnicalPlan" resultMap="CmcTechnicalPlanResult">
70
+        <include refid="selectCmcTechnicalPlanVo"/>
71 71
         <where>
72 72
             <if test="projectId != null  and projectId != ''"> and t.project_id = #{projectId}</if>
73 73
             <if test="technicalDirector != null "> and t.technical_director = #{technicalDirector}</if>
@@ -88,15 +88,15 @@
88 88
         order by technical_time desc
89 89
     </select>
90 90
 
91
-    <select id="selectCmcTechnicalByTechnicalId" parameterType="String" resultMap="CmcTechnicalResult">
92
-        <include refid="selectCmcTechnicalVo"/>
93
-        where t.technical_id = #{technicalId}
91
+    <select id="selectCmcTechnicalPlanByTechnicalPlanId" parameterType="String" resultMap="CmcTechnicalPlanResult">
92
+        <include refid="selectCmcTechnicalPlanVo"/>
93
+        where t.technical_plan_id = #{technicalPlanId}
94 94
     </select>
95 95
 
96
-    <insert id="insertCmcTechnical" parameterType="CmcTechnical">
97
-        insert into cmc_technical
96
+    <insert id="insertCmcTechnicalPlan" parameterType="CmcTechnicalPlan">
97
+        insert into cmc_technical_plan
98 98
         <trim prefix="(" suffix=")" suffixOverrides=",">
99
-            <if test="technicalId != null">technical_id,</if>
99
+            <if test="technicalPlanId != null">technical_plan_id,</if>
100 100
             <if test="projectId != null">project_id,</if>
101 101
             <if test="technicalDirector != null">technical_director,</if>
102 102
             <if test="technicalDesigner != null">technical_designer,</if>
@@ -116,7 +116,7 @@
116 116
             <if test="manageApprovalTime != null">manage_approval_time,</if>
117 117
         </trim>
118 118
         <trim prefix="values (" suffix=")" suffixOverrides=",">
119
-            <if test="technicalId != null">#{technicalId},</if>
119
+            <if test="technicalPlanId != null">#{technicalPlanId},</if>
120 120
             <if test="projectId != null">#{projectId},</if>
121 121
             <if test="technicalDirector != null">#{technicalDirector},</if>
122 122
             <if test="technicalDesigner != null">#{technicalDesigner},</if>
@@ -137,8 +137,8 @@
137 137
         </trim>
138 138
     </insert>
139 139
 
140
-    <update id="updateCmcTechnical" parameterType="CmcTechnical">
141
-        update cmc_technical
140
+    <update id="updateCmcTechnicalPlan" parameterType="CmcTechnicalPlan">
141
+        update cmc_technical_plan
142 142
         <trim prefix="SET" suffixOverrides=",">
143 143
             <if test="projectId != null">project_id = #{projectId},</if>
144 144
             <if test="technicalDirector != null">technical_director = #{technicalDirector},</if>
@@ -158,17 +158,17 @@
158 158
             <if test="techApprovalTime != null">tech_approval_time = #{techApprovalTime},</if>
159 159
             <if test="manageApprovalTime != null">manage_approval_time = #{manageApprovalTime},</if>
160 160
         </trim>
161
-        where technical_id = #{technicalId}
161
+        where technical_plan_id = #{technicalPlanId}
162 162
     </update>
163 163
 
164
-    <delete id="deleteCmcTechnicalByTechnicalId" parameterType="String">
165
-        delete from cmc_technical where technical_id = #{technicalId}
164
+    <delete id="deleteCmcTechnicalPlanByTechnicalPlanId" parameterType="String">
165
+        delete from cmc_technical_plan where technical_plan_id = #{technicalPlanId}
166 166
     </delete>
167 167
 
168
-    <delete id="deleteCmcTechnicalByTechnicalIds" parameterType="String">
169
-        delete from cmc_technical where technical_id in
170
-        <foreach item="technicalId" collection="array" open="(" separator="," close=")">
171
-            #{technicalId}
168
+    <delete id="deleteCmcTechnicalPlanByTechnicalPlanIds" parameterType="String">
169
+        delete from cmc_technical_plan where technical_plan_id in
170
+        <foreach item="technicalPlanId" collection="array" open="(" separator="," close=")">
171
+            #{technicalPlanId}
172 172
         </foreach>
173 173
     </delete>
174 174
 </mapper>

+ 3927
- 694
oa-back/sql/sql.sql
Diff onderdrukt omdat het te groot bestand
Bestand weergeven


+ 0
- 44
oa-ui/src/api/oa/technical/technical.js Bestand weergeven

@@ -1,44 +0,0 @@
1
-import request from '@/utils/request'
2
-
3
-// 查询cmc技术交底列表
4
-export function listTechnical(query) {
5
-  return request({
6
-    url: '/oa/technical/list',
7
-    method: 'get',
8
-    params: query
9
-  })
10
-}
11
-
12
-// 查询cmc技术交底详细
13
-export function getTechnical(technicalId) {
14
-  return request({
15
-    url: '/oa/technical/' + technicalId,
16
-    method: 'get'
17
-  })
18
-}
19
-
20
-// 新增cmc技术交底
21
-export function addTechnical(data) {
22
-  return request({
23
-    url: '/oa/technical',
24
-    method: 'post',
25
-    data: data
26
-  })
27
-}
28
-
29
-// 修改cmc技术交底
30
-export function updateTechnical(data) {
31
-  return request({
32
-    url: '/oa/technical',
33
-    method: 'put',
34
-    data: data
35
-  })
36
-}
37
-
38
-// 删除cmc技术交底
39
-export function delTechnical(technicalId) {
40
-  return request({
41
-    url: '/oa/technical/' + technicalId,
42
-    method: 'delete'
43
-  })
44
-}

+ 1
- 1
oa-ui/src/views/flowable/form/business/subContract.vue Bestand weergeven

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-05-10 15:31:57
4 4
  * @LastEditors: wrh
5
- * @LastEditTime: 2024-06-27 13:17:26
5
+ * @LastEditTime: 2024-06-28 14:26:25
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">

+ 2
- 2
oa-ui/src/views/flowable/form/components/conditionDisplay.vue Bestand weergeven

@@ -14,7 +14,7 @@
14 14
     <zh-table :key="'zh'+taskForm.taskId" :taskForm="taskForm" :tableForm="tableForm" v-else-if="taskForm.procDefName == '综合事务部考核'"></zh-table>
15 15
     <project-process :key="'pro'+taskForm.taskId" :taskForm="taskForm" :taskName="''" v-else-if="taskForm.procDefName == '项目流转'"></project-process>
16 16
     <car-form :taskForm="taskForm" :taskName="''" v-else-if="taskForm.procDefName == '用车审批'"></car-form>
17
-    <technical-form :key="'tec'+taskForm.taskId" :taskForm="taskForm" v-else-if="taskForm.procDefName == '技术交底'"></technical-form>
17
+    <technical-plan :key="'tec'+taskForm.taskId" :taskForm="taskForm" v-else-if="taskForm.procDefName == '技术方案'"></technical-plan>
18 18
     <safe-form :key="'safe'+taskForm.taskId" :taskForm="taskForm" :taskName="''" v-else-if="taskForm.procDefName == '安全交底'"></safe-form>
19 19
     <settle-form :key="'fb'+taskForm.taskId" :taskForm="taskForm" :taskName="''" :disabled="true"
20 20
       v-else-if="taskForm.procDefName == '项目结算'"></settle-form>
@@ -41,7 +41,7 @@ import XmTable from "@/views/flowable/form/access/xmTable.vue";
41 41
 import CwTable from "@/views/flowable/form/access/cwTable.vue";
42 42
 import CarForm from '@/views/flowable/form/oa/carForm.vue';
43 43
 import projectProcess from '@/views/flowable/form/projectProcess/index'
44
-import TechnicalForm from '@/views/flowable/form/technicalForm.vue';
44
+import TechnicalForm from '@/views/flowable/form/technicalPlan.vue';
45 45
 import SafeForm from '@/views/flowable/form/safeForm.vue';
46 46
 import SettleForm from '@/views/flowable/form/settleForm.vue';
47 47
 import BudgetInfo from '../budget/budgetInfo.vue';

+ 4
- 4
oa-ui/src/views/flowable/form/components/detailDisplay.vue Bestand weergeven

@@ -24,8 +24,8 @@
24 24
       @goBack="goBack"></borrow-form>
25 25
     <safe-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '安全交底'"
26 26
       @goBack="goBack"></safe-form>
27
-    <technical-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '技术交底'"
28
-      @goBack="goBack"></technical-form>
27
+    <technical-plan :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '技术方案'"
28
+      @goBack="goBack"></technical-plan>
29 29
     <contract-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '承接合同评审'"
30 30
       @goBack="goBack"></contract-form>
31 31
     <sub-contract :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '分包合同评审'"
@@ -55,7 +55,7 @@ import deviceForm from "@/views/flowable/form/oa/deviceForm";
55 55
 import projectProcess from "@/views/flowable/form/projectProcess/index.vue"
56 56
 import AddBudget from '@/views/flowable/form/budget/addBudget.vue';
57 57
 import safeForm from '@/views/flowable/form/safeForm.vue';
58
-import technicalForm from '@/views/flowable/form/technicalForm.vue';
58
+import technicalPlan from '@/views/flowable/form/technicalPlan.vue';
59 59
 import budgetIndex from '@/views/flowable/form/budget/budget.vue';
60 60
 import businessReview from '@/views/flowable/form/projectProcess/businessReview.vue';
61 61
 import contractForm from '@/views/flowable/form/business/contractForm.vue';
@@ -80,7 +80,7 @@ export default {
80 80
     AddBudget,
81 81
     borrowForm,
82 82
     safeForm,
83
-    technicalForm,
83
+    technicalPlan,
84 84
     budgetIndex,
85 85
     businessReview,
86 86
     contractForm,

+ 1
- 1
oa-ui/src/views/flowable/form/projectProcess/arrangeProject.vue Bestand weergeven

@@ -224,7 +224,7 @@ export default {
224 224
       this.peopleVisible = false;
225 225
     },
226 226
     confirmPlanForm() {
227
-      this.$confirm('项目安排之后会自动发起预算编制、技术交底、安全交底三个子流程,将无法进行撤回操作,是否继续提交?', '提示', {
227
+      this.$confirm('项目安排之后会自动发起预算编制、技术方案、安全交底三个子流程,将无法进行撤回操作,是否继续提交?', '提示', {
228 228
         confirmButtonText: '确定',
229 229
         cancelButtonText: '取消',
230 230
         type: 'warning'

+ 6
- 6
oa-ui/src/views/flowable/form/projectProcess/index.vue Bestand weergeven

@@ -1,8 +1,8 @@
1 1
 <!--
2 2
  * @Author: ysh
3 3
  * @Date: 2024-02-27 14:49:15
4
- * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-06-13 18:38:04
4
+ * @LastEditors: wrh
5
+ * @LastEditTime: 2024-06-28 14:45:41
6 6
 -->
7 7
 
8 8
 <template>
@@ -21,9 +21,9 @@
21 21
           </el-tab-pane>
22 22
           <el-tab-pane label="安全交底" name="安全交底">
23 23
             <safe-tab :taskForm="taskForm"  @goBack="goBack"></safe-tab>
24
-          </el-tab-pane :taskForm="taskForm"  @goBack="goBack">
25
-          <el-tab-pane label="技术交底" name="技术交底">
26
-            <technical-tab :taskForm="taskForm" :taskName="taskName"  @goBack="goBack"></technical-tab>
24
+          </el-tab-pane>
25
+          <el-tab-pane label="技术方案" name="技术方案">
26
+            <plan-tab :taskForm="taskForm" :taskName="taskName"  @goBack="goBack"></plan-tab>
27 27
           </el-tab-pane>
28 28
           <el-tab-pane label="经营审核" name="经营审核">
29 29
             <business-review :taskForm="taskForm" :taskName="taskName" :disabled="taskName != '经营审核'"
@@ -69,7 +69,7 @@ import ManageReview from './manageReview.vue'
69 69
 import ScConfirm from './scConfirm.vue'
70 70
 import InProgress from './inProgress.vue'
71 71
 import BudgetTab from './budgetTab.vue'
72
-import TechnicalTab from './technicalTab.vue'
72
+import TechnicalTab from './planTab.vue'
73 73
 import SafeTab from './safeTab.vue'
74 74
 export default {
75 75
   props: {

+ 1
- 1
oa-ui/src/views/flowable/form/projectProcess/safeTab.vue Bestand weergeven

@@ -103,7 +103,7 @@ export default {
103 103
     this.getUserList();
104 104
   },
105 105
   methods: {
106
-    /** 查询cmc技术交底列表 */
106
+    /** 查询cmc技术方案列表 */
107 107
     initForm() {
108 108
       getSafe(this.taskForm.formId).then((res) => {
109 109
         if (res.data) {

+ 0
- 262
oa-ui/src/views/flowable/form/projectProcess/technicalTab.vue Bestand weergeven

@@ -1,262 +0,0 @@
1
-<!--
2
- * @Author: ysh
3
- * @Date: 2024-04-19 15:32:00
4
- * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-06-26 11:24:27
6
--->
7
-<template>
8
-  <div class="app-container">
9
-    <el-empty description="技术方案未编制" v-if="!haveTechnical"></el-empty>
10
-    <div v-if="haveTechnical">
11
-      <h3 class="text-center"><b>{{ form.projectNumber + '-' + form.projectName + ' 技术交底' }}</b></h3>
12
-      <el-form ref="technicalForm" :model="form" :rules="rules" label-width="125px" disabled>
13
-        <el-form-item label="项目编号:" prop="projectNumber">
14
-          {{ form.projectNumber }}
15
-        </el-form-item>
16
-        <el-form-item label="项目名称:" prop="projectName">
17
-          {{ form.projectName }}
18
-        </el-form-item>
19
-        <el-form-item label="技术负责人" prop="technicalDirector">
20
-          <el-select v-model="form.technicalDirector" filterable clearable style="width: 220px">
21
-            <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"
22
-              v-if="item.nickName != 'admin'">
23
-            </el-option>
24
-          </el-select>
25
-        </el-form-item>
26
-        <el-form-item label="技术设计人" prop="technicalDesigner">
27
-          <el-select v-model="form.technicalDesigner" filterable clearable style="width:220px">
28
-            <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"
29
-              v-if="item.nickName != 'admin'">
30
-            </el-option>
31
-          </el-select>
32
-        </el-form-item>
33
-        <el-form-item label="质量检查员" prop="qualityInspector">
34
-          <el-select v-model="form.qualityInspector" filterable multiple clearable style="width:220px">
35
-            <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"
36
-              v-if="item.nickName != 'admin'">
37
-            </el-option>
38
-          </el-select>
39
-        </el-form-item>
40
-        <el-form-item label="技术安排意见" prop="planComment">
41
-          <el-input type="textarea" v-model="form.planComment" placeholder="请输入技术安排意见" />
42
-        </el-form-item>
43
-        <el-row>
44
-          <el-col :span="6" :xs="24" :offset="12">
45
-            <el-form-item label="签名" prop="technicalPlanner">
46
-              <span class="auditor"> {{ form.planUser ? form.planUser.nickName : '' }} </span>
47
-            </el-form-item>
48
-          </el-col>
49
-          <el-col :span="6">
50
-            <el-form-item label="日期:" label-width="120px">
51
-              <span> {{ form.technicalTime ? form.technicalTime : '' }} </span>
52
-            </el-form-item>
53
-          </el-col>
54
-        </el-row>
55
-        <el-form-item label="技术方案" prop="technicalDocument">
56
-          <div v-if="form.technicalDocument">
57
-            <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.technicalDocument}`)">
58
-              {{ getFileName(form.technicalDocument) }}
59
-            </el-link>
60
-            <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + form.technicalDocument}`"
61
-              :underline="false" target="_blank">
62
-              <span class="el-icon-download">下载文件</span>
63
-            </el-link>
64
-          </div>
65
-        </el-form-item>
66
-        <el-form-item label="方案说明" prop="designDescription">
67
-          <el-input type="textarea" v-model="form.designDescription" placeholder="请输入方案说明" />
68
-        </el-form-item>
69
-        <el-row>
70
-          <el-col :span="6" :xs="24" :offset="12">
71
-            <el-form-item label="签名" prop="designUser">
72
-              <span class="auditor"> {{ form.designUser ? form.designUser.nickName : '' }} </span>
73
-            </el-form-item>
74
-          </el-col>
75
-          <el-col :span="6">
76
-            <el-form-item label="日期:" label-width="120px">
77
-              <span> {{ form.technicalUploadTime ? form.technicalUploadTime : '' }} </span>
78
-            </el-form-item>
79
-          </el-col>
80
-        </el-row>
81
-        <el-form-item label="修改技术方案" prop="modifyDocument">
82
-          <div v-if="form.modifyDocument">
83
-            <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.modifyDocument}`)">
84
-              {{ getFileName(form.modifyDocument) }}
85
-            </el-link>
86
-            <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + form.modifyDocument}`"
87
-              :underline="false" target="_blank">
88
-              <span class="el-icon-download">下载文件</span>
89
-            </el-link>
90
-          </div>
91
-        </el-form-item>
92
-        <el-form-item label="技术部审核意见" prop="technicalComment">
93
-          <el-input type="textarea" v-model="form.technicalComment" placeholder="请输入技术审核意见" />
94
-        </el-form-item>
95
-        <el-row>
96
-          <el-col :span="6" :xs="24" :offset="12">
97
-            <el-form-item label="签名" prop="technicalPlanner">
98
-              <span class="auditor"> {{ form.planUser ? form.planUser.nickName : '' }} </span>
99
-            </el-form-item>
100
-          </el-col>
101
-          <el-col :span="6">
102
-            <el-form-item label="日期:" label-width="120px">
103
-              <span> {{ form.techApprovalTime }} </span>
104
-            </el-form-item>
105
-          </el-col>
106
-        </el-row>
107
-        <el-form-item label="最终技术方案" prop="finalDocument">
108
-          <div v-if="form.finalDocument">
109
-            <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.finalDocument}`)">
110
-              {{ getFileName(form.finalDocument) }}
111
-            </el-link>
112
-            <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + form.finalDocument}`"
113
-              :underline="false" target="_blank">
114
-              <span class="el-icon-download">下载文件</span>
115
-            </el-link>
116
-          </div>
117
-        </el-form-item>
118
-        <el-form-item label="总工程师审核意见" prop="manageComment">
119
-          <el-input type="textarea" v-model="form.manageComment" placeholder="请输入总工审核意见" />
120
-        </el-form-item>
121
-        <el-row>
122
-          <el-col :span="6" :xs="24" :offset="12">
123
-            <el-form-item label="签名" prop="manager">
124
-              <span class="auditor"> {{ form.managerUser ? form.managerUser.nickName : '' }} </span>
125
-            </el-form-item>
126
-          </el-col>
127
-          <el-col :span="6">
128
-            <el-form-item label="日期:" label-width="120px">
129
-              <span> {{ form.manageApprovalTime }} </span>
130
-            </el-form-item>
131
-          </el-col>
132
-        </el-row>
133
-      </el-form>
134
-    </div>
135
-  </div>
136
-</template>
137
-
138
-<script>
139
-import technicalForm from "../technicalForm.vue";
140
-import { listUser } from "@/api/system/user";
141
-import { getProject } from "@/api/oa/project/project";
142
-import {
143
-  listTechnical,
144
-  getTechnical,
145
-  delTechnical,
146
-  addTechnical,
147
-  updateTechnical,
148
-} from "@/api/oa/technical/technical";
149
-export default {
150
-  components: { technicalForm },
151
-  props: {
152
-    taskForm: {
153
-      type: Object,
154
-      require: true,
155
-    },
156
-  },
157
-  computed: {
158
-    projectNumber() {
159
-      return this.$store.state.projectProcess.projectNumber;
160
-    },
161
-    projectName() {
162
-      return this.$store.state.projectProcess.projectName;
163
-    },
164
-  },
165
-  watch: {
166
-    'taskForm.formId'(newval) {
167
-      this.initForm();
168
-      this.getUserList();
169
-    },
170
-    projectNumber(newval) {
171
-      this.$set(this.form, "projectNumber", newval);
172
-    },
173
-    projectName(newval) {
174
-      this.$set(this.form, "projectName", newval);
175
-    }
176
-  },
177
-  data() {
178
-    return {
179
-      baseUrl: process.env.VUE_APP_BASE_API,
180
-      haveTechnical: false,
181
-      form: {},
182
-      rules: {},
183
-      userList: [],
184
-    };
185
-  },
186
-  created() {
187
-
188
-  },
189
-  mounted() {
190
-    this.initForm();
191
-    this.getUserList();
192
-  },
193
-  methods: {
194
-    /** 查询cmc技术交底列表 */
195
-    initForm() {
196
-      this.loadTechnicalAndProjectData();
197
-    },
198
-    async loadTechnicalAndProjectData() {
199
-      try {
200
-        const technicalRes = await getTechnical(this.taskForm.formId);
201
-        if (technicalRes.data) {
202
-          this.haveTechnical = true;
203
-          let qualityInspector = this.processQualityInspector(technicalRes.data)
204
-          technicalRes.data.qualityInspector = qualityInspector
205
-          this.form = technicalRes.data;
206
-          if (!this.projectNumber || !this.projectName) {
207
-            // 仅在需要时调用getProject  
208
-            const projectRes = await getProject(this.taskForm.formId);
209
-            if (projectRes.data) {
210
-              this.$set(this.form, "projectNumber", projectRes.data.projectNumber);
211
-              this.$set(this.form, "projectName", projectRes.data.projectName);
212
-            }
213
-          }
214
-        }
215
-      } catch (error) {
216
-      }
217
-    },
218
-    processQualityInspector(form) {
219
-      if (Array.isArray(form.qualityInspector)) {
220
-      } else if (typeof form.qualityInspector === 'string') {
221
-        // 如果是一个字符串,则按逗号分割并转换为整数数组  
222
-        const qualityInspectorArr = form.qualityInspector.split(',').map(inspector => parseInt(inspector, 10));
223
-        return qualityInspectorArr
224
-        // this.$set(form, "qualityInspector", qualityInspectorArr);
225
-      } else if (form.qualityInspector === null || form.qualityInspector === undefined || form.qualityInspector === '') {
226
-        // 如果为空、null或undefined,则设置为空数组  
227
-        // this.$set(form, "qualityInspector", []);
228
-        return []
229
-      }
230
-    },
231
-    // 查询用户列表
232
-    getUserList() {
233
-      listUser({ pageSize: 9999, pageNum: 1 }).then((res) => {
234
-        this.userList = res.rows;
235
-      });
236
-    },
237
-    getFileName(name) {
238
-      if (name) {
239
-        let arr = name.split('/')
240
-        return arr[arr.length - 1];
241
-      }
242
-    },
243
-  },
244
-};
245
-</script>
246
-
247
-<style lang="scss" scoped>
248
-@import "@/assets/styles/element-reset.scss";
249
-
250
-::v-deep .el-input.is-disabled .el-input__inner {
251
-  color: #686a6e;
252
-}
253
-
254
-::v-deep .el-textarea.is-disabled .el-textarea__inner,
255
-.el-radio__input.is-disabled+span.el-radio__label {
256
-  color: #686a6e;
257
-}
258
-
259
-::v-deep .el-radio__input.is-disabled+span.el-radio__label {
260
-  color: #686a6e;
261
-}
262
-</style>

+ 0
- 513
oa-ui/src/views/flowable/form/technicalForm.vue Bestand weergeven

@@ -1,513 +0,0 @@
1
-<template>
2
-  <div class="app-container">
3
-    <el-row :gutter="20">
4
-      <el-col :span="18" :xs="24">
5
-        <el-form ref="form" :model="form" :rules="rules" label-width="130px">
6
-          <el-form-item label="项目编号:" prop="projectId" v-if="taskForm.procDefName == '技术交底'">
7
-            <el-input v-model="chooseProject.projectNumber" placeholder="请输入项目编号" disabled style="width: 300px" />
8
-            <el-descriptions border v-if="isSelect" style="margin-top: 10px;" :column="1">
9
-              <el-descriptions-item label="项目编号" label-class-name="my-label">{{ chooseProject.projectNumber
10
-                }}</el-descriptions-item>
11
-              <el-descriptions-item label="项目名称" label-class-name="my-label">{{ chooseProject.projectName
12
-                }}</el-descriptions-item>
13
-              <el-descriptions-item label="项目负责人" label-class-name="my-label">{{ chooseProject.projectLeaderUser ?
14
-      chooseProject.projectLeaderUser.nickName : ''
15
-                }}</el-descriptions-item>
16
-              <el-descriptions-item label="承担部门" label-class-name="my-label">
17
-                <el-tag size="small">{{ chooseProject.undertakingDeptName }}</el-tag>
18
-              </el-descriptions-item>
19
-              <el-descriptions-item label="项目类型" label-class-name="my-label">{{ chooseProject.projectType
20
-                }}</el-descriptions-item>
21
-            </el-descriptions>
22
-          </el-form-item>
23
-          <el-row>
24
-            <el-col :span="8" :xs="24">
25
-              <el-form-item label="技术负责人" prop="technicalDirector">
26
-                <el-select v-model="form.technicalDirector" filterable clearable style="width:220px"
27
-                  :disabled="taskName != '技术安排'">
28
-                  <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"
29
-                    v-if="item.nickName != 'admin'">
30
-                  </el-option>
31
-                </el-select>
32
-              </el-form-item>
33
-            </el-col>
34
-            <el-col :span="8" :xs="24">
35
-              <el-form-item label="技术设计人" prop="technicalDesigner">
36
-                <el-select v-model="form.technicalDesigner" filterable clearable style="width:220px"
37
-                  :disabled="taskName != '技术安排'">
38
-                  <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"
39
-                    v-if="item.nickName != 'admin'">
40
-                  </el-option>
41
-                </el-select>
42
-              </el-form-item>
43
-            </el-col>
44
-            <el-col :span="8" :xs="24">
45
-              <el-form-item label="质量检查员" prop="qualityInspector">
46
-                <el-select v-model="form.qualityInspector" filterable multiple clearable style="width:220px"
47
-                  :disabled="taskName != '技术安排'">
48
-                  <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"
49
-                    v-if="item.nickName != 'admin'">
50
-                  </el-option>
51
-                </el-select>
52
-              </el-form-item>
53
-            </el-col>
54
-          </el-row>
55
-          <el-form-item label="技术安排意见" prop="planComment">
56
-            <el-input type="textarea" v-model="form.planComment" :autosize="{ minRows: 4 }" placeholder="请输入技术安排意见"
57
-              :disabled="taskName != '技术安排'" />
58
-          </el-form-item>
59
-          <el-row>
60
-            <el-col :span="6" :xs="24" :offset="12">
61
-              <el-form-item label="签名" prop="technicalPlanner" v-if="showFormItem('技术安排')">
62
-                <span class="auditor"> {{ form.planUser ? form.planUser.nickName : planUser }} </span>
63
-              </el-form-item>
64
-            </el-col>
65
-            <el-col :span="6">
66
-              <el-form-item label="日期:" label-width="120px" v-if="showFormItem('技术安排')">
67
-                <span> {{ form.technicalTime ? form.technicalTime : technicalTime }} </span>
68
-              </el-form-item>
69
-            </el-col>
70
-          </el-row>
71
-          <el-divider></el-divider>
72
-          <el-form-item label="初始技术方案" prop="technicalDocument">
73
-            <FileUpload v-if="taskName == '方案上传'" ref="bsFile" :limit="1" :filePathName="'技术方案/初始'"
74
-              :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="getTechnicalDoc"></FileUpload>
75
-            <!-- <el-link v-if="taskName != '方案上传'" :href="`${baseUrl}${'/profile/upload' + form.technicalDocument}`"
76
-              :underline="false" target="_blank">
77
-              <span class="el-icon-document"> {{ getFileName(form.technicalDocument) }} </span>
78
-            </el-link> -->
79
-            <div v-if="form.technicalDocument && taskName != '方案上传'">
80
-              <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.technicalDocument}`)">
81
-                {{ getFileName(form.technicalDocument) }}
82
-              </el-link>
83
-              <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + form.technicalDocument}`"
84
-                :underline="false" target="_blank">
85
-                <span class="el-icon-download">下载文件</span>
86
-              </el-link>
87
-            </div>
88
-          </el-form-item>
89
-          <el-form-item label="方案说明" prop="designDescription">
90
-            <el-input type="textarea" v-model="form.designDescription" :autosize="{ minRows: 4 }" placeholder="请输入方案说明"
91
-              :disabled="taskName != '方案上传'" />
92
-          </el-form-item>
93
-          <el-row>
94
-            <el-col :span="6" :xs="24" :offset="12">
95
-              <el-form-item label="签名" prop="designUser" v-if="showFormItem('方案上传')">
96
-                <span class="auditor"> {{ form.designUser ? form.designUser.nickName : designUser }} </span>
97
-              </el-form-item>
98
-            </el-col>
99
-            <el-col :span="6">
100
-              <el-form-item label="日期:" label-width="120px" v-if="showFormItem('方案上传')">
101
-                <span> {{ form.technicalUploadTime ? form.technicalUploadTime : technicalUploadTime }} </span>
102
-              </el-form-item>
103
-            </el-col>
104
-          </el-row>
105
-          <el-divider></el-divider>
106
-          <el-form-item label="修改技术方案" prop="modifyDocument">
107
-            <FileUpload v-if="taskName == '技术审核'" ref="jssh" :limit="1" :filePathName="'技术方案/修改'"
108
-              :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="getModifyDoc"></FileUpload>
109
-            <!-- <el-link v-if="taskName != '技术审核'" :href="`${baseUrl}${'/profile/upload' + form.modifyDocument}`"
110
-              :underline="false" target="_blank">
111
-              <span class="el-icon-document"> {{ getFileName(form.modifyDocument) }} </span>
112
-            </el-link> -->
113
-            <div v-if="form.modifyDocument && taskName != '技术审核'">
114
-              <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.modifyDocument}`)">
115
-                {{ getFileName(form.modifyDocument) }}
116
-              </el-link>
117
-              <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + form.modifyDocument}`"
118
-                :underline="false" target="_blank">
119
-                <span class="el-icon-download">下载文件</span>
120
-              </el-link>
121
-            </div>
122
-          </el-form-item>
123
-          <el-form-item label="技术部审核意见" prop="technicalComment">
124
-            <el-input type="textarea" v-model="form.technicalComment" :autosize="{ minRows: 4 }" placeholder="请输入技术审核意见"
125
-              :disabled="taskName != '技术审核'" />
126
-          </el-form-item>
127
-          <el-row>
128
-            <el-col :span="6" :xs="24" :offset="12">
129
-              <el-form-item label="签名" prop="technicalPlanner" v-if="showFormItem('技术审核')">
130
-                <span class="auditor"> {{ form.planUser ? form.planUser.nickName : planUser }} </span>
131
-              </el-form-item>
132
-            </el-col>
133
-            <el-col :span="6">
134
-              <el-form-item label="日期:" label-width="120px" v-if="showFormItem('技术审核')">
135
-                <span> {{ form.techApprovalTime ? form.techApprovalTime : techApprovalTime }} </span>
136
-              </el-form-item>
137
-            </el-col>
138
-          </el-row>
139
-          <el-form-item label="最终技术方案" prop="finalDocument">
140
-            <FileUpload v-if="taskName == '总工审核'" ref="final" :limit="1" :filePathName="'技术方案/最终'"
141
-              :fileType="['doc', 'docx', 'xls', 'xlsx', 'pdf']" @input="getFinalDoc"></FileUpload>
142
-            <!-- <el-link v-if="taskName != '总工审核'" :href="`${baseUrl}${'/profile/upload' + form.finalDocument}`"
143
-              :underline="false" target="_blank">
144
-              <span class="el-icon-document"> {{ getFileName(form.finalDocument) }} </span>
145
-            </el-link> -->
146
-            <div v-if="form.finalDocument && taskName != '总工审核'">
147
-              <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + form.finalDocument}`)">
148
-                {{ getFileName(form.finalDocument) }}
149
-              </el-link>
150
-              <el-link class="ml20" type="warning" :href="`${baseUrl}${'/profile/upload' + form.finalDocument}`"
151
-                :underline="false" target="_blank">
152
-                <span class="el-icon-download">下载文件</span>
153
-              </el-link>
154
-            </div>
155
-          </el-form-item>
156
-          <el-form-item label="总工程师审核意见" prop="manageComment">
157
-            <el-input type="textarea" v-model="form.manageComment" :autosize="{ minRows: 4 }" placeholder="请输入总工审核意见"
158
-              :disabled="taskName != '总工审核'" />
159
-          </el-form-item>
160
-          <el-row>
161
-            <el-col :span="6" :xs="24" :offset="12">
162
-              <el-form-item label="签名" prop="manager" v-if="showFormItem('总工审核')">
163
-                <span class="auditor"> {{ form.managerUser ? form.managerUser.nickName : managerUser }} </span>
164
-              </el-form-item>
165
-            </el-col>
166
-            <el-col :span="6">
167
-              <el-form-item label="日期:" label-width="120px" v-if="showFormItem('总工审核')">
168
-                <span> {{ form.manageApprovalTime ? form.manageApprovalTime : manageApprovalTime }} </span>
169
-              </el-form-item>
170
-            </el-col>
171
-          </el-row>
172
-        </el-form>
173
-        <div style="text-align: center;" v-if="taskName">
174
-          <el-button type="primary" @click="submitForm">提 交</el-button>
175
-        </div>
176
-      </el-col>
177
-      <el-col :span="6" :xs="24">
178
-        <el-card>
179
-          <h2 style="text-align: center;">流程进度</h2>
180
-          <div>
181
-            <flow :flowData="flowData" />
182
-          </div>
183
-        </el-card>
184
-      </el-col>
185
-    </el-row>
186
-  </div>
187
-</template>
188
-
189
-<script>
190
-import { parseTime } from "@/utils/ruoyi";
191
-import { listTechnical, getTechnical, delTechnical, addTechnical, updateTechnical } from "@/api/oa/technical/technical";
192
-import { getProject } from "@/api/oa/project/project";
193
-import { listUser } from '@/api/system/user';
194
-import flow from '@/views/flowable/task/todo/detail/flow';
195
-import { complete, getNextFlowNode } from "@/api/flowable/todo";
196
-import { flowXmlAndNode } from "@/api/flowable/definition";
197
-import { getUsersManageLeaderByDept } from '@/api/system/post'
198
-
199
-export default {
200
-  components: {
201
-    flow
202
-  },
203
-  name: "Technical",
204
-  props: {
205
-    taskName: {
206
-      type: String
207
-    },
208
-    taskForm: {
209
-      type: Object,
210
-      required: true
211
-    }
212
-  },
213
-  data() {
214
-    return {
215
-      baseUrl: process.env.VUE_APP_BASE_API,
216
-      planUser: '',
217
-      managerUser: '',
218
-      designUser: '',
219
-      technicalTime: undefined,
220
-      technicalUploadTime: undefined,
221
-      techApprovalTime: undefined,
222
-      manageApprovalTime: undefined,
223
-      // 遮罩层
224
-      loading: true,
225
-      // 选中数组
226
-      ids: [],
227
-      // 非单个禁用
228
-      single: true,
229
-      // 非多个禁用
230
-      multiple: true,
231
-      // 显示搜索条件
232
-      showSearch: true,
233
-      // 总条数
234
-      total: 0,
235
-      // cmc技术交底表格数据
236
-      technicalList: [],
237
-      // 弹出层标题
238
-      title: "",
239
-      // 是否显示弹出层
240
-      open: false,
241
-      // 查询参数
242
-      queryParams: {
243
-        pageNum: 1,
244
-        pageSize: 10,
245
-        projectId: null,
246
-        technicalDirector: null,
247
-        technicalDesigner: null,
248
-        technicalPlanner: null,
249
-        planComment: null,
250
-        qualityInspector: null,
251
-        technicalTime: null,
252
-        technicalDocument: null,
253
-        designDescription: null,
254
-        technicalComment: null,
255
-        manageComment: null,
256
-        technicalUploadTime: null,
257
-        techApprovalTime: null,
258
-        manageApprovalTime: null
259
-      },
260
-      // 表单参数
261
-      form: {
262
-        qualityInspector: [],
263
-      },
264
-      // 表单校验
265
-      rules: {
266
-      },
267
-      userList: [],
268
-      chooseProject: {},
269
-      isSelect: false,
270
-      // 表单参数
271
-      form: {},
272
-      formTotal: 0,
273
-      flowData: {},
274
-      isDocumentValid: true
275
-    };
276
-  },
277
-  created() {
278
-    if (this.taskName == '技术安排') {
279
-      this.planUser = this.$store.getters.name;
280
-      this.technicalTime = parseTime(new Date(), '{y}-{m}-{d}')
281
-    }
282
-    if (this.taskName == '方案上传') {
283
-      this.designUser = this.$store.getters.name;
284
-      this.technicalUploadTime = parseTime(new Date(), '{y}-{m}-{d}')
285
-    }
286
-    if (this.taskName == '技术审核') {
287
-      this.planUser = this.$store.getters.name;
288
-      this.techApprovalTime = parseTime(new Date(), '{y}-{m}-{d}')
289
-    }
290
-    if (this.taskName == '总工审核') {
291
-      this.managerUser = this.$store.getters.name;
292
-      this.manageApprovalTime = parseTime(new Date(), '{y}-{m}-{d}')
293
-    }
294
-    this.getProjectById();
295
-    this.getUserList();
296
-    this.getList();
297
-    flowXmlAndNode({ procInsId: this.taskForm.procInsId, deployId: this.taskForm.deployId }).then(res => {
298
-      this.flowData = res.data;
299
-    })
300
-  },
301
-  mounted() {
302
-    this.initRules();
303
-    this.initForm();
304
-  },
305
-  methods: {
306
-    initRules() {
307
-      if (this.taskName == '技术安排') {
308
-        this.rules = {
309
-          technicalDirector: [
310
-            { required: true, message: '请选择技术负责人', trigger: 'change' },
311
-          ],
312
-          technicalDesigner: [
313
-            { required: true, message: '请选择技术设计人', trigger: 'change' },
314
-          ],
315
-          qualityInspector: [
316
-            { required: true, message: '请选择质量检查员', trigger: 'change' },
317
-          ],
318
-        }
319
-      } else if (this.taskName == '技术审核') {
320
-        this.rules = {
321
-          technicalComment: [
322
-            { required: true, message: '请输入技术方案审核意见', trigger: 'blur' }
323
-          ]
324
-        }
325
-      } else if (this.taskName == '总工审核') {
326
-        this.rules = {
327
-          manageComment: [
328
-            { required: true, message: '请输入技术方案审核意见', trigger: 'blur' }
329
-          ]
330
-        }
331
-      }
332
-    },
333
-    initForm() {
334
-      getTechnical(this.taskForm.formId).then(res => {
335
-        if (this.isEmptyObject(res.data)) {
336
-          this.formTotal = 0;
337
-          this.form.technicalPlanner = this.$store.getters.userId;
338
-        }
339
-        else {
340
-          this.formTotal = 1;
341
-          let data = res.data;
342
-          if (res.data.qualityInspector == null || res.data.qualityInspector == undefined || res.data.qualityInspector == "") {
343
-            data.qualityInspector = []
344
-          } else {
345
-            let arr = []
346
-            data.qualityInspector = data.qualityInspector.split(',');
347
-            for (let inspector of data.qualityInspector) {
348
-              arr.push(parseInt(inspector))
349
-            }
350
-            data.qualityInspector = arr
351
-          }
352
-          this.form = data;
353
-        }
354
-      })
355
-    },
356
-    // 查询项目
357
-    getProjectById() {
358
-      getProject(this.taskForm.formId).then(response => {
359
-        this.chooseProject = response.data;
360
-        this.isSelect = true
361
-      });
362
-    },
363
-    // 查询用户列表
364
-    getUserList() {
365
-      listUser({ pageSize: 9999, pageNum: 1 }).then(res => {
366
-        this.userList = res.rows
367
-      })
368
-    },
369
-    /** 查询cmc技术交底列表 */
370
-    getList() {
371
-      this.loading = true;
372
-      listTechnical(this.queryParams).then(response => {
373
-        this.technicalList = response.rows;
374
-        this.total = response.total;
375
-        this.loading = false;
376
-      });
377
-    },
378
-    getTechnicalDoc(val) {
379
-      this.getDoc(val, 'technicalDocument')
380
-    },
381
-    getModifyDoc(val) {
382
-      this.getDoc(val, 'modifyDocument')
383
-    },
384
-    getFinalDoc(val) {
385
-      this.getDoc(val, 'finalDocument')
386
-    },
387
-    getDoc(val, name) {
388
-      if (val) {
389
-        let arr = val.split('/upload')
390
-        this.form[name] = arr[1]
391
-        if (val == "") {
392
-          this.form[name] = ""
393
-        }
394
-      }
395
-    },
396
-    getFileName(name) {
397
-      if (name) {
398
-        let arr = name.split('/')
399
-        return arr[arr.length - 1];
400
-      }
401
-    },
402
-    isEmptyObject(obj) {
403
-      for (var key in obj) {
404
-        if (obj.hasOwnProperty(key)) {
405
-          return false;
406
-        }
407
-      }
408
-      return true;
409
-    },
410
-    validateDocument(doc) {
411
-      // 这里添加你的验证逻辑  
412
-      // 例如,检查tenderId是否为空或者是否符合其他规则  
413
-      if (!doc || doc.trim() === '') {
414
-        this.$message.error('请上传技术方案');
415
-        return false;
416
-      }
417
-      return true;
418
-    },
419
-    /** 提交按钮 */
420
-    submitForm() {
421
-      if (this.taskName == '方案上传') {
422
-        this.isDocumentValid = this.validateDocument(this.form.technicalDocument);
423
-        if (!this.isDocumentValid) {
424
-          return;
425
-        }
426
-      }
427
-      this.$refs["form"].validate(valid => {
428
-        if (valid) {
429
-          if (this.formTotal != 0) {
430
-            this.form.qualityInspector = this.form.qualityInspector.join(',');
431
-            updateTechnical(this.form).then(response => {
432
-              this.$modal.msgSuccess("修改成功");
433
-              this.open = false;
434
-              this.getList();
435
-            });
436
-            const params = { taskId: this.taskForm.taskId };
437
-            getNextFlowNode(params).then(res => {
438
-              if (this.taskName == '方案上传') {
439
-                this.$set(this.taskForm.variables, "approval", this.form.technicalPlanner);
440
-                complete(this.taskForm).then(response => {
441
-                  this.$modal.msgSuccess(response.msg);
442
-                  this.$emit('goBack')
443
-                });
444
-              }
445
-              else if (this.taskName == '技术审核') {
446
-                getUsersManageLeaderByDept({ deptId: 110 }).then(res => {
447
-                  let userId = res.data.userId;
448
-                  this.$set(this.taskForm.variables, "approval", userId);
449
-                  complete(this.taskForm).then(response => {
450
-                    this.$modal.msgSuccess(response.msg);
451
-                    this.$emit('goBack')
452
-                  });
453
-                });
454
-              }
455
-              else if (this.taskName == '总工审核') {
456
-                complete(this.taskForm).then(response => {
457
-                  this.$modal.msgSuccess(response.msg);
458
-                  this.$emit('goBack')
459
-                });
460
-              }
461
-            })
462
-          } else {
463
-            this.form.qualityInspector = this.form.qualityInspector.join(',');
464
-            this.form.technicalId = this.taskForm.formId;
465
-            this.form.projectId = this.taskForm.formId;
466
-            addTechnical(this.form).then(response => {
467
-              this.$modal.msgSuccess("新增成功");
468
-              this.open = false;
469
-              this.getList();
470
-            });
471
-            const params = { taskId: this.taskForm.taskId };
472
-            getNextFlowNode(params).then(res => {
473
-              this.$set(this.taskForm.variables, "formId", this.taskForm.formId);
474
-              this.$set(this.taskForm.variables, "approval", this.form.technicalDesigner);
475
-              complete(this.taskForm).then(response => {
476
-                this.$modal.msgSuccess(response.msg);
477
-                this.$emit('goBack')
478
-              });
479
-            })
480
-          }
481
-        }
482
-      });
483
-    },
484
-    showFormItem(name) {
485
-      let isShow = false;
486
-      if (name == '技术安排')
487
-        isShow = true;
488
-      else if (name == '方案上传')
489
-        isShow = (this.taskName != '技术安排');
490
-      else if (name == '技术审核')
491
-        isShow = (this.taskName != '技术安排' && this.taskName != '方案上传');
492
-      else if (name == '总工审核')
493
-        isShow = (this.taskName == '总工审核' || this.taskName == '');
494
-      return isShow;
495
-    },
496
-  }
497
-};
498
-</script>
499
-
500
-<style lang="scss" scoped>
501
-::v-deep .el-input.is-disabled .el-input__inner {
502
-  color: #686a6e;
503
-}
504
-
505
-::v-deep .el-textarea.is-disabled .el-textarea__inner,
506
-.el-radio__input.is-disabled+span.el-radio__label {
507
-  color: #686a6e;
508
-}
509
-
510
-::v-deep .el-radio__input.is-disabled+span.el-radio__label {
511
-  color: #686a6e;
512
-}
513
-</style>

+ 2
- 2
oa-ui/src/views/flowable/task/finished/detail/index.vue Bestand weergeven

@@ -23,7 +23,7 @@
23 23
           <zh-table :taskForm="taskForm" :tableForm="tableForm" v-else-if="taskForm.procDefName == '综合事务部考核'"></zh-table>
24 24
           <project-process :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目流转'"></project-process>
25 25
           <car-form :taskForm="taskForm" :taskName="''" v-else-if="taskForm.procDefName == '用车审批'"></car-form>
26
-          <technical-form :taskForm="taskForm" v-else-if="taskForm.procDefName == '技术交底'"></technical-form>
26
+          <technical-plan :taskForm="taskForm" v-else-if="taskForm.procDefName == '技术方案'"></technical-plan>
27 27
           <safe-form :taskForm="taskForm" v-else-if="taskForm.procDefName == '安全交底'"></safe-form>
28 28
           <el-col :span="16" :offset="4" v-else>
29 29
             <div class="test-form">
@@ -97,7 +97,7 @@ import XmTable from "@/views/flowable/form/access/xmTable.vue";
97 97
 import CwTable from "@/views/flowable/form/access/cwTable.vue";
98 98
 import CarForm from '@/views/flowable/form/oa/carForm.vue';
99 99
 import projectProcess from '@/views/flowable/form/projectProcess/index'
100
-import TechnicalForm from '../../../form/technicalForm.vue';
100
+import TechnicalForm from '../../../form/technicalPlan.vue';
101 101
 import SafeForm from '../../../form/safeForm.vue';
102 102
 import conditionDisplay from '@/views/flowable/form/components/conditionDisplay.vue'
103 103
 export default {

+ 1
- 1
oa-ui/src/views/flowable/task/myProcess/index.vue Bestand weergeven

@@ -476,7 +476,7 @@ export default {
476 476
     },
477 477
     // 子流程不可以删除
478 478
     beDeleted(row) {
479
-      if (row.procDefName == '项目预算' || row.procDefName == '技术交底' || row.procDefName == '安全交底' || row.finishTime != null) {
479
+      if (row.procDefName == '项目预算' || row.procDefName == '技术方案' || row.procDefName == '安全交底' || row.finishTime != null) {
480 480
         return true
481 481
       } else if (row.procDefName == '项目流转' && row.taskName != '项目登记') {
482 482
         return true

+ 1
- 1
oa-ui/src/views/flowable/task/myProcess/progressTree.vue Bestand weergeven

@@ -80,7 +80,7 @@ export default {
80 80
           this.treeData[0].children.push(i);
81 81
         }
82 82
         else if (i.category == "project") {
83
-          if (i.name != "项目预算" && i.name != "安全交底" && i.name != "技术交底")
83
+          if (i.name != "项目预算" && i.name != "安全交底" && i.name != "技术方案")
84 84
             this.treeData[1].children.push(i);
85 85
         } else if (i.category == "finance") {
86 86
           this.treeData[2].children.push(i);

+ 1
- 1
oa-ui/src/views/flowable/task/todo/detail/index.vue Bestand weergeven

@@ -478,7 +478,7 @@ export default {
478 478
     // 是否显示审批通过
479 479
     isShowApprove() {
480 480
       if (this.taskName == '员工填报' || this.taskForm.procDefName == '用车审批' || this.taskForm.procDefName == '设备审批' || this.taskForm.procDefName == '项目流转'
481
-        || (this.taskForm.procDefName == '项目预算' && this.taskName != '预算审核') || this.taskForm.procDefName == '借款审批' || this.taskForm.procDefName == '安全交底' || this.taskForm.procDefName == '技术交底'
481
+        || (this.taskForm.procDefName == '项目预算' && this.taskName != '预算审核') || this.taskForm.procDefName == '借款审批' || this.taskForm.procDefName == '安全交底' || this.taskForm.procDefName == '技术方案'
482 482
         || this.taskForm.procDefName == '承接合同评审' || this.taskForm.procDefName == '分包合同评审' || this.taskForm.procDefName == '品牌项目支付' || this.taskForm.procDefName == '保证金审批'
483 483
         || this.taskForm.procDefName == '成果归档' || this.taskForm.procDefName == '项目结算') {
484 484
         return false

+ 56
- 13
oa-ui/src/views/oa/project/info.vue Bestand weergeven

@@ -48,7 +48,7 @@
48 48
                 项目级别
49 49
               </template>
50 50
               <el-tag :type="project.projectLevel ? (project.projectLevel === '0' ? 'info' : 'danger') : 'info'">
51
-                {{ project.projectLevel ? (project.projectLevel == '0' ? '一般项目' : '重大项目') : '一般项目'}}
51
+                {{ project.projectLevel ? (project.projectLevel == '0' ? '一般项目' : '重大项目') : '一般项目' }}
52 52
               </el-tag>
53 53
             </el-descriptions-item>
54 54
             <el-descriptions-item>
@@ -193,18 +193,18 @@
193 193
             </el-descriptions-item>
194 194
             <el-descriptions-item>
195 195
               <template slot="label">
196
-                <svg-icon slot="prefix" icon-class="date" />
197
-                组织交底时间
196
+                <svg-icon slot="prefix" icon-class="form" />
197
+                项目预算编制
198 198
               </template>
199
-              {{ project.organizeTime }}
199
+              <!-- v-hasPermi="['oa:project:edit']" -->
200
+              <el-link type="primary" @click="openBudget = true">项目预算表</el-link>
200 201
             </el-descriptions-item>
201 202
             <el-descriptions-item>
202 203
               <template slot="label">
203 204
                 <svg-icon slot="prefix" icon-class="date" />
204
-                项目预算
205
+                组织交底时间
205 206
               </template>
206
-              <!-- v-hasPermi="['oa:project:edit']" -->
207
-              <el-link type="primary" @click="openBudget = true">预算表</el-link>
207
+              {{ project.organizeTime }}
208 208
             </el-descriptions-item>
209 209
             <el-descriptions-item>
210 210
               <template slot="label">
@@ -224,6 +224,45 @@
224 224
           </el-descriptions>
225 225
         </div>
226 226
       </div>
227
+      <!-- 技术质量部安排 -->
228
+      <div class="box1 mt20">
229
+        <div class="title">技术质量部安排
230
+          <div class="line"></div>
231
+        </div>
232
+        <div class="info mt20">
233
+          <el-descriptions class="descriptions" border :column="3" style="text-align: center;">
234
+            <el-descriptions-item>
235
+              <template slot="label">
236
+                <svg-icon slot="prefix" icon-class="user" />
237
+                技术负责人
238
+              </template>
239
+              {{ project.technicalDirectorUser.nickName }}
240
+            </el-descriptions-item>
241
+            <el-descriptions-item>
242
+              <template slot="label">
243
+                <svg-icon slot="prefix" icon-class="user" />
244
+                技术设计人
245
+              </template>
246
+              {{ getUserName(project.projectLeader) }}
247
+            </el-descriptions-item>
248
+            <el-descriptions-item>
249
+              <template slot="label">
250
+                <svg-icon slot="prefix" icon-class="peoples" />
251
+                质量检查员
252
+              </template>
253
+              {{ project.qualityInspectorName }}
254
+            </el-descriptions-item>
255
+            <el-descriptions-item>
256
+              <template slot="label">
257
+                <svg-icon slot="prefix" icon-class="form" />
258
+                技术方案设计
259
+              </template>
260
+              <!-- v-hasPermi="['oa:project:edit']" -->
261
+              <el-link type="primary" @click="openPlan = true">技术方案审批表</el-link>
262
+            </el-descriptions-item>
263
+          </el-descriptions>
264
+        </div>
265
+      </div>
227 266
       <!-- 任务审核情况  -->
228 267
       <div class="box1 mt20">
229 268
         <div class="title">任务审核情况
@@ -372,21 +411,21 @@
372 411
             </el-descriptions-item>
373 412
             <el-descriptions-item :span="2">
374 413
               <template slot="label">
375
-                <svg-icon slot="prefix" icon-class="date" />
414
+                <svg-icon slot="prefix" icon-class="form" />
376 415
                 项目借款
377 416
               </template>
378 417
               <borrow-data :taskForm="taskForm"></borrow-data>
379 418
             </el-descriptions-item>
380 419
             <el-descriptions-item :span="2">
381 420
               <template slot="label">
382
-                <svg-icon slot="prefix" icon-class="date" />
421
+                <svg-icon slot="prefix" icon-class="form" />
383 422
                 成果汇交
384 423
               </template>
385 424
               <achi-data :taskForm="taskForm" class="table-warpper"></achi-data>
386 425
             </el-descriptions-item>
387 426
             <el-descriptions-item :span="2">
388 427
               <template slot="label">
389
-                <svg-icon slot="prefix" icon-class="date" />
428
+                <svg-icon slot="prefix" icon-class="form" />
390 429
                 产值结算
391 430
               </template>
392 431
               <settle-data :taskForm="taskForm"></settle-data>
@@ -398,11 +437,14 @@
398 437
     <el-dialog title="项目预算" :visible.sync="openBudget" width="1000px" append-to-body>
399 438
       <budget-tab :taskForm="taskForm"></budget-tab>
400 439
     </el-dialog>
440
+    <el-dialog title="技术方案审批表" :visible.sync="openPlan" width="1000px" append-to-body>
441
+      <plan-tab :taskForm="taskForm"></plan-tab>
442
+    </el-dialog>
401 443
     <el-dialog title="安全交底记录表" :visible.sync="openSafe" width="1000px" append-to-body>
402 444
       <safe-tab :taskForm="taskForm"></safe-tab>
403 445
     </el-dialog>
404 446
     <el-dialog title="技术交底记录表" :visible.sync="openTech" width="1000px" append-to-body>
405
-      <technical-tab :taskForm="taskForm"></technical-tab>
447
+      <plan-tab :taskForm="taskForm"></plan-tab>
406 448
     </el-dialog>
407 449
     <el-dialog title="更换项目负责人" :visible.sync="prLeaderOpen" width="1000px" append-to-body>
408 450
       <choose-people :multiple="false" @chooseUser="changeProjectLeader"></choose-people>
@@ -424,14 +466,14 @@ import { listDevice } from "@/api/oa/device/device";
424 466
 import { listCar } from '@/api/oa/car/car';
425 467
 import budgetInfo from '@/views/flowable/form/budget/budgetInfo.vue';
426 468
 import SafeTab from '@/views/flowable/form/projectProcess/safeTab.vue';
427
-import TechnicalTab from '@/views/flowable/form/projectProcess/technicalTab.vue';
469
+import PlanTab from '@/views/flowable/form/projectProcess/planTab.vue';
428 470
 import SettleData from '@/views/flowable/form/inProgress/settleData.vue';
429 471
 import BorrowData from '@/views/flowable/form/inProgress/borrowData.vue';
430 472
 import BudgetTab from '@/views/flowable/form/projectProcess/budgetTab.vue';
431 473
 import achiData from "@/views/flowable/form/inProgress/achiData.vue";
432 474
 import choosePeople from '@/views/flowable/form/budget/components/choosePeople.vue'
433 475
 export default {
434
-  components: { budgetInfo, SafeTab, TechnicalTab, SettleData, BorrowData, BudgetTab, achiData, choosePeople },
476
+  components: { budgetInfo, SafeTab, PlanTab, SettleData, BorrowData, BudgetTab, achiData, choosePeople },
435 477
   created() {
436 478
     this.getUserList();
437 479
     this.getDeviceList();
@@ -461,6 +503,7 @@ export default {
461 503
       contractCode: "",
462 504
       contractNumber: "",
463 505
       openBudget: false,
506
+      openPlan: false,
464 507
       openSafe: false,
465 508
       openTech: false,
466 509
       prLeaderOpen: false,

+ 0
- 348
oa-ui/src/views/oa/technical/index.vue Bestand weergeven

@@ -1,348 +0,0 @@
1
-<template>
2
-  <div class="app-container">
3
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="128px">
4
-      <el-form-item label="项目编号" prop="projectId">
5
-        <el-select v-model="queryParams.projectId" clearable filterable remote reserve-keyword placeholder="请输入项目编号"
6
-          :remote-method="remoteMethod" :loading="loading" style="width: 400px;">
7
-          <el-option v-for="project in projectList" :key="project.projectId"
8
-            :label="project.projectNumber + '-' + project.projectName" :value="project.projectId">
9
-          </el-option>
10
-        </el-select>
11
-      </el-form-item>
12
-      <el-form-item label="技术负责人" prop="technicalDirector">
13
-        <el-select v-model="queryParams.technicalDirector" filterable clearable @change="handleQuery">
14
-          <el-option v-for="item in $store.state.user.userList" :key="item.userId" :label="item.nickName"
15
-            :value="item.userId">
16
-          </el-option>
17
-        </el-select>
18
-      </el-form-item>
19
-      <el-form-item label="技术设计人" prop="technicalDesigner">
20
-        <el-select v-model="queryParams.technicalDesigner" filterable clearable @change="handleQuery">
21
-          <el-option v-for="item in $store.state.user.userList" :key="item.userId" :label="item.nickName"
22
-            :value="item.userId">
23
-          </el-option>
24
-        </el-select>
25
-      </el-form-item>
26
-      <el-form-item>
27
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
28
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
29
-      </el-form-item>
30
-    </el-form>
31
-
32
-    <el-row :gutter="10" class="mb8">    
33
-      <el-col :span="1.5">
34
-        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
35
-          v-hasPermi="['oa:technical:export']">导出</el-button>
36
-      </el-col>
37
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
38
-    </el-row>
39
-
40
-    <el-table v-loading="loading" :data="technicalList" @selection-change="handleSelectionChange">
41
-      <el-table-column type="index" label="序号" width="55" align="center" />
42
-      <el-table-column label="项目编号" align="center" prop="project.projectNumber" />
43
-      <el-table-column label="项目名称" align="center" prop="project.projectName" />
44
-      <el-table-column label="技术负责人" align="center" prop="technicalDirector">
45
-        <template slot-scope="scope">
46
-          {{ getUserName(scope.row.technicalDirector) }}
47
-        </template>
48
-      </el-table-column>
49
-      <el-table-column label="技术设计人" align="center" prop="technicalDesigner">
50
-        <template slot-scope="scope">
51
-          {{ getUserName(scope.row.technicalDesigner) }}
52
-        </template>
53
-      </el-table-column>
54
-      <!-- <el-table-column label="技术安排人" align="center" prop="technicalPlanner">
55
-        <template slot-scope="scope">
56
-          {{ getUserName(scope.row.technicalPlanner) }}
57
-        </template>
58
-      </el-table-column> -->
59
-      <!-- <el-table-column label="技术安排意见" align="center" prop="planComment" /> -->
60
-      <el-table-column label="质量检查员" align="center" prop="qualityInspector">
61
-        <template slot-scope="scope">
62
-          {{ getUserNames(scope.row.qualityInspector) }}
63
-        </template>
64
-      </el-table-column>
65
-      <!-- <el-table-column label="技术安排时间" align="center" prop="technicalTime" width="180">
66
-        <template slot-scope="scope">
67
-          <span>{{ parseTime(scope.row.technicalTime, '{y}-{m}-{d}') }}</span>
68
-        </template>
69
-      </el-table-column> -->
70
-      <el-table-column label="技术方案" align="center" prop="technicalDocument" />
71
-      <el-table-column label="方案说明" align="center" prop="designDescription" />
72
-      <!-- <el-table-column label="技术审核意见" align="center" prop="technicalComment" />
73
-      <el-table-column label="总工审核意见" align="center" prop="manageComment" /> -->
74
-      <el-table-column label="方案上传时间" align="center" prop="technicalUploadTime" width="180">
75
-        <template slot-scope="scope">
76
-          <span>{{ parseTime(scope.row.technicalUploadTime, '{y}-{m}-{d}') }}</span>
77
-        </template>
78
-      </el-table-column>
79
-      <!-- <el-table-column label="技术审核时间" align="center" prop="techApprovalTime" width="180">
80
-        <template slot-scope="scope">
81
-          <span>{{ parseTime(scope.row.techApprovalTime, '{y}-{m}-{d}') }}</span>
82
-        </template>
83
-      </el-table-column>
84
-      <el-table-column label="总工审核时间" align="center" prop="manageApprovalTime" width="180">
85
-        <template slot-scope="scope">
86
-          <span>{{ parseTime(scope.row.manageApprovalTime, '{y}-{m}-{d}') }}</span>
87
-        </template>
88
-      </el-table-column> -->
89
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
90
-        <template slot-scope="scope">
91
-          <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)"
92
-            v-hasPermi="['oa:technical:query']">查看</el-button>
93
-          <!-- <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
94
-            v-hasPermi="['oa:technical:remove']">删除</el-button> -->
95
-        </template>
96
-      </el-table-column>
97
-    </el-table>
98
-
99
-    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
100
-      @pagination="getList" />
101
-
102
-    <!-- 添加或修改cmc技术交底对话框 -->
103
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
104
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
105
-        <el-form-item label="项目id" prop="projectId">
106
-          <el-input v-model="form.projectId" placeholder="请输入项目id" />
107
-        </el-form-item>
108
-        <el-form-item label="技术负责人" prop="technicalDirector">
109
-          <el-input v-model="form.technicalDirector" placeholder="请输入技术负责人" />
110
-        </el-form-item>
111
-        <el-form-item label="技术设计人" prop="technicalDesigner">
112
-          <el-input v-model="form.technicalDesigner" placeholder="请输入技术设计人" />
113
-        </el-form-item>
114
-        <el-form-item label="技术安排人" prop="technicalPlanner">
115
-          <el-input v-model="form.technicalPlanner" placeholder="请输入技术安排人" />
116
-        </el-form-item>
117
-        <el-form-item label="技术安排意见" prop="planComment">
118
-          <el-input v-model="form.planComment" placeholder="请输入技术安排意见" />
119
-        </el-form-item>
120
-        <el-form-item label="质量检查员" prop="qualityInspector">
121
-          <el-input v-model="form.qualityInspector" placeholder="请输入质量检查员" />
122
-        </el-form-item>
123
-        <el-form-item label="技术安排时间" prop="technicalTime">
124
-          <el-date-picker clearable v-model="form.technicalTime" type="date" value-format="yyyy-MM-dd"
125
-            placeholder="请选择技术安排时间">
126
-          </el-date-picker>
127
-        </el-form-item>
128
-        <el-form-item label="技术方案" prop="technicalDocument">
129
-          <el-input v-model="form.technicalDocument" placeholder="请输入技术方案" />
130
-        </el-form-item>
131
-        <el-form-item label="方案说明" prop="designDescription">
132
-          <el-input v-model="form.designDescription" placeholder="请输入方案说明" />
133
-        </el-form-item>
134
-        <el-form-item label="技术审核意见" prop="technicalComment">
135
-          <el-input v-model="form.technicalComment" placeholder="请输入技术审核意见" />
136
-        </el-form-item>
137
-        <el-form-item label="总工审核意见" prop="manageComment">
138
-          <el-input v-model="form.manageComment" placeholder="请输入总工审核意见" />
139
-        </el-form-item>
140
-        <el-form-item label="方案上传时间" prop="technicalUploadTime">
141
-          <el-date-picker clearable v-model="form.technicalUploadTime" type="date" value-format="yyyy-MM-dd"
142
-            placeholder="请选择方案上传时间">
143
-          </el-date-picker>
144
-        </el-form-item>
145
-        <el-form-item label="技术审核时间" prop="techApprovalTime">
146
-          <el-date-picker clearable v-model="form.techApprovalTime" type="date" value-format="yyyy-MM-dd"
147
-            placeholder="请选择技术审核时间">
148
-          </el-date-picker>
149
-        </el-form-item>
150
-        <el-form-item label="总工审核时间" prop="manageApprovalTime">
151
-          <el-date-picker clearable v-model="form.manageApprovalTime" type="date" value-format="yyyy-MM-dd"
152
-            placeholder="请选择总工审核时间">
153
-          </el-date-picker>
154
-        </el-form-item>
155
-      </el-form>
156
-      <div slot="footer" class="dialog-footer">
157
-        <el-button type="primary" @click="submitForm">确 定</el-button>
158
-        <el-button @click="cancel">取 消</el-button>
159
-      </div>
160
-    </el-dialog>
161
-    <el-dialog :title="title" :visible.sync="infoOpen" width="50%" append-to-body>
162
-      <technical-tab :taskForm="taskForm"></technical-tab>
163
-    </el-dialog>
164
-  </div>
165
-</template>
166
-
167
-<script>
168
-import { listTechnical, getTechnical, delTechnical, addTechnical, updateTechnical } from "@/api/oa/technical/technical";
169
-import technicalTab from '../../flowable/form/projectProcess/technicalTab.vue';
170
-import { listProject } from '@/api/oa/project/project';
171
-
172
-export default {
173
-  name: "Technical",
174
-  components: { technicalTab, },
175
-  data() {
176
-    return {
177
-      // 遮罩层
178
-      loading: true,
179
-      // 选中数组
180
-      ids: [],
181
-      // 非单个禁用
182
-      single: true,
183
-      // 非多个禁用
184
-      multiple: true,
185
-      // 显示搜索条件
186
-      showSearch: true,
187
-      // 总条数
188
-      total: 0,
189
-      // cmc技术交底表格数据
190
-      technicalList: [],
191
-      projectList: [],
192
-      // 弹出层标题
193
-      title: "",
194
-      // 是否显示弹出层
195
-      open: false,
196
-      infoOpen: false,
197
-      // 查询参数
198
-      queryParams: {
199
-        pageNum: 1,
200
-        pageSize: 10,
201
-        projectId: null,
202
-        technicalDirector: null,
203
-        technicalDesigner: null,
204
-        technicalPlanner: null,
205
-        planComment: null,
206
-        qualityInspector: null,
207
-        technicalTime: null,
208
-        technicalDocument: null,
209
-        designDescription: null,
210
-        technicalComment: null,
211
-        manageComment: null,
212
-        technicalUploadTime: null,
213
-        techApprovalTime: null,
214
-        manageApprovalTime: null
215
-      },
216
-      // 表单参数
217
-      form: {},
218
-      taskForm: {
219
-        formId:''
220
-      },
221
-      // 表单校验
222
-      rules: {
223
-      }
224
-    };
225
-  },
226
-  created() {
227
-    this.getList();
228
-  },
229
-  methods: {
230
-    /** 查询cmc技术交底列表 */
231
-    getList() {
232
-      this.loading = true;
233
-      listTechnical(this.queryParams).then(response => {
234
-        this.technicalList = response.rows;
235
-        this.total = response.total;
236
-        this.loading = false;
237
-      });
238
-    },
239
-    remoteMethod(val) {
240
-      listProject({
241
-        pageNum: 1,
242
-        pageSize: 20, 
243
-        projectNumber: val
244
-      }).then(res => {
245
-        this.projectList = res.rows;
246
-      })
247
-    },
248
-    // 取消按钮
249
-    cancel() {
250
-      this.open = false;
251
-      this.reset();
252
-    },
253
-    // 表单重置
254
-    reset() {
255
-      this.form = {
256
-        technicalId: null,
257
-        projectId: null,
258
-        technicalDirector: null,
259
-        technicalDesigner: null,
260
-        technicalPlanner: null,
261
-        planComment: null,
262
-        qualityInspector: null,
263
-        technicalTime: null,
264
-        technicalDocument: null,
265
-        designDescription: null,
266
-        technicalComment: null,
267
-        manageComment: null,
268
-        technicalUploadTime: null,
269
-        techApprovalTime: null,
270
-        manageApprovalTime: null
271
-      };
272
-      this.resetForm("form");
273
-    },
274
-    /** 搜索按钮操作 */
275
-    handleQuery() {
276
-      this.queryParams.pageNum = 1;
277
-      this.getList();
278
-    },
279
-    /** 重置按钮操作 */
280
-    resetQuery() {
281
-      this.resetForm("queryForm");
282
-      this.handleQuery();
283
-    },
284
-    // 多选框选中数据
285
-    handleSelectionChange(selection) {
286
-      this.ids = selection.map(item => item.technicalId)
287
-      this.single = selection.length !== 1
288
-      this.multiple = !selection.length
289
-    },
290
-    /** 新增按钮操作 */
291
-    handleAdd() {
292
-      this.reset();
293
-      this.open = true;
294
-      this.title = "添加cmc技术交底";
295
-    },
296
-    handleView(row){
297
-      this.taskForm.formId = row.projectId;
298
-      this.infoOpen = true;
299
-    },
300
-    /** 修改按钮操作 */
301
-    handleUpdate(row) {
302
-      this.reset();
303
-      const technicalId = row.technicalId || this.ids
304
-      getTechnical(technicalId).then(response => {
305
-        this.form = response.data;
306
-        this.open = true;
307
-        this.title = "修改cmc技术交底";
308
-      });
309
-    },
310
-    /** 提交按钮 */
311
-    submitForm() {
312
-      this.$refs["form"].validate(valid => {
313
-        if (valid) {
314
-          if (this.form.technicalId != null) {
315
-            updateTechnical(this.form).then(response => {
316
-              this.$modal.msgSuccess("修改成功");
317
-              this.open = false;
318
-              this.getList();
319
-            });
320
-          } else {
321
-            addTechnical(this.form).then(response => {
322
-              this.$modal.msgSuccess("新增成功");
323
-              this.open = false;
324
-              this.getList();
325
-            });
326
-          }
327
-        }
328
-      });
329
-    },
330
-    /** 删除按钮操作 */
331
-    handleDelete(row) {
332
-      const technicalIds = row.technicalId || this.ids;
333
-      this.$modal.confirm('是否确认删除cmc技术交底编号为"' + technicalIds + '"的数据项?').then(function () {
334
-        return delTechnical(technicalIds);
335
-      }).then(() => {
336
-        this.getList();
337
-        this.$modal.msgSuccess("删除成功");
338
-      }).catch(() => { });
339
-    },
340
-    /** 导出按钮操作 */
341
-    handleExport() {
342
-      this.download('oa/technical/export', {
343
-        ...this.queryParams
344
-      }, `technical_${new Date().getTime()}.xlsx`)
345
-    }
346
-  }
347
-};
348
-</script>

Laden…
Annuleren
Opslaan