浏览代码

项目流转调用子流程活动

lamphua 1年前
父节点
当前提交
202098134c
共有 19 个文件被更改,包括 1795 次插入103 次删除
  1. 3
    12
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcBudgetController.java
  2. 104
    0
      oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcSafeController.java
  3. 12
    22
      oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallBudgetActivityExecutionListener.java
  4. 17
    0
      oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallSafeActivityExecutionListener.java
  5. 20
    0
      oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallTechActivityExecutionListener.java
  6. 167
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcSafe.java
  7. 132
    31
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcTechnical.java
  8. 61
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcSafeMapper.java
  9. 61
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcSafeService.java
  10. 93
    0
      oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcSafeServiceImpl.java
  11. 98
    0
      oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcSafeMapper.xml
  12. 50
    15
      oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcTechnicalMapper.xml
  13. 44
    13
      oa-back/sql/sql.sql
  14. 6
    9
      oa-ui/src/api/oa/budget/budget.js
  15. 44
    0
      oa-ui/src/api/oa/safe/safe.js
  16. 44
    0
      oa-ui/src/api/oa/technical/technical.js
  17. 1
    1
      oa-ui/src/views/flowable/form/projectProcess/arrangeProject.vue
  18. 375
    0
      oa-ui/src/views/oa/safe/index.vue
  19. 463
    0
      oa-ui/src/views/oa/technical/index.vue

+ 3
- 12
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcBudgetController.java 查看文件

2
 
2
 
3
 import java.util.List;
3
 import java.util.List;
4
 import javax.servlet.http.HttpServletResponse;
4
 import javax.servlet.http.HttpServletResponse;
5
+
6
+import com.ruoyi.common.utils.SnowFlake;
5
 import org.springframework.security.access.prepost.PreAuthorize;
7
 import org.springframework.security.access.prepost.PreAuthorize;
6
 import org.springframework.beans.factory.annotation.Autowired;
8
 import org.springframework.beans.factory.annotation.Autowired;
7
 import org.springframework.web.bind.annotation.*;
9
 import org.springframework.web.bind.annotation.*;
70
     @PostMapping
72
     @PostMapping
71
     public AjaxResult add(@RequestBody CmcBudget cmcBudget)
73
     public AjaxResult add(@RequestBody CmcBudget cmcBudget)
72
     {
74
     {
73
-        return toAjax(cmcBudgetService.insertCmcBudget(cmcBudget));
74
-    }
75
-
76
-    /**
77
-     * 新增cmc预算管理
78
-     */
79
-    @PreAuthorize("@ss.hasPermi('oa:budget:add')")
80
-    @Log(title = "cmc预算管理", businessType = BusinessType.INSERT)
81
-    @PostMapping( "/submit")
82
-    public AjaxResult submit(@RequestParam("form")String formData)
83
-    {
84
-        CmcBudget cmcBudget = new CmcBudget();
85
         cmcBudget.setCompiler(getLoginUser().getUserId());
75
         cmcBudget.setCompiler(getLoginUser().getUserId());
86
         return toAjax(cmcBudgetService.insertCmcBudget(cmcBudget));
76
         return toAjax(cmcBudgetService.insertCmcBudget(cmcBudget));
87
     }
77
     }
94
     @PutMapping
84
     @PutMapping
95
     public AjaxResult edit(@RequestBody CmcBudget cmcBudget)
85
     public AjaxResult edit(@RequestBody CmcBudget cmcBudget)
96
     {
86
     {
87
+        cmcBudget.setAuditor(getLoginUser().getUserId());
97
         return toAjax(cmcBudgetService.updateCmcBudget(cmcBudget));
88
         return toAjax(cmcBudgetService.updateCmcBudget(cmcBudget));
98
     }
89
     }
99
 
90
 

+ 104
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcSafeController.java 查看文件

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

+ 12
- 22
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallBudgetActivityExecutionListener.java 查看文件

4
 import org.flowable.bpmn.model.ExtensionAttribute;
4
 import org.flowable.bpmn.model.ExtensionAttribute;
5
 import org.flowable.bpmn.model.ExtensionElement;
5
 import org.flowable.bpmn.model.ExtensionElement;
6
 import org.flowable.bpmn.model.IOParameter;
6
 import org.flowable.bpmn.model.IOParameter;
7
+import org.flowable.common.engine.impl.identity.Authentication;
7
 import org.flowable.engine.delegate.DelegateExecution;
8
 import org.flowable.engine.delegate.DelegateExecution;
8
 import org.flowable.engine.delegate.ExecutionListener;
9
 import org.flowable.engine.delegate.ExecutionListener;
9
 import org.springframework.stereotype.Component;
10
 import org.springframework.stereotype.Component;
17
     public void notify(DelegateExecution delegateExecution) {
18
     public void notify(DelegateExecution delegateExecution) {
18
         CallActivity callActivity = (CallActivity)delegateExecution.getCurrentFlowElement();
19
         CallActivity callActivity = (CallActivity)delegateExecution.getCurrentFlowElement();
19
         String initiator = null;
20
         String initiator = null;
20
-        Map<String, List<ExtensionElement>> extensionElements = callActivity.getExtensionElements();
21
-        for(Map.Entry<String, List<ExtensionElement>> entry: extensionElements.entrySet()) {
22
-            // 这一层读取的就是 button 类似的标签
23
-            String attributeName = entry.getKey();
24
-            List<ExtensionElement> attributeValueList = entry.getValue();
25
-            if (attributeName.equals("budgetInitiator")) {
26
-                for(ExtensionElement item: attributeValueList) {
27
-                    // 处理 类似button  ExtensionElement 里面的属性
28
-                    Map<String, List<ExtensionAttribute>> extensionElementAttributes = item.getAttributes();
29
-                    for (Map.Entry<String, List<ExtensionAttribute>> tmpEntry : extensionElementAttributes.entrySet()) {
30
-                        initiator = tmpEntry.getValue().get(0).getValue(); //  把子流程的发起人找到
31
-                    }
32
-                }
33
-            }
34
-        }
35
-        List<IOParameter> ioParameterList = callActivity.getInParameters();
36
-        for (IOParameter ioParameter: ioParameterList) {
37
-            String source = ioParameter.getSource();
38
-            if (source.equals("budgetInitiator")) {
39
-                delegateExecution.setVariable(source, initiator); // 把子流程的发起人先给到父流程,然后用引擎的能力进行传递
40
-            }
41
-        }
21
+        Map<String, Object> variables = delegateExecution.getVariables();
22
+        System.out.println(variables);
23
+        Authentication.setAuthenticatedUserId(variables.get("budgetInitiator").toString());
24
+        delegateExecution.setVariable("approval", variables.get("budgetInitiator").toString());
25
+//        List<IOParameter> ioParameterList = callActivity.getInParameters();
26
+//        for (IOParameter ioParameter: ioParameterList) {
27
+//            String source = ioParameter.getSource();
28
+//            if (source.equals("initiator")) {
29
+//                delegateExecution.setVariable(source, variables.get("budgetInitiator").toString()); // 把子流程的发起人先给到父流程,然后用引擎的能力进行传递
30
+//            }
31
+//        }
42
     }
32
     }
43
 }
33
 }

+ 17
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallSafeActivityExecutionListener.java 查看文件

1
+package com.ruoyi.flowable.oa;
2
+
3
+import com.ruoyi.common.utils.SnowFlake;
4
+import org.flowable.common.engine.impl.identity.Authentication;
5
+import org.flowable.engine.delegate.DelegateExecution;
6
+import org.flowable.engine.delegate.ExecutionListener;
7
+import org.springframework.stereotype.Component;
8
+
9
+@Component("CallSafeActivityExecutionListener")
10
+public class CallSafeActivityExecutionListener implements ExecutionListener {
11
+    @Override
12
+    public void notify(DelegateExecution delegateExecution) {
13
+        Authentication.setAuthenticatedUserId("15");
14
+        delegateExecution.setVariable("safe_id", new SnowFlake().generateId());
15
+        delegateExecution.setVariable("approval", 15L);
16
+    }
17
+}

+ 20
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/oa/CallTechActivityExecutionListener.java 查看文件

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

+ 167
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcSafe.java 查看文件

1
+package com.ruoyi.oa.domain;
2
+
3
+import java.util.Date;
4
+import com.fasterxml.jackson.annotation.JsonFormat;
5
+import org.apache.commons.lang3.builder.ToStringBuilder;
6
+import org.apache.commons.lang3.builder.ToStringStyle;
7
+import com.ruoyi.common.annotation.Excel;
8
+import com.ruoyi.common.core.domain.BaseEntity;
9
+
10
+/**
11
+ * cmc安全交底对象 cmc_safe
12
+ * 
13
+ * @author cmc
14
+ * @date 2024-04-03
15
+ */
16
+public class CmcSafe extends BaseEntity
17
+{
18
+    private static final long serialVersionUID = 1L;
19
+
20
+    /** 项目id */
21
+    private String safeId;
22
+
23
+    /** 项目id */
24
+    @Excel(name = "项目id")
25
+    private String projectId;
26
+
27
+    /** 接受交底人 */
28
+    @Excel(name = "接受交底人")
29
+    private Long disclosureAccepter;
30
+
31
+    /** 安全交底人 */
32
+    @Excel(name = "安全交底人")
33
+    private Long disclosurer;
34
+
35
+    /** 环境要求 */
36
+    @Excel(name = "环境要求")
37
+    private String environmentComment;
38
+
39
+    /** 外业要求 */
40
+    @Excel(name = "外业要求")
41
+    private String outsideComment;
42
+
43
+    /** 内业要求 */
44
+    @Excel(name = "内业要求")
45
+    private String insideComment;
46
+
47
+    /** 安全交底意见 */
48
+    @Excel(name = "安全交底意见")
49
+    private String disclosureComment;
50
+
51
+    /** 安全交底时间 */
52
+    @JsonFormat(pattern = "yyyy-MM-dd")
53
+    @Excel(name = "安全交底时间", width = 30, dateFormat = "yyyy-MM-dd")
54
+    private Date disclosureTime;
55
+
56
+    /** 接受交底时间 */
57
+    @JsonFormat(pattern = "yyyy-MM-dd")
58
+    @Excel(name = "接受交底时间", width = 30, dateFormat = "yyyy-MM-dd")
59
+    private Date acceptTime;
60
+
61
+    public void setSafeId(String safeId) 
62
+    {
63
+        this.safeId = safeId;
64
+    }
65
+
66
+    public String getSafeId() 
67
+    {
68
+        return safeId;
69
+    }
70
+    public void setProjectId(String projectId) 
71
+    {
72
+        this.projectId = projectId;
73
+    }
74
+
75
+    public String getProjectId() 
76
+    {
77
+        return projectId;
78
+    }
79
+    public void setDisclosureAccepter(Long disclosureAccepter) 
80
+    {
81
+        this.disclosureAccepter = disclosureAccepter;
82
+    }
83
+
84
+    public Long getDisclosureAccepter() 
85
+    {
86
+        return disclosureAccepter;
87
+    }
88
+    public void setDisclosurer(Long disclosurer) 
89
+    {
90
+        this.disclosurer = disclosurer;
91
+    }
92
+
93
+    public Long getDisclosurer() 
94
+    {
95
+        return disclosurer;
96
+    }
97
+    public void setEnvironmentComment(String environmentComment) 
98
+    {
99
+        this.environmentComment = environmentComment;
100
+    }
101
+
102
+    public String getEnvironmentComment() 
103
+    {
104
+        return environmentComment;
105
+    }
106
+    public void setOutsideComment(String outsideComment) 
107
+    {
108
+        this.outsideComment = outsideComment;
109
+    }
110
+
111
+    public String getOutsideComment() 
112
+    {
113
+        return outsideComment;
114
+    }
115
+    public void setInsideComment(String insideComment) 
116
+    {
117
+        this.insideComment = insideComment;
118
+    }
119
+
120
+    public String getInsideComment() 
121
+    {
122
+        return insideComment;
123
+    }
124
+    public void setDisclosureComment(String disclosureComment) 
125
+    {
126
+        this.disclosureComment = disclosureComment;
127
+    }
128
+
129
+    public String getDisclosureComment() 
130
+    {
131
+        return disclosureComment;
132
+    }
133
+    public void setDisclosureTime(Date disclosureTime) 
134
+    {
135
+        this.disclosureTime = disclosureTime;
136
+    }
137
+
138
+    public Date getDisclosureTime() 
139
+    {
140
+        return disclosureTime;
141
+    }
142
+    public void setAcceptTime(Date acceptTime) 
143
+    {
144
+        this.acceptTime = acceptTime;
145
+    }
146
+
147
+    public Date getAcceptTime() 
148
+    {
149
+        return acceptTime;
150
+    }
151
+
152
+    @Override
153
+    public String toString() {
154
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
155
+            .append("safeId", getSafeId())
156
+            .append("projectId", getProjectId())
157
+            .append("disclosureAccepter", getDisclosureAccepter())
158
+            .append("disclosurer", getDisclosurer())
159
+            .append("environmentComment", getEnvironmentComment())
160
+            .append("outsideComment", getOutsideComment())
161
+            .append("insideComment", getInsideComment())
162
+            .append("disclosureComment", getDisclosureComment())
163
+            .append("disclosureTime", getDisclosureTime())
164
+            .append("acceptTime", getAcceptTime())
165
+            .toString();
166
+    }
167
+}

+ 132
- 31
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcTechnical.java 查看文件

8
 import com.ruoyi.common.core.domain.BaseEntity;
8
 import com.ruoyi.common.core.domain.BaseEntity;
9
 
9
 
10
 /**
10
 /**
11
- * cmc技术方案对象 cmc_technical
12
- * 
11
+ * cmc技术交底对象 cmc_technical
12
+ *
13
  * @author cmc
13
  * @author cmc
14
- * @date 2024-04-02
14
+ * @date 2024-04-03
15
  */
15
  */
16
 public class CmcTechnical extends BaseEntity
16
 public class CmcTechnical extends BaseEntity
17
 {
17
 {
38
 
38
 
39
     /** 技术安排意见 */
39
     /** 技术安排意见 */
40
     @Excel(name = "技术安排意见")
40
     @Excel(name = "技术安排意见")
41
-    private String technicalComment;
41
+    private String planComment;
42
 
42
 
43
     /** 质量检查员 */
43
     /** 质量检查员 */
44
     @Excel(name = "质量检查员")
44
     @Excel(name = "质量检查员")
49
     @Excel(name = "技术安排时间", width = 30, dateFormat = "yyyy-MM-dd")
49
     @Excel(name = "技术安排时间", width = 30, dateFormat = "yyyy-MM-dd")
50
     private Date technicalTime;
50
     private Date technicalTime;
51
 
51
 
52
-    public void setTechnicalId(String technicalId) 
52
+    /** 技术方案 */
53
+    @Excel(name = "技术方案")
54
+    private String technicalDocument;
55
+
56
+    /** 方案说明 */
57
+    @Excel(name = "方案说明")
58
+    private String designDescription;
59
+
60
+    /** 技术审核意见 */
61
+    @Excel(name = "技术审核意见")
62
+    private String technicalComment;
63
+
64
+    /** 总工审核意见 */
65
+    @Excel(name = "总工审核意见")
66
+    private String manageComment;
67
+
68
+    /** 方案上传时间 */
69
+    @JsonFormat(pattern = "yyyy-MM-dd")
70
+    @Excel(name = "方案上传时间", width = 30, dateFormat = "yyyy-MM-dd")
71
+    private Date technicalUploadTime;
72
+
73
+    /** 技术审核时间 */
74
+    @JsonFormat(pattern = "yyyy-MM-dd")
75
+    @Excel(name = "技术审核时间", width = 30, dateFormat = "yyyy-MM-dd")
76
+    private Date techApprovalTime;
77
+
78
+    /** 总工审核时间 */
79
+    @JsonFormat(pattern = "yyyy-MM-dd")
80
+    @Excel(name = "总工审核时间", width = 30, dateFormat = "yyyy-MM-dd")
81
+    private Date manageApprovalTime;
82
+
83
+    public void setTechnicalId(String technicalId)
53
     {
84
     {
54
         this.technicalId = technicalId;
85
         this.technicalId = technicalId;
55
     }
86
     }
56
 
87
 
57
-    public String getTechnicalId() 
88
+    public String getTechnicalId()
58
     {
89
     {
59
         return technicalId;
90
         return technicalId;
60
     }
91
     }
61
-    public void setProjectId(String projectId) 
92
+    public void setProjectId(String projectId)
62
     {
93
     {
63
         this.projectId = projectId;
94
         this.projectId = projectId;
64
     }
95
     }
65
 
96
 
66
-    public String getProjectId() 
97
+    public String getProjectId()
67
     {
98
     {
68
         return projectId;
99
         return projectId;
69
     }
100
     }
70
-    public void setTechnicalDirector(Long technicalDirector) 
101
+    public void setTechnicalDirector(Long technicalDirector)
71
     {
102
     {
72
         this.technicalDirector = technicalDirector;
103
         this.technicalDirector = technicalDirector;
73
     }
104
     }
74
 
105
 
75
-    public Long getTechnicalDirector() 
106
+    public Long getTechnicalDirector()
76
     {
107
     {
77
         return technicalDirector;
108
         return technicalDirector;
78
     }
109
     }
79
-    public void setTechnicalDesigner(Long technicalDesigner) 
110
+    public void setTechnicalDesigner(Long technicalDesigner)
80
     {
111
     {
81
         this.technicalDesigner = technicalDesigner;
112
         this.technicalDesigner = technicalDesigner;
82
     }
113
     }
83
 
114
 
84
-    public Long getTechnicalDesigner() 
115
+    public Long getTechnicalDesigner()
85
     {
116
     {
86
         return technicalDesigner;
117
         return technicalDesigner;
87
     }
118
     }
88
-    public void setTechnicalPlanner(Long technicalPlanner) 
119
+    public void setTechnicalPlanner(Long technicalPlanner)
89
     {
120
     {
90
         this.technicalPlanner = technicalPlanner;
121
         this.technicalPlanner = technicalPlanner;
91
     }
122
     }
92
 
123
 
93
-    public Long getTechnicalPlanner() 
124
+    public Long getTechnicalPlanner()
94
     {
125
     {
95
         return technicalPlanner;
126
         return technicalPlanner;
96
     }
127
     }
97
-    public void setTechnicalComment(String technicalComment) 
128
+    public void setPlanComment(String planComment)
98
     {
129
     {
99
-        this.technicalComment = technicalComment;
130
+        this.planComment = planComment;
100
     }
131
     }
101
 
132
 
102
-    public String getTechnicalComment() 
133
+    public String getPlanComment()
103
     {
134
     {
104
-        return technicalComment;
135
+        return planComment;
105
     }
136
     }
106
-    public void setQualityInspector(String qualityInspector) 
137
+    public void setQualityInspector(String qualityInspector)
107
     {
138
     {
108
         this.qualityInspector = qualityInspector;
139
         this.qualityInspector = qualityInspector;
109
     }
140
     }
110
 
141
 
111
-    public String getQualityInspector() 
142
+    public String getQualityInspector()
112
     {
143
     {
113
         return qualityInspector;
144
         return qualityInspector;
114
     }
145
     }
115
-    public void setTechnicalTime(Date technicalTime) 
146
+    public void setTechnicalTime(Date technicalTime)
116
     {
147
     {
117
         this.technicalTime = technicalTime;
148
         this.technicalTime = technicalTime;
118
     }
149
     }
119
 
150
 
120
-    public Date getTechnicalTime() 
151
+    public Date getTechnicalTime()
121
     {
152
     {
122
         return technicalTime;
153
         return technicalTime;
123
     }
154
     }
155
+    public void setTechnicalDocument(String technicalDocument)
156
+    {
157
+        this.technicalDocument = technicalDocument;
158
+    }
159
+
160
+    public String getTechnicalDocument()
161
+    {
162
+        return technicalDocument;
163
+    }
164
+    public void setDesignDescription(String designDescription)
165
+    {
166
+        this.designDescription = designDescription;
167
+    }
168
+
169
+    public String getDesignDescription()
170
+    {
171
+        return designDescription;
172
+    }
173
+    public void setTechnicalComment(String technicalComment)
174
+    {
175
+        this.technicalComment = technicalComment;
176
+    }
177
+
178
+    public String getTechnicalComment()
179
+    {
180
+        return technicalComment;
181
+    }
182
+    public void setManageComment(String manageComment)
183
+    {
184
+        this.manageComment = manageComment;
185
+    }
186
+
187
+    public String getManageComment()
188
+    {
189
+        return manageComment;
190
+    }
191
+    public void setTechnicalUploadTime(Date technicalUploadTime)
192
+    {
193
+        this.technicalUploadTime = technicalUploadTime;
194
+    }
195
+
196
+    public Date getTechnicalUploadTime()
197
+    {
198
+        return technicalUploadTime;
199
+    }
200
+    public void setTechApprovalTime(Date techApprovalTime)
201
+    {
202
+        this.techApprovalTime = techApprovalTime;
203
+    }
204
+
205
+    public Date getTechApprovalTime()
206
+    {
207
+        return techApprovalTime;
208
+    }
209
+    public void setManageApprovalTime(Date manageApprovalTime)
210
+    {
211
+        this.manageApprovalTime = manageApprovalTime;
212
+    }
213
+
214
+    public Date getManageApprovalTime()
215
+    {
216
+        return manageApprovalTime;
217
+    }
124
 
218
 
125
     @Override
219
     @Override
126
     public String toString() {
220
     public String toString() {
127
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
221
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
128
-            .append("technicalId", getTechnicalId())
129
-            .append("projectId", getProjectId())
130
-            .append("technicalDirector", getTechnicalDirector())
131
-            .append("technicalDesigner", getTechnicalDesigner())
132
-            .append("technicalPlanner", getTechnicalPlanner())
133
-            .append("technicalComment", getTechnicalComment())
134
-            .append("qualityInspector", getQualityInspector())
135
-            .append("technicalTime", getTechnicalTime())
136
-            .toString();
222
+                .append("technicalId", getTechnicalId())
223
+                .append("projectId", getProjectId())
224
+                .append("technicalDirector", getTechnicalDirector())
225
+                .append("technicalDesigner", getTechnicalDesigner())
226
+                .append("technicalPlanner", getTechnicalPlanner())
227
+                .append("planComment", getPlanComment())
228
+                .append("qualityInspector", getQualityInspector())
229
+                .append("technicalTime", getTechnicalTime())
230
+                .append("technicalDocument", getTechnicalDocument())
231
+                .append("designDescription", getDesignDescription())
232
+                .append("technicalComment", getTechnicalComment())
233
+                .append("manageComment", getManageComment())
234
+                .append("technicalUploadTime", getTechnicalUploadTime())
235
+                .append("techApprovalTime", getTechApprovalTime())
236
+                .append("manageApprovalTime", getManageApprovalTime())
237
+                .toString();
137
     }
238
     }
138
 }
239
 }

+ 61
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcSafeMapper.java 查看文件

1
+package com.ruoyi.oa.mapper;
2
+
3
+import java.util.List;
4
+import com.ruoyi.oa.domain.CmcSafe;
5
+
6
+/**
7
+ * cmc安全交底Mapper接口
8
+ * 
9
+ * @author cmc
10
+ * @date 2024-04-03
11
+ */
12
+public interface CmcSafeMapper 
13
+{
14
+    /**
15
+     * 查询cmc安全交底
16
+     * 
17
+     * @param safeId cmc安全交底主键
18
+     * @return cmc安全交底
19
+     */
20
+    public CmcSafe selectCmcSafeBySafeId(String safeId);
21
+
22
+    /**
23
+     * 查询cmc安全交底列表
24
+     * 
25
+     * @param cmcSafe cmc安全交底
26
+     * @return cmc安全交底集合
27
+     */
28
+    public List<CmcSafe> selectCmcSafeList(CmcSafe cmcSafe);
29
+
30
+    /**
31
+     * 新增cmc安全交底
32
+     * 
33
+     * @param cmcSafe cmc安全交底
34
+     * @return 结果
35
+     */
36
+    public int insertCmcSafe(CmcSafe cmcSafe);
37
+
38
+    /**
39
+     * 修改cmc安全交底
40
+     * 
41
+     * @param cmcSafe cmc安全交底
42
+     * @return 结果
43
+     */
44
+    public int updateCmcSafe(CmcSafe cmcSafe);
45
+
46
+    /**
47
+     * 删除cmc安全交底
48
+     * 
49
+     * @param safeId cmc安全交底主键
50
+     * @return 结果
51
+     */
52
+    public int deleteCmcSafeBySafeId(String safeId);
53
+
54
+    /**
55
+     * 批量删除cmc安全交底
56
+     * 
57
+     * @param safeIds 需要删除的数据主键集合
58
+     * @return 结果
59
+     */
60
+    public int deleteCmcSafeBySafeIds(String[] safeIds);
61
+}

+ 61
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcSafeService.java 查看文件

1
+package com.ruoyi.oa.service;
2
+
3
+import java.util.List;
4
+import com.ruoyi.oa.domain.CmcSafe;
5
+
6
+/**
7
+ * cmc安全交底Service接口
8
+ * 
9
+ * @author cmc
10
+ * @date 2024-04-03
11
+ */
12
+public interface ICmcSafeService 
13
+{
14
+    /**
15
+     * 查询cmc安全交底
16
+     * 
17
+     * @param safeId cmc安全交底主键
18
+     * @return cmc安全交底
19
+     */
20
+    public CmcSafe selectCmcSafeBySafeId(String safeId);
21
+
22
+    /**
23
+     * 查询cmc安全交底列表
24
+     * 
25
+     * @param cmcSafe cmc安全交底
26
+     * @return cmc安全交底集合
27
+     */
28
+    public List<CmcSafe> selectCmcSafeList(CmcSafe cmcSafe);
29
+
30
+    /**
31
+     * 新增cmc安全交底
32
+     * 
33
+     * @param cmcSafe cmc安全交底
34
+     * @return 结果
35
+     */
36
+    public int insertCmcSafe(CmcSafe cmcSafe);
37
+
38
+    /**
39
+     * 修改cmc安全交底
40
+     * 
41
+     * @param cmcSafe cmc安全交底
42
+     * @return 结果
43
+     */
44
+    public int updateCmcSafe(CmcSafe cmcSafe);
45
+
46
+    /**
47
+     * 批量删除cmc安全交底
48
+     * 
49
+     * @param safeIds 需要删除的cmc安全交底主键集合
50
+     * @return 结果
51
+     */
52
+    public int deleteCmcSafeBySafeIds(String[] safeIds);
53
+
54
+    /**
55
+     * 删除cmc安全交底信息
56
+     * 
57
+     * @param safeId cmc安全交底主键
58
+     * @return 结果
59
+     */
60
+    public int deleteCmcSafeBySafeId(String safeId);
61
+}

+ 93
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcSafeServiceImpl.java 查看文件

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.CmcSafeMapper;
7
+import com.ruoyi.oa.domain.CmcSafe;
8
+import com.ruoyi.oa.service.ICmcSafeService;
9
+
10
+/**
11
+ * cmc安全交底Service业务层处理
12
+ * 
13
+ * @author cmc
14
+ * @date 2024-04-03
15
+ */
16
+@Service
17
+public class CmcSafeServiceImpl implements ICmcSafeService 
18
+{
19
+    @Autowired
20
+    private CmcSafeMapper cmcSafeMapper;
21
+
22
+    /**
23
+     * 查询cmc安全交底
24
+     * 
25
+     * @param safeId cmc安全交底主键
26
+     * @return cmc安全交底
27
+     */
28
+    @Override
29
+    public CmcSafe selectCmcSafeBySafeId(String safeId)
30
+    {
31
+        return cmcSafeMapper.selectCmcSafeBySafeId(safeId);
32
+    }
33
+
34
+    /**
35
+     * 查询cmc安全交底列表
36
+     * 
37
+     * @param cmcSafe cmc安全交底
38
+     * @return cmc安全交底
39
+     */
40
+    @Override
41
+    public List<CmcSafe> selectCmcSafeList(CmcSafe cmcSafe)
42
+    {
43
+        return cmcSafeMapper.selectCmcSafeList(cmcSafe);
44
+    }
45
+
46
+    /**
47
+     * 新增cmc安全交底
48
+     * 
49
+     * @param cmcSafe cmc安全交底
50
+     * @return 结果
51
+     */
52
+    @Override
53
+    public int insertCmcSafe(CmcSafe cmcSafe)
54
+    {
55
+        return cmcSafeMapper.insertCmcSafe(cmcSafe);
56
+    }
57
+
58
+    /**
59
+     * 修改cmc安全交底
60
+     * 
61
+     * @param cmcSafe cmc安全交底
62
+     * @return 结果
63
+     */
64
+    @Override
65
+    public int updateCmcSafe(CmcSafe cmcSafe)
66
+    {
67
+        return cmcSafeMapper.updateCmcSafe(cmcSafe);
68
+    }
69
+
70
+    /**
71
+     * 批量删除cmc安全交底
72
+     * 
73
+     * @param safeIds 需要删除的cmc安全交底主键
74
+     * @return 结果
75
+     */
76
+    @Override
77
+    public int deleteCmcSafeBySafeIds(String[] safeIds)
78
+    {
79
+        return cmcSafeMapper.deleteCmcSafeBySafeIds(safeIds);
80
+    }
81
+
82
+    /**
83
+     * 删除cmc安全交底信息
84
+     * 
85
+     * @param safeId cmc安全交底主键
86
+     * @return 结果
87
+     */
88
+    @Override
89
+    public int deleteCmcSafeBySafeId(String safeId)
90
+    {
91
+        return cmcSafeMapper.deleteCmcSafeBySafeId(safeId);
92
+    }
93
+}

+ 98
- 0
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcSafeMapper.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8" ?>
2
+<!DOCTYPE mapper
3
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
+<mapper namespace="com.ruoyi.oa.mapper.CmcSafeMapper">
6
+    
7
+    <resultMap type="CmcSafe" id="CmcSafeResult">
8
+        <result property="safeId"    column="safe_id"    />
9
+        <result property="projectId"    column="project_id"    />
10
+        <result property="disclosureAccepter"    column="disclosure_accepter"    />
11
+        <result property="disclosurer"    column="disclosurer"    />
12
+        <result property="environmentComment"    column="environment_comment"    />
13
+        <result property="outsideComment"    column="outside_comment"    />
14
+        <result property="insideComment"    column="inside_comment"    />
15
+        <result property="disclosureComment"    column="disclosure_comment"    />
16
+        <result property="disclosureTime"    column="disclosure_time"    />
17
+        <result property="acceptTime"    column="accept_time"    />
18
+    </resultMap>
19
+
20
+    <sql id="selectCmcSafeVo">
21
+        select safe_id, project_id, disclosure_accepter, disclosurer, environment_comment, outside_comment, inside_comment, disclosure_comment, disclosure_time, accept_time from cmc_safe
22
+    </sql>
23
+
24
+    <select id="selectCmcSafeList" parameterType="CmcSafe" resultMap="CmcSafeResult">
25
+        <include refid="selectCmcSafeVo"/>
26
+        <where>  
27
+            <if test="projectId != null  and projectId != ''"> and project_id = #{projectId}</if>
28
+            <if test="disclosureAccepter != null "> and disclosure_accepter = #{disclosureAccepter}</if>
29
+            <if test="disclosurer != null "> and disclosurer = #{disclosurer}</if>
30
+            <if test="environmentComment != null  and environmentComment != ''"> and environment_comment = #{environmentComment}</if>
31
+            <if test="outsideComment != null  and outsideComment != ''"> and outside_comment = #{outsideComment}</if>
32
+            <if test="insideComment != null  and insideComment != ''"> and inside_comment = #{insideComment}</if>
33
+            <if test="disclosureComment != null  and disclosureComment != ''"> and disclosure_comment = #{disclosureComment}</if>
34
+            <if test="disclosureTime != null "> and disclosure_time = #{disclosureTime}</if>
35
+            <if test="acceptTime != null "> and accept_time = #{acceptTime}</if>
36
+        </where>
37
+    </select>
38
+    
39
+    <select id="selectCmcSafeBySafeId" parameterType="String" resultMap="CmcSafeResult">
40
+        <include refid="selectCmcSafeVo"/>
41
+        where safe_id = #{safeId}
42
+    </select>
43
+        
44
+    <insert id="insertCmcSafe" parameterType="CmcSafe">
45
+        insert into cmc_safe
46
+        <trim prefix="(" suffix=")" suffixOverrides=",">
47
+            <if test="safeId != null">safe_id,</if>
48
+            <if test="projectId != null">project_id,</if>
49
+            <if test="disclosureAccepter != null">disclosure_accepter,</if>
50
+            <if test="disclosurer != null">disclosurer,</if>
51
+            <if test="environmentComment != null">environment_comment,</if>
52
+            <if test="outsideComment != null">outside_comment,</if>
53
+            <if test="insideComment != null">inside_comment,</if>
54
+            <if test="disclosureComment != null">disclosure_comment,</if>
55
+            <if test="disclosureTime != null">disclosure_time,</if>
56
+            <if test="acceptTime != null">accept_time,</if>
57
+         </trim>
58
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
59
+            <if test="safeId != null">#{safeId},</if>
60
+            <if test="projectId != null">#{projectId},</if>
61
+            <if test="disclosureAccepter != null">#{disclosureAccepter},</if>
62
+            <if test="disclosurer != null">#{disclosurer},</if>
63
+            <if test="environmentComment != null">#{environmentComment},</if>
64
+            <if test="outsideComment != null">#{outsideComment},</if>
65
+            <if test="insideComment != null">#{insideComment},</if>
66
+            <if test="disclosureComment != null">#{disclosureComment},</if>
67
+            <if test="disclosureTime != null">#{disclosureTime},</if>
68
+            <if test="acceptTime != null">#{acceptTime},</if>
69
+         </trim>
70
+    </insert>
71
+
72
+    <update id="updateCmcSafe" parameterType="CmcSafe">
73
+        update cmc_safe
74
+        <trim prefix="SET" suffixOverrides=",">
75
+            <if test="projectId != null">project_id = #{projectId},</if>
76
+            <if test="disclosureAccepter != null">disclosure_accepter = #{disclosureAccepter},</if>
77
+            <if test="disclosurer != null">disclosurer = #{disclosurer},</if>
78
+            <if test="environmentComment != null">environment_comment = #{environmentComment},</if>
79
+            <if test="outsideComment != null">outside_comment = #{outsideComment},</if>
80
+            <if test="insideComment != null">inside_comment = #{insideComment},</if>
81
+            <if test="disclosureComment != null">disclosure_comment = #{disclosureComment},</if>
82
+            <if test="disclosureTime != null">disclosure_time = #{disclosureTime},</if>
83
+            <if test="acceptTime != null">accept_time = #{acceptTime},</if>
84
+        </trim>
85
+        where safe_id = #{safeId}
86
+    </update>
87
+
88
+    <delete id="deleteCmcSafeBySafeId" parameterType="String">
89
+        delete from cmc_safe where safe_id = #{safeId}
90
+    </delete>
91
+
92
+    <delete id="deleteCmcSafeBySafeIds" parameterType="String">
93
+        delete from cmc_safe where safe_id in 
94
+        <foreach item="safeId" collection="array" open="(" separator="," close=")">
95
+            #{safeId}
96
+        </foreach>
97
+    </delete>
98
+</mapper>

+ 50
- 15
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcTechnicalMapper.xml 查看文件

1
 <?xml version="1.0" encoding="UTF-8" ?>
1
 <?xml version="1.0" encoding="UTF-8" ?>
2
 <!DOCTYPE mapper
2
 <!DOCTYPE mapper
3
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
 <mapper namespace="com.ruoyi.oa.mapper.CmcTechnicalMapper">
5
 <mapper namespace="com.ruoyi.oa.mapper.CmcTechnicalMapper">
6
-    
6
+
7
     <resultMap type="CmcTechnical" id="CmcTechnicalResult">
7
     <resultMap type="CmcTechnical" id="CmcTechnicalResult">
8
         <result property="technicalId"    column="technical_id"    />
8
         <result property="technicalId"    column="technical_id"    />
9
         <result property="projectId"    column="project_id"    />
9
         <result property="projectId"    column="project_id"    />
10
         <result property="technicalDirector"    column="technical_director"    />
10
         <result property="technicalDirector"    column="technical_director"    />
11
         <result property="technicalDesigner"    column="technical_designer"    />
11
         <result property="technicalDesigner"    column="technical_designer"    />
12
         <result property="technicalPlanner"    column="technical_planner"    />
12
         <result property="technicalPlanner"    column="technical_planner"    />
13
-        <result property="technicalComment"    column="technical_comment"    />
13
+        <result property="planComment"    column="plan_comment"    />
14
         <result property="qualityInspector"    column="quality_inspector"    />
14
         <result property="qualityInspector"    column="quality_inspector"    />
15
         <result property="technicalTime"    column="technical_time"    />
15
         <result property="technicalTime"    column="technical_time"    />
16
+        <result property="technicalDocument"    column="technical_document"    />
17
+        <result property="designDescription"    column="design_description"    />
18
+        <result property="technicalComment"    column="technical_comment"    />
19
+        <result property="manageComment"    column="manage_comment"    />
20
+        <result property="technicalUploadTime"    column="technical_upload_time"    />
21
+        <result property="techApprovalTime"    column="tech_approval_time"    />
22
+        <result property="manageApprovalTime"    column="manage_approval_time"    />
16
     </resultMap>
23
     </resultMap>
17
 
24
 
18
     <sql id="selectCmcTechnicalVo">
25
     <sql id="selectCmcTechnicalVo">
19
-        select technical_id, project_id, technical_director, technical_designer, technical_planner, technical_comment, quality_inspector, technical_time from cmc_technical
26
+        select technical_id, project_id, technical_director, technical_designer, technical_planner, plan_comment, quality_inspector, technical_time, technical_document, design_description, technical_comment, manage_comment, technical_upload_time, tech_approval_time, manage_approval_time from cmc_technical
20
     </sql>
27
     </sql>
21
 
28
 
22
     <select id="selectCmcTechnicalList" parameterType="CmcTechnical" resultMap="CmcTechnicalResult">
29
     <select id="selectCmcTechnicalList" parameterType="CmcTechnical" resultMap="CmcTechnicalResult">
23
         <include refid="selectCmcTechnicalVo"/>
30
         <include refid="selectCmcTechnicalVo"/>
24
-        <where>  
31
+        <where>
25
             <if test="projectId != null  and projectId != ''"> and project_id = #{projectId}</if>
32
             <if test="projectId != null  and projectId != ''"> and project_id = #{projectId}</if>
26
             <if test="technicalDirector != null "> and technical_director = #{technicalDirector}</if>
33
             <if test="technicalDirector != null "> and technical_director = #{technicalDirector}</if>
27
             <if test="technicalDesigner != null "> and technical_designer = #{technicalDesigner}</if>
34
             <if test="technicalDesigner != null "> and technical_designer = #{technicalDesigner}</if>
28
             <if test="technicalPlanner != null "> and technical_planner = #{technicalPlanner}</if>
35
             <if test="technicalPlanner != null "> and technical_planner = #{technicalPlanner}</if>
29
-            <if test="technicalComment != null  and technicalComment != ''"> and technical_comment = #{technicalComment}</if>
36
+            <if test="planComment != null  and planComment != ''"> and plan_comment = #{planComment}</if>
30
             <if test="qualityInspector != null  and qualityInspector != ''"> and quality_inspector = #{qualityInspector}</if>
37
             <if test="qualityInspector != null  and qualityInspector != ''"> and quality_inspector = #{qualityInspector}</if>
31
             <if test="technicalTime != null "> and technical_time = #{technicalTime}</if>
38
             <if test="technicalTime != null "> and technical_time = #{technicalTime}</if>
39
+            <if test="technicalDocument != null  and technicalDocument != ''"> and technical_document = #{technicalDocument}</if>
40
+            <if test="designDescription != null  and designDescription != ''"> and design_description = #{designDescription}</if>
41
+            <if test="technicalComment != null  and technicalComment != ''"> and technical_comment = #{technicalComment}</if>
42
+            <if test="manageComment != null  and manageComment != ''"> and manage_comment = #{manageComment}</if>
43
+            <if test="technicalUploadTime != null "> and technical_upload_time = #{technicalUploadTime}</if>
44
+            <if test="techApprovalTime != null "> and tech_approval_time = #{techApprovalTime}</if>
45
+            <if test="manageApprovalTime != null "> and manage_approval_time = #{manageApprovalTime}</if>
32
         </where>
46
         </where>
33
     </select>
47
     </select>
34
-    
48
+
35
     <select id="selectCmcTechnicalByTechnicalId" parameterType="String" resultMap="CmcTechnicalResult">
49
     <select id="selectCmcTechnicalByTechnicalId" parameterType="String" resultMap="CmcTechnicalResult">
36
         <include refid="selectCmcTechnicalVo"/>
50
         <include refid="selectCmcTechnicalVo"/>
37
         where technical_id = #{technicalId}
51
         where technical_id = #{technicalId}
38
     </select>
52
     </select>
39
-        
53
+
40
     <insert id="insertCmcTechnical" parameterType="CmcTechnical">
54
     <insert id="insertCmcTechnical" parameterType="CmcTechnical">
41
         insert into cmc_technical
55
         insert into cmc_technical
42
         <trim prefix="(" suffix=")" suffixOverrides=",">
56
         <trim prefix="(" suffix=")" suffixOverrides=",">
45
             <if test="technicalDirector != null">technical_director,</if>
59
             <if test="technicalDirector != null">technical_director,</if>
46
             <if test="technicalDesigner != null">technical_designer,</if>
60
             <if test="technicalDesigner != null">technical_designer,</if>
47
             <if test="technicalPlanner != null">technical_planner,</if>
61
             <if test="technicalPlanner != null">technical_planner,</if>
48
-            <if test="technicalComment != null">technical_comment,</if>
62
+            <if test="planComment != null">plan_comment,</if>
49
             <if test="qualityInspector != null">quality_inspector,</if>
63
             <if test="qualityInspector != null">quality_inspector,</if>
50
             <if test="technicalTime != null">technical_time,</if>
64
             <if test="technicalTime != null">technical_time,</if>
51
-         </trim>
65
+            <if test="technicalDocument != null">technical_document,</if>
66
+            <if test="designDescription != null">design_description,</if>
67
+            <if test="technicalComment != null">technical_comment,</if>
68
+            <if test="manageComment != null">manage_comment,</if>
69
+            <if test="technicalUploadTime != null">technical_upload_time,</if>
70
+            <if test="techApprovalTime != null">tech_approval_time,</if>
71
+            <if test="manageApprovalTime != null">manage_approval_time,</if>
72
+        </trim>
52
         <trim prefix="values (" suffix=")" suffixOverrides=",">
73
         <trim prefix="values (" suffix=")" suffixOverrides=",">
53
             <if test="technicalId != null">#{technicalId},</if>
74
             <if test="technicalId != null">#{technicalId},</if>
54
             <if test="projectId != null">#{projectId},</if>
75
             <if test="projectId != null">#{projectId},</if>
55
             <if test="technicalDirector != null">#{technicalDirector},</if>
76
             <if test="technicalDirector != null">#{technicalDirector},</if>
56
             <if test="technicalDesigner != null">#{technicalDesigner},</if>
77
             <if test="technicalDesigner != null">#{technicalDesigner},</if>
57
             <if test="technicalPlanner != null">#{technicalPlanner},</if>
78
             <if test="technicalPlanner != null">#{technicalPlanner},</if>
58
-            <if test="technicalComment != null">#{technicalComment},</if>
79
+            <if test="planComment != null">#{planComment},</if>
59
             <if test="qualityInspector != null">#{qualityInspector},</if>
80
             <if test="qualityInspector != null">#{qualityInspector},</if>
60
             <if test="technicalTime != null">#{technicalTime},</if>
81
             <if test="technicalTime != null">#{technicalTime},</if>
61
-         </trim>
82
+            <if test="technicalDocument != null">#{technicalDocument},</if>
83
+            <if test="designDescription != null">#{designDescription},</if>
84
+            <if test="technicalComment != null">#{technicalComment},</if>
85
+            <if test="manageComment != null">#{manageComment},</if>
86
+            <if test="technicalUploadTime != null">#{technicalUploadTime},</if>
87
+            <if test="techApprovalTime != null">#{techApprovalTime},</if>
88
+            <if test="manageApprovalTime != null">#{manageApprovalTime},</if>
89
+        </trim>
62
     </insert>
90
     </insert>
63
 
91
 
64
     <update id="updateCmcTechnical" parameterType="CmcTechnical">
92
     <update id="updateCmcTechnical" parameterType="CmcTechnical">
68
             <if test="technicalDirector != null">technical_director = #{technicalDirector},</if>
96
             <if test="technicalDirector != null">technical_director = #{technicalDirector},</if>
69
             <if test="technicalDesigner != null">technical_designer = #{technicalDesigner},</if>
97
             <if test="technicalDesigner != null">technical_designer = #{technicalDesigner},</if>
70
             <if test="technicalPlanner != null">technical_planner = #{technicalPlanner},</if>
98
             <if test="technicalPlanner != null">technical_planner = #{technicalPlanner},</if>
71
-            <if test="technicalComment != null">technical_comment = #{technicalComment},</if>
99
+            <if test="planComment != null">plan_comment = #{planComment},</if>
72
             <if test="qualityInspector != null">quality_inspector = #{qualityInspector},</if>
100
             <if test="qualityInspector != null">quality_inspector = #{qualityInspector},</if>
73
             <if test="technicalTime != null">technical_time = #{technicalTime},</if>
101
             <if test="technicalTime != null">technical_time = #{technicalTime},</if>
102
+            <if test="technicalDocument != null">technical_document = #{technicalDocument},</if>
103
+            <if test="designDescription != null">design_description = #{designDescription},</if>
104
+            <if test="technicalComment != null">technical_comment = #{technicalComment},</if>
105
+            <if test="manageComment != null">manage_comment = #{manageComment},</if>
106
+            <if test="technicalUploadTime != null">technical_upload_time = #{technicalUploadTime},</if>
107
+            <if test="techApprovalTime != null">tech_approval_time = #{techApprovalTime},</if>
108
+            <if test="manageApprovalTime != null">manage_approval_time = #{manageApprovalTime},</if>
74
         </trim>
109
         </trim>
75
         where technical_id = #{technicalId}
110
         where technical_id = #{technicalId}
76
     </update>
111
     </update>
80
     </delete>
115
     </delete>
81
 
116
 
82
     <delete id="deleteCmcTechnicalByTechnicalIds" parameterType="String">
117
     <delete id="deleteCmcTechnicalByTechnicalIds" parameterType="String">
83
-        delete from cmc_technical where technical_id in 
118
+        delete from cmc_technical where technical_id in
84
         <foreach item="technicalId" collection="array" open="(" separator="," close=")">
119
         <foreach item="technicalId" collection="array" open="(" separator="," close=")">
85
             #{technicalId}
120
             #{technicalId}
86
         </foreach>
121
         </foreach>

+ 44
- 13
oa-back/sql/sql.sql
文件差异内容过多而无法显示
查看文件


+ 6
- 9
oa-ui/src/api/oa/budget/budget.js 查看文件

1
+/*
2
+ * @Author: wrh
3
+ * @Date: 2024-03-22 17:42:30
4
+ * @LastEditors: wrh
5
+ * @LastEditTime: 2024-04-03 10:10:01
6
+ */
1
 import request from '@/utils/request'
7
 import request from '@/utils/request'
2
 
8
 
3
 // 查询cmc预算管理列表
9
 // 查询cmc预算管理列表
26
   })
32
   })
27
 }
33
 }
28
 
34
 
29
-// 新增cmc预算管理
30
-export function submitBudget(data) {
31
-  return request({
32
-    url: '/oa/budget/submit',
33
-    method: 'post',
34
-    data: data
35
-  })
36
-}
37
-
38
 // 修改cmc预算管理
35
 // 修改cmc预算管理
39
 export function updateBudget(data) {
36
 export function updateBudget(data) {
40
   return request({
37
   return request({

+ 44
- 0
oa-ui/src/api/oa/safe/safe.js 查看文件

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

+ 44
- 0
oa-ui/src/api/oa/technical/technical.js 查看文件

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/projectProcess/arrangeProject.vue 查看文件

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-03-19 09:24:06
3
  * @Date: 2024-03-19 09:24:06
4
  * @LastEditors: wrh
4
  * @LastEditors: wrh
5
- * @LastEditTime: 2024-04-02 17:45:20
5
+ * @LastEditTime: 2024-04-03 10:13:04
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="app-container">
8
   <div class="app-container">

+ 375
- 0
oa-ui/src/views/oa/safe/index.vue 查看文件

1
+<template>
2
+  <div class="app-container">
3
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4
+      <el-form-item label="项目id" prop="projectId">
5
+        <el-input
6
+          v-model="queryParams.projectId"
7
+          placeholder="请输入项目id"
8
+          clearable
9
+          @keyup.enter.native="handleQuery"
10
+        />
11
+      </el-form-item>
12
+      <el-form-item label="接受交底人" prop="disclosureAccepter">
13
+        <el-input
14
+          v-model="queryParams.disclosureAccepter"
15
+          placeholder="请输入接受交底人"
16
+          clearable
17
+          @keyup.enter.native="handleQuery"
18
+        />
19
+      </el-form-item>
20
+      <el-form-item label="安全交底人" prop="disclosurer">
21
+        <el-input
22
+          v-model="queryParams.disclosurer"
23
+          placeholder="请输入安全交底人"
24
+          clearable
25
+          @keyup.enter.native="handleQuery"
26
+        />
27
+      </el-form-item>
28
+      <el-form-item label="环境要求" prop="environmentComment">
29
+        <el-input
30
+          v-model="queryParams.environmentComment"
31
+          placeholder="请输入环境要求"
32
+          clearable
33
+          @keyup.enter.native="handleQuery"
34
+        />
35
+      </el-form-item>
36
+      <el-form-item label="外业要求" prop="outsideComment">
37
+        <el-input
38
+          v-model="queryParams.outsideComment"
39
+          placeholder="请输入外业要求"
40
+          clearable
41
+          @keyup.enter.native="handleQuery"
42
+        />
43
+      </el-form-item>
44
+      <el-form-item label="内业要求" prop="insideComment">
45
+        <el-input
46
+          v-model="queryParams.insideComment"
47
+          placeholder="请输入内业要求"
48
+          clearable
49
+          @keyup.enter.native="handleQuery"
50
+        />
51
+      </el-form-item>
52
+      <el-form-item label="安全交底意见" prop="disclosureComment">
53
+        <el-input
54
+          v-model="queryParams.disclosureComment"
55
+          placeholder="请输入安全交底意见"
56
+          clearable
57
+          @keyup.enter.native="handleQuery"
58
+        />
59
+      </el-form-item>
60
+      <el-form-item label="安全交底时间" prop="disclosureTime">
61
+        <el-date-picker clearable
62
+          v-model="queryParams.disclosureTime"
63
+          type="date"
64
+          value-format="yyyy-MM-dd"
65
+          placeholder="请选择安全交底时间">
66
+        </el-date-picker>
67
+      </el-form-item>
68
+      <el-form-item label="接受交底时间" prop="acceptTime">
69
+        <el-date-picker clearable
70
+          v-model="queryParams.acceptTime"
71
+          type="date"
72
+          value-format="yyyy-MM-dd"
73
+          placeholder="请选择接受交底时间">
74
+        </el-date-picker>
75
+      </el-form-item>
76
+      <el-form-item>
77
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
78
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
79
+      </el-form-item>
80
+    </el-form>
81
+
82
+    <el-row :gutter="10" class="mb8">
83
+      <el-col :span="1.5">
84
+        <el-button
85
+          type="primary"
86
+          plain
87
+          icon="el-icon-plus"
88
+          size="mini"
89
+          @click="handleAdd"
90
+          v-hasPermi="['oa:safe:add']"
91
+        >新增</el-button>
92
+      </el-col>
93
+      <el-col :span="1.5">
94
+        <el-button
95
+          type="success"
96
+          plain
97
+          icon="el-icon-edit"
98
+          size="mini"
99
+          :disabled="single"
100
+          @click="handleUpdate"
101
+          v-hasPermi="['oa:safe:edit']"
102
+        >修改</el-button>
103
+      </el-col>
104
+      <el-col :span="1.5">
105
+        <el-button
106
+          type="danger"
107
+          plain
108
+          icon="el-icon-delete"
109
+          size="mini"
110
+          :disabled="multiple"
111
+          @click="handleDelete"
112
+          v-hasPermi="['oa:safe:remove']"
113
+        >删除</el-button>
114
+      </el-col>
115
+      <el-col :span="1.5">
116
+        <el-button
117
+          type="warning"
118
+          plain
119
+          icon="el-icon-download"
120
+          size="mini"
121
+          @click="handleExport"
122
+          v-hasPermi="['oa:safe:export']"
123
+        >导出</el-button>
124
+      </el-col>
125
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
126
+    </el-row>
127
+
128
+    <el-table v-loading="loading" :data="safeList" @selection-change="handleSelectionChange">
129
+      <el-table-column type="selection" width="55" align="center" />
130
+      <el-table-column label="项目id" align="center" prop="safeId" />
131
+      <el-table-column label="项目id" align="center" prop="projectId" />
132
+      <el-table-column label="接受交底人" align="center" prop="disclosureAccepter" />
133
+      <el-table-column label="安全交底人" align="center" prop="disclosurer" />
134
+      <el-table-column label="环境要求" align="center" prop="environmentComment" />
135
+      <el-table-column label="外业要求" align="center" prop="outsideComment" />
136
+      <el-table-column label="内业要求" align="center" prop="insideComment" />
137
+      <el-table-column label="安全交底意见" align="center" prop="disclosureComment" />
138
+      <el-table-column label="安全交底时间" align="center" prop="disclosureTime" width="180">
139
+        <template slot-scope="scope">
140
+          <span>{{ parseTime(scope.row.disclosureTime, '{y}-{m}-{d}') }}</span>
141
+        </template>
142
+      </el-table-column>
143
+      <el-table-column label="接受交底时间" align="center" prop="acceptTime" width="180">
144
+        <template slot-scope="scope">
145
+          <span>{{ parseTime(scope.row.acceptTime, '{y}-{m}-{d}') }}</span>
146
+        </template>
147
+      </el-table-column>
148
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
149
+        <template slot-scope="scope">
150
+          <el-button
151
+            size="mini"
152
+            type="text"
153
+            icon="el-icon-edit"
154
+            @click="handleUpdate(scope.row)"
155
+            v-hasPermi="['oa:safe:edit']"
156
+          >修改</el-button>
157
+          <el-button
158
+            size="mini"
159
+            type="text"
160
+            icon="el-icon-delete"
161
+            @click="handleDelete(scope.row)"
162
+            v-hasPermi="['oa:safe:remove']"
163
+          >删除</el-button>
164
+        </template>
165
+      </el-table-column>
166
+    </el-table>
167
+    
168
+    <pagination
169
+      v-show="total>0"
170
+      :total="total"
171
+      :page.sync="queryParams.pageNum"
172
+      :limit.sync="queryParams.pageSize"
173
+      @pagination="getList"
174
+    />
175
+
176
+    <!-- 添加或修改cmc安全交底对话框 -->
177
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
178
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
179
+        <el-form-item label="项目id" prop="projectId">
180
+          <el-input v-model="form.projectId" placeholder="请输入项目id" />
181
+        </el-form-item>
182
+        <el-form-item label="接受交底人" prop="disclosureAccepter">
183
+          <el-input v-model="form.disclosureAccepter" placeholder="请输入接受交底人" />
184
+        </el-form-item>
185
+        <el-form-item label="安全交底人" prop="disclosurer">
186
+          <el-input v-model="form.disclosurer" placeholder="请输入安全交底人" />
187
+        </el-form-item>
188
+        <el-form-item label="环境要求" prop="environmentComment">
189
+          <el-input v-model="form.environmentComment" placeholder="请输入环境要求" />
190
+        </el-form-item>
191
+        <el-form-item label="外业要求" prop="outsideComment">
192
+          <el-input v-model="form.outsideComment" placeholder="请输入外业要求" />
193
+        </el-form-item>
194
+        <el-form-item label="内业要求" prop="insideComment">
195
+          <el-input v-model="form.insideComment" placeholder="请输入内业要求" />
196
+        </el-form-item>
197
+        <el-form-item label="安全交底意见" prop="disclosureComment">
198
+          <el-input v-model="form.disclosureComment" placeholder="请输入安全交底意见" />
199
+        </el-form-item>
200
+        <el-form-item label="安全交底时间" prop="disclosureTime">
201
+          <el-date-picker clearable
202
+            v-model="form.disclosureTime"
203
+            type="date"
204
+            value-format="yyyy-MM-dd"
205
+            placeholder="请选择安全交底时间">
206
+          </el-date-picker>
207
+        </el-form-item>
208
+        <el-form-item label="接受交底时间" prop="acceptTime">
209
+          <el-date-picker clearable
210
+            v-model="form.acceptTime"
211
+            type="date"
212
+            value-format="yyyy-MM-dd"
213
+            placeholder="请选择接受交底时间">
214
+          </el-date-picker>
215
+        </el-form-item>
216
+      </el-form>
217
+      <div slot="footer" class="dialog-footer">
218
+        <el-button type="primary" @click="submitForm">确 定</el-button>
219
+        <el-button @click="cancel">取 消</el-button>
220
+      </div>
221
+    </el-dialog>
222
+  </div>
223
+</template>
224
+
225
+<script>
226
+import { listSafe, getSafe, delSafe, addSafe, updateSafe } from "@/api/oa/safe/safe";
227
+
228
+export default {
229
+  name: "Safe",
230
+  data() {
231
+    return {
232
+      // 遮罩层
233
+      loading: true,
234
+      // 选中数组
235
+      ids: [],
236
+      // 非单个禁用
237
+      single: true,
238
+      // 非多个禁用
239
+      multiple: true,
240
+      // 显示搜索条件
241
+      showSearch: true,
242
+      // 总条数
243
+      total: 0,
244
+      // cmc安全交底表格数据
245
+      safeList: [],
246
+      // 弹出层标题
247
+      title: "",
248
+      // 是否显示弹出层
249
+      open: false,
250
+      // 查询参数
251
+      queryParams: {
252
+        pageNum: 1,
253
+        pageSize: 10,
254
+        projectId: null,
255
+        disclosureAccepter: null,
256
+        disclosurer: null,
257
+        environmentComment: null,
258
+        outsideComment: null,
259
+        insideComment: null,
260
+        disclosureComment: null,
261
+        disclosureTime: null,
262
+        acceptTime: null
263
+      },
264
+      // 表单参数
265
+      form: {},
266
+      // 表单校验
267
+      rules: {
268
+      }
269
+    };
270
+  },
271
+  created() {
272
+    this.getList();
273
+  },
274
+  methods: {
275
+    /** 查询cmc安全交底列表 */
276
+    getList() {
277
+      this.loading = true;
278
+      listSafe(this.queryParams).then(response => {
279
+        this.safeList = response.rows;
280
+        this.total = response.total;
281
+        this.loading = false;
282
+      });
283
+    },
284
+    // 取消按钮
285
+    cancel() {
286
+      this.open = false;
287
+      this.reset();
288
+    },
289
+    // 表单重置
290
+    reset() {
291
+      this.form = {
292
+        safeId: null,
293
+        projectId: null,
294
+        disclosureAccepter: null,
295
+        disclosurer: null,
296
+        environmentComment: null,
297
+        outsideComment: null,
298
+        insideComment: null,
299
+        disclosureComment: null,
300
+        disclosureTime: null,
301
+        acceptTime: null
302
+      };
303
+      this.resetForm("form");
304
+    },
305
+    /** 搜索按钮操作 */
306
+    handleQuery() {
307
+      this.queryParams.pageNum = 1;
308
+      this.getList();
309
+    },
310
+    /** 重置按钮操作 */
311
+    resetQuery() {
312
+      this.resetForm("queryForm");
313
+      this.handleQuery();
314
+    },
315
+    // 多选框选中数据
316
+    handleSelectionChange(selection) {
317
+      this.ids = selection.map(item => item.safeId)
318
+      this.single = selection.length!==1
319
+      this.multiple = !selection.length
320
+    },
321
+    /** 新增按钮操作 */
322
+    handleAdd() {
323
+      this.reset();
324
+      this.open = true;
325
+      this.title = "添加cmc安全交底";
326
+    },
327
+    /** 修改按钮操作 */
328
+    handleUpdate(row) {
329
+      this.reset();
330
+      const safeId = row.safeId || this.ids
331
+      getSafe(safeId).then(response => {
332
+        this.form = response.data;
333
+        this.open = true;
334
+        this.title = "修改cmc安全交底";
335
+      });
336
+    },
337
+    /** 提交按钮 */
338
+    submitForm() {
339
+      this.$refs["form"].validate(valid => {
340
+        if (valid) {
341
+          if (this.form.safeId != null) {
342
+            updateSafe(this.form).then(response => {
343
+              this.$modal.msgSuccess("修改成功");
344
+              this.open = false;
345
+              this.getList();
346
+            });
347
+          } else {
348
+            addSafe(this.form).then(response => {
349
+              this.$modal.msgSuccess("新增成功");
350
+              this.open = false;
351
+              this.getList();
352
+            });
353
+          }
354
+        }
355
+      });
356
+    },
357
+    /** 删除按钮操作 */
358
+    handleDelete(row) {
359
+      const safeIds = row.safeId || this.ids;
360
+      this.$modal.confirm('是否确认删除cmc安全交底编号为"' + safeIds + '"的数据项?').then(function() {
361
+        return delSafe(safeIds);
362
+      }).then(() => {
363
+        this.getList();
364
+        this.$modal.msgSuccess("删除成功");
365
+      }).catch(() => {});
366
+    },
367
+    /** 导出按钮操作 */
368
+    handleExport() {
369
+      this.download('oa/safe/export', {
370
+        ...this.queryParams
371
+      }, `safe_${new Date().getTime()}.xlsx`)
372
+    }
373
+  }
374
+};
375
+</script>

+ 463
- 0
oa-ui/src/views/oa/technical/index.vue 查看文件

1
+<template>
2
+  <div class="app-container">
3
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4
+      <el-form-item label="项目id" prop="projectId">
5
+        <el-input
6
+          v-model="queryParams.projectId"
7
+          placeholder="请输入项目id"
8
+          clearable
9
+          @keyup.enter.native="handleQuery"
10
+        />
11
+      </el-form-item>
12
+      <el-form-item label="技术负责人" prop="technicalDirector">
13
+        <el-input
14
+          v-model="queryParams.technicalDirector"
15
+          placeholder="请输入技术负责人"
16
+          clearable
17
+          @keyup.enter.native="handleQuery"
18
+        />
19
+      </el-form-item>
20
+      <el-form-item label="技术设计人" prop="technicalDesigner">
21
+        <el-input
22
+          v-model="queryParams.technicalDesigner"
23
+          placeholder="请输入技术设计人"
24
+          clearable
25
+          @keyup.enter.native="handleQuery"
26
+        />
27
+      </el-form-item>
28
+      <el-form-item label="技术安排人" prop="technicalPlanner">
29
+        <el-input
30
+          v-model="queryParams.technicalPlanner"
31
+          placeholder="请输入技术安排人"
32
+          clearable
33
+          @keyup.enter.native="handleQuery"
34
+        />
35
+      </el-form-item>
36
+      <el-form-item label="技术安排意见" prop="planComment">
37
+        <el-input
38
+          v-model="queryParams.planComment"
39
+          placeholder="请输入技术安排意见"
40
+          clearable
41
+          @keyup.enter.native="handleQuery"
42
+        />
43
+      </el-form-item>
44
+      <el-form-item label="质量检查员" prop="qualityInspector">
45
+        <el-input
46
+          v-model="queryParams.qualityInspector"
47
+          placeholder="请输入质量检查员"
48
+          clearable
49
+          @keyup.enter.native="handleQuery"
50
+        />
51
+      </el-form-item>
52
+      <el-form-item label="技术安排时间" prop="technicalTime">
53
+        <el-date-picker clearable
54
+          v-model="queryParams.technicalTime"
55
+          type="date"
56
+          value-format="yyyy-MM-dd"
57
+          placeholder="请选择技术安排时间">
58
+        </el-date-picker>
59
+      </el-form-item>
60
+      <el-form-item label="技术方案" prop="technicalDocument">
61
+        <el-input
62
+          v-model="queryParams.technicalDocument"
63
+          placeholder="请输入技术方案"
64
+          clearable
65
+          @keyup.enter.native="handleQuery"
66
+        />
67
+      </el-form-item>
68
+      <el-form-item label="方案说明" prop="designDescription">
69
+        <el-input
70
+          v-model="queryParams.designDescription"
71
+          placeholder="请输入方案说明"
72
+          clearable
73
+          @keyup.enter.native="handleQuery"
74
+        />
75
+      </el-form-item>
76
+      <el-form-item label="技术审核意见" prop="technicalComment">
77
+        <el-input
78
+          v-model="queryParams.technicalComment"
79
+          placeholder="请输入技术审核意见"
80
+          clearable
81
+          @keyup.enter.native="handleQuery"
82
+        />
83
+      </el-form-item>
84
+      <el-form-item label="总工审核意见" prop="manageComment">
85
+        <el-input
86
+          v-model="queryParams.manageComment"
87
+          placeholder="请输入总工审核意见"
88
+          clearable
89
+          @keyup.enter.native="handleQuery"
90
+        />
91
+      </el-form-item>
92
+      <el-form-item label="方案上传时间" prop="technicalUploadTime">
93
+        <el-date-picker clearable
94
+          v-model="queryParams.technicalUploadTime"
95
+          type="date"
96
+          value-format="yyyy-MM-dd"
97
+          placeholder="请选择方案上传时间">
98
+        </el-date-picker>
99
+      </el-form-item>
100
+      <el-form-item label="技术审核时间" prop="techApprovalTime">
101
+        <el-date-picker clearable
102
+          v-model="queryParams.techApprovalTime"
103
+          type="date"
104
+          value-format="yyyy-MM-dd"
105
+          placeholder="请选择技术审核时间">
106
+        </el-date-picker>
107
+      </el-form-item>
108
+      <el-form-item label="总工审核时间" prop="manageApprovalTime">
109
+        <el-date-picker clearable
110
+          v-model="queryParams.manageApprovalTime"
111
+          type="date"
112
+          value-format="yyyy-MM-dd"
113
+          placeholder="请选择总工审核时间">
114
+        </el-date-picker>
115
+      </el-form-item>
116
+      <el-form-item>
117
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
118
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
119
+      </el-form-item>
120
+    </el-form>
121
+
122
+    <el-row :gutter="10" class="mb8">
123
+      <el-col :span="1.5">
124
+        <el-button
125
+          type="primary"
126
+          plain
127
+          icon="el-icon-plus"
128
+          size="mini"
129
+          @click="handleAdd"
130
+          v-hasPermi="['oa:technical:add']"
131
+        >新增</el-button>
132
+      </el-col>
133
+      <el-col :span="1.5">
134
+        <el-button
135
+          type="success"
136
+          plain
137
+          icon="el-icon-edit"
138
+          size="mini"
139
+          :disabled="single"
140
+          @click="handleUpdate"
141
+          v-hasPermi="['oa:technical:edit']"
142
+        >修改</el-button>
143
+      </el-col>
144
+      <el-col :span="1.5">
145
+        <el-button
146
+          type="danger"
147
+          plain
148
+          icon="el-icon-delete"
149
+          size="mini"
150
+          :disabled="multiple"
151
+          @click="handleDelete"
152
+          v-hasPermi="['oa:technical:remove']"
153
+        >删除</el-button>
154
+      </el-col>
155
+      <el-col :span="1.5">
156
+        <el-button
157
+          type="warning"
158
+          plain
159
+          icon="el-icon-download"
160
+          size="mini"
161
+          @click="handleExport"
162
+          v-hasPermi="['oa:technical:export']"
163
+        >导出</el-button>
164
+      </el-col>
165
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
166
+    </el-row>
167
+
168
+    <el-table v-loading="loading" :data="technicalList" @selection-change="handleSelectionChange">
169
+      <el-table-column type="selection" width="55" align="center" />
170
+      <el-table-column label="项目id" align="center" prop="technicalId" />
171
+      <el-table-column label="项目id" align="center" prop="projectId" />
172
+      <el-table-column label="技术负责人" align="center" prop="technicalDirector" />
173
+      <el-table-column label="技术设计人" align="center" prop="technicalDesigner" />
174
+      <el-table-column label="技术安排人" align="center" prop="technicalPlanner" />
175
+      <el-table-column label="技术安排意见" align="center" prop="planComment" />
176
+      <el-table-column label="质量检查员" align="center" prop="qualityInspector" />
177
+      <el-table-column label="技术安排时间" align="center" prop="technicalTime" width="180">
178
+        <template slot-scope="scope">
179
+          <span>{{ parseTime(scope.row.technicalTime, '{y}-{m}-{d}') }}</span>
180
+        </template>
181
+      </el-table-column>
182
+      <el-table-column label="技术方案" align="center" prop="technicalDocument" />
183
+      <el-table-column label="方案说明" align="center" prop="designDescription" />
184
+      <el-table-column label="技术审核意见" align="center" prop="technicalComment" />
185
+      <el-table-column label="总工审核意见" align="center" prop="manageComment" />
186
+      <el-table-column label="方案上传时间" align="center" prop="technicalUploadTime" width="180">
187
+        <template slot-scope="scope">
188
+          <span>{{ parseTime(scope.row.technicalUploadTime, '{y}-{m}-{d}') }}</span>
189
+        </template>
190
+      </el-table-column>
191
+      <el-table-column label="技术审核时间" align="center" prop="techApprovalTime" width="180">
192
+        <template slot-scope="scope">
193
+          <span>{{ parseTime(scope.row.techApprovalTime, '{y}-{m}-{d}') }}</span>
194
+        </template>
195
+      </el-table-column>
196
+      <el-table-column label="总工审核时间" align="center" prop="manageApprovalTime" width="180">
197
+        <template slot-scope="scope">
198
+          <span>{{ parseTime(scope.row.manageApprovalTime, '{y}-{m}-{d}') }}</span>
199
+        </template>
200
+      </el-table-column>
201
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
202
+        <template slot-scope="scope">
203
+          <el-button
204
+            size="mini"
205
+            type="text"
206
+            icon="el-icon-edit"
207
+            @click="handleUpdate(scope.row)"
208
+            v-hasPermi="['oa:technical:edit']"
209
+          >修改</el-button>
210
+          <el-button
211
+            size="mini"
212
+            type="text"
213
+            icon="el-icon-delete"
214
+            @click="handleDelete(scope.row)"
215
+            v-hasPermi="['oa:technical:remove']"
216
+          >删除</el-button>
217
+        </template>
218
+      </el-table-column>
219
+    </el-table>
220
+    
221
+    <pagination
222
+      v-show="total>0"
223
+      :total="total"
224
+      :page.sync="queryParams.pageNum"
225
+      :limit.sync="queryParams.pageSize"
226
+      @pagination="getList"
227
+    />
228
+
229
+    <!-- 添加或修改cmc技术交底对话框 -->
230
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
231
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
232
+        <el-form-item label="项目id" prop="projectId">
233
+          <el-input v-model="form.projectId" placeholder="请输入项目id" />
234
+        </el-form-item>
235
+        <el-form-item label="技术负责人" prop="technicalDirector">
236
+          <el-input v-model="form.technicalDirector" placeholder="请输入技术负责人" />
237
+        </el-form-item>
238
+        <el-form-item label="技术设计人" prop="technicalDesigner">
239
+          <el-input v-model="form.technicalDesigner" placeholder="请输入技术设计人" />
240
+        </el-form-item>
241
+        <el-form-item label="技术安排人" prop="technicalPlanner">
242
+          <el-input v-model="form.technicalPlanner" placeholder="请输入技术安排人" />
243
+        </el-form-item>
244
+        <el-form-item label="技术安排意见" prop="planComment">
245
+          <el-input v-model="form.planComment" placeholder="请输入技术安排意见" />
246
+        </el-form-item>
247
+        <el-form-item label="质量检查员" prop="qualityInspector">
248
+          <el-input v-model="form.qualityInspector" placeholder="请输入质量检查员" />
249
+        </el-form-item>
250
+        <el-form-item label="技术安排时间" prop="technicalTime">
251
+          <el-date-picker clearable
252
+            v-model="form.technicalTime"
253
+            type="date"
254
+            value-format="yyyy-MM-dd"
255
+            placeholder="请选择技术安排时间">
256
+          </el-date-picker>
257
+        </el-form-item>
258
+        <el-form-item label="技术方案" prop="technicalDocument">
259
+          <el-input v-model="form.technicalDocument" placeholder="请输入技术方案" />
260
+        </el-form-item>
261
+        <el-form-item label="方案说明" prop="designDescription">
262
+          <el-input v-model="form.designDescription" placeholder="请输入方案说明" />
263
+        </el-form-item>
264
+        <el-form-item label="技术审核意见" prop="technicalComment">
265
+          <el-input v-model="form.technicalComment" placeholder="请输入技术审核意见" />
266
+        </el-form-item>
267
+        <el-form-item label="总工审核意见" prop="manageComment">
268
+          <el-input v-model="form.manageComment" placeholder="请输入总工审核意见" />
269
+        </el-form-item>
270
+        <el-form-item label="方案上传时间" prop="technicalUploadTime">
271
+          <el-date-picker clearable
272
+            v-model="form.technicalUploadTime"
273
+            type="date"
274
+            value-format="yyyy-MM-dd"
275
+            placeholder="请选择方案上传时间">
276
+          </el-date-picker>
277
+        </el-form-item>
278
+        <el-form-item label="技术审核时间" prop="techApprovalTime">
279
+          <el-date-picker clearable
280
+            v-model="form.techApprovalTime"
281
+            type="date"
282
+            value-format="yyyy-MM-dd"
283
+            placeholder="请选择技术审核时间">
284
+          </el-date-picker>
285
+        </el-form-item>
286
+        <el-form-item label="总工审核时间" prop="manageApprovalTime">
287
+          <el-date-picker clearable
288
+            v-model="form.manageApprovalTime"
289
+            type="date"
290
+            value-format="yyyy-MM-dd"
291
+            placeholder="请选择总工审核时间">
292
+          </el-date-picker>
293
+        </el-form-item>
294
+      </el-form>
295
+      <div slot="footer" class="dialog-footer">
296
+        <el-button type="primary" @click="submitForm">确 定</el-button>
297
+        <el-button @click="cancel">取 消</el-button>
298
+      </div>
299
+    </el-dialog>
300
+  </div>
301
+</template>
302
+
303
+<script>
304
+import { listTechnical, getTechnical, delTechnical, addTechnical, updateTechnical } from "@/api/oa/technical/technical";
305
+
306
+export default {
307
+  name: "Technical",
308
+  data() {
309
+    return {
310
+      // 遮罩层
311
+      loading: true,
312
+      // 选中数组
313
+      ids: [],
314
+      // 非单个禁用
315
+      single: true,
316
+      // 非多个禁用
317
+      multiple: true,
318
+      // 显示搜索条件
319
+      showSearch: true,
320
+      // 总条数
321
+      total: 0,
322
+      // cmc技术交底表格数据
323
+      technicalList: [],
324
+      // 弹出层标题
325
+      title: "",
326
+      // 是否显示弹出层
327
+      open: false,
328
+      // 查询参数
329
+      queryParams: {
330
+        pageNum: 1,
331
+        pageSize: 10,
332
+        projectId: null,
333
+        technicalDirector: null,
334
+        technicalDesigner: null,
335
+        technicalPlanner: null,
336
+        planComment: null,
337
+        qualityInspector: null,
338
+        technicalTime: null,
339
+        technicalDocument: null,
340
+        designDescription: null,
341
+        technicalComment: null,
342
+        manageComment: null,
343
+        technicalUploadTime: null,
344
+        techApprovalTime: null,
345
+        manageApprovalTime: null
346
+      },
347
+      // 表单参数
348
+      form: {},
349
+      // 表单校验
350
+      rules: {
351
+      }
352
+    };
353
+  },
354
+  created() {
355
+    this.getList();
356
+  },
357
+  methods: {
358
+    /** 查询cmc技术交底列表 */
359
+    getList() {
360
+      this.loading = true;
361
+      listTechnical(this.queryParams).then(response => {
362
+        this.technicalList = response.rows;
363
+        this.total = response.total;
364
+        this.loading = false;
365
+      });
366
+    },
367
+    // 取消按钮
368
+    cancel() {
369
+      this.open = false;
370
+      this.reset();
371
+    },
372
+    // 表单重置
373
+    reset() {
374
+      this.form = {
375
+        technicalId: null,
376
+        projectId: null,
377
+        technicalDirector: null,
378
+        technicalDesigner: null,
379
+        technicalPlanner: null,
380
+        planComment: null,
381
+        qualityInspector: null,
382
+        technicalTime: null,
383
+        technicalDocument: null,
384
+        designDescription: null,
385
+        technicalComment: null,
386
+        manageComment: null,
387
+        technicalUploadTime: null,
388
+        techApprovalTime: null,
389
+        manageApprovalTime: null
390
+      };
391
+      this.resetForm("form");
392
+    },
393
+    /** 搜索按钮操作 */
394
+    handleQuery() {
395
+      this.queryParams.pageNum = 1;
396
+      this.getList();
397
+    },
398
+    /** 重置按钮操作 */
399
+    resetQuery() {
400
+      this.resetForm("queryForm");
401
+      this.handleQuery();
402
+    },
403
+    // 多选框选中数据
404
+    handleSelectionChange(selection) {
405
+      this.ids = selection.map(item => item.technicalId)
406
+      this.single = selection.length!==1
407
+      this.multiple = !selection.length
408
+    },
409
+    /** 新增按钮操作 */
410
+    handleAdd() {
411
+      this.reset();
412
+      this.open = true;
413
+      this.title = "添加cmc技术交底";
414
+    },
415
+    /** 修改按钮操作 */
416
+    handleUpdate(row) {
417
+      this.reset();
418
+      const technicalId = row.technicalId || this.ids
419
+      getTechnical(technicalId).then(response => {
420
+        this.form = response.data;
421
+        this.open = true;
422
+        this.title = "修改cmc技术交底";
423
+      });
424
+    },
425
+    /** 提交按钮 */
426
+    submitForm() {
427
+      this.$refs["form"].validate(valid => {
428
+        if (valid) {
429
+          if (this.form.technicalId != null) {
430
+            updateTechnical(this.form).then(response => {
431
+              this.$modal.msgSuccess("修改成功");
432
+              this.open = false;
433
+              this.getList();
434
+            });
435
+          } else {
436
+            addTechnical(this.form).then(response => {
437
+              this.$modal.msgSuccess("新增成功");
438
+              this.open = false;
439
+              this.getList();
440
+            });
441
+          }
442
+        }
443
+      });
444
+    },
445
+    /** 删除按钮操作 */
446
+    handleDelete(row) {
447
+      const technicalIds = row.technicalId || this.ids;
448
+      this.$modal.confirm('是否确认删除cmc技术交底编号为"' + technicalIds + '"的数据项?').then(function() {
449
+        return delTechnical(technicalIds);
450
+      }).then(() => {
451
+        this.getList();
452
+        this.$modal.msgSuccess("删除成功");
453
+      }).catch(() => {});
454
+    },
455
+    /** 导出按钮操作 */
456
+    handleExport() {
457
+      this.download('oa/technical/export', {
458
+        ...this.queryParams
459
+      }, `technical_${new Date().getTime()}.xlsx`)
460
+    }
461
+  }
462
+};
463
+</script>

正在加载...
取消
保存