浏览代码

我的、待办、已办项目名称、合同名称

lamphua 9 个月前
父节点
当前提交
85faa76c53

+ 17
- 8
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcCarApprovalController.java 查看文件

176
                 CmcProject cmcProject = new CmcProject();
176
                 CmcProject cmcProject = new CmcProject();
177
                 cmcProject.setProjectId(formDataJson.getString("projectId"));
177
                 cmcProject.setProjectId(formDataJson.getString("projectId"));
178
                 CmcProject project = cmcProjectService.selectCmcProjectByProjectId(cmcProject.getProjectId());
178
                 CmcProject project = cmcProjectService.selectCmcProjectByProjectId(cmcProject.getProjectId());
179
-                String[] projectCars = project.getCars().split(",");
180
-                String[] cars = carString.split(",");
181
-                Collection union = CollectionUtils.union(Arrays.asList(projectCars), Arrays.asList(cars));
182
-                project.setCars(String.join(",",union));
179
+                if (project.getCars() != null) {
180
+                    String[] projectCars = project.getCars().split(",");
181
+                    String[] cars = carString.split(",");
182
+                    Collection union = CollectionUtils.union(Arrays.asList(projectCars), Arrays.asList(cars));
183
+                    project.setCars(String.join(",",union));
184
+                }
185
+                else
186
+                    project.setCars(carString);
183
                 cmcProjectService.updateCmcProject(project);
187
                 cmcProjectService.updateCmcProject(project);
184
             }
188
             }
185
             String[] cars = carString.split(",");
189
             String[] cars = carString.split(",");
197
                 CmcProject cmcProject = new CmcProject();
201
                 CmcProject cmcProject = new CmcProject();
198
                 cmcProject.setProjectId(formDataJson.getString("projectId"));
202
                 cmcProject.setProjectId(formDataJson.getString("projectId"));
199
                 CmcProject project = cmcProjectService.selectCmcProjectByProjectId(cmcProject.getProjectId());
203
                 CmcProject project = cmcProjectService.selectCmcProjectByProjectId(cmcProject.getProjectId());
200
-                String[] projectDrivers = project.getDrivers().split(",");
201
-                String[] drivers = formDataJson.getString("drivers").substring(1, formDataJson.getString("drivers").length() - 1).split(",");
202
-                Collection union = CollectionUtils.union(Arrays.asList(projectDrivers), Arrays.asList(drivers));
203
-                project.setDrivers(String.join(",",union));
204
+                String driverString = formDataJson.getString("drivers").substring(1, formDataJson.getString("drivers").length() - 1);
205
+                if (project.getDrivers() != null) {
206
+                    String[] projectDrivers = project.getDrivers().split(",");
207
+                    String[] drivers = driverString.split(",");
208
+                    Collection union = CollectionUtils.union(Arrays.asList(projectDrivers), Arrays.asList(drivers));
209
+                    project.setDrivers(String.join(",", union));
210
+                }
211
+                else
212
+                    project.setDrivers(driverString);
204
                 cmcProjectService.updateCmcProject(project);
213
                 cmcProjectService.updateCmcProject(project);
205
             }
214
             }
206
         }
215
         }

+ 8
- 4
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcDeviceApprovalController.java 查看文件

150
                 CmcProject cmcProject = new CmcProject();
150
                 CmcProject cmcProject = new CmcProject();
151
                 cmcProject.setProjectId(formDataJson.getString("projectId"));
151
                 cmcProject.setProjectId(formDataJson.getString("projectId"));
152
                 CmcProject project = cmcProjectService.selectCmcProjectByProjectId(cmcProject.getProjectId());
152
                 CmcProject project = cmcProjectService.selectCmcProjectByProjectId(cmcProject.getProjectId());
153
-                String[] projectDevices = project.getDevices().split(",");
154
-                String[] devices = formDataJson.getString("devices").substring(1, formDataJson.getString("devices").length() - 1).split(",");
155
-                Collection union = CollectionUtils.union(Arrays.asList(projectDevices), Arrays.asList(devices));
156
-                project.setDevices(String.join(",",union));
153
+                if (project.getDevices() != null) {
154
+                    String[] projectDevices = project.getDevices().split(",");
155
+                    String[] devices = deviceString.split(",");
156
+                    Collection union = CollectionUtils.union(Arrays.asList(projectDevices), Arrays.asList(devices));
157
+                    project.setDevices(String.join(",", union));
158
+                }
159
+                else
160
+                    project.setDevices(deviceString);
157
                 cmcProjectService.updateCmcProject(project);
161
                 cmcProjectService.updateCmcProject(project);
158
             }
162
             }
159
             String[] devices = deviceString.split(",");
163
             String[] devices = deviceString.split(",");

+ 2
- 2
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcProjectChangeController.java 查看文件

84
      * 获取cmc项目变更详细信息
84
      * 获取cmc项目变更详细信息
85
      */
85
      */
86
     @GetMapping(value = "/{changeId}")
86
     @GetMapping(value = "/{changeId}")
87
-    public AjaxResult getInfo(@PathVariable("changeId") Long changeId)
87
+    public AjaxResult getInfo(@PathVariable("changeId") String changeId)
88
     {
88
     {
89
         return success(cmcProjectChangeService.selectCmcProjectChangeByChangeId(changeId));
89
         return success(cmcProjectChangeService.selectCmcProjectChangeByChangeId(changeId));
90
     }
90
     }
114
      */
114
      */
115
     @Log(title = "cmc项目变更", businessType = BusinessType.DELETE)
115
     @Log(title = "cmc项目变更", businessType = BusinessType.DELETE)
116
 	@DeleteMapping("/{changeIds}")
116
 	@DeleteMapping("/{changeIds}")
117
-    public AjaxResult remove(@PathVariable Long[] changeIds)
117
+    public AjaxResult remove(@PathVariable String[] changeIds)
118
     {
118
     {
119
         return success(cmcProjectChangeService.deleteCmcProjectChangeByChangeIds(changeIds));
119
         return success(cmcProjectChangeService.deleteCmcProjectChangeByChangeIds(changeIds));
120
     }
120
     }

+ 15
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/domain/dto/FlowTaskDto.java 查看文件

56
     @ApiModelProperty("流程发起人名称")
56
     @ApiModelProperty("流程发起人名称")
57
     private String startUserName;
57
     private String startUserName;
58
 
58
 
59
+    @ApiModelProperty("流程关联项目Id")
60
+    private String projectId;
61
+
62
+    @ApiModelProperty("流程关联项目编号")
63
+    private String projectNumber;
64
+
65
+    @ApiModelProperty("流程关联项目名称")
66
+    private String projectName;
67
+
68
+    @ApiModelProperty("流程关联合同Id")
69
+    private String contractId;
70
+
71
+    @ApiModelProperty("流程关联合同名称")
72
+    private String contractName;
73
+
59
     @ApiModelProperty("流程类型")
74
     @ApiModelProperty("流程类型")
60
     private String category;
75
     private String category;
61
 
76
 

+ 134
- 0
oa-back/ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/FlowTaskServiceImpl.java 查看文件

27
 import com.ruoyi.flowable.service.IFlowTaskService;
27
 import com.ruoyi.flowable.service.IFlowTaskService;
28
 import com.ruoyi.flowable.service.ISysDeployFormService;
28
 import com.ruoyi.flowable.service.ISysDeployFormService;
29
 import com.ruoyi.flowable.service.ISysFormService;
29
 import com.ruoyi.flowable.service.ISysFormService;
30
+import com.ruoyi.oa.service.*;
30
 import com.ruoyi.system.domain.FlowProcDefDto;
31
 import com.ruoyi.system.domain.FlowProcDefDto;
31
 import com.ruoyi.system.domain.FlowVarInst;
32
 import com.ruoyi.system.domain.FlowVarInst;
32
 import com.ruoyi.system.domain.SysForm;
33
 import com.ruoyi.system.domain.SysForm;
92
     @Resource
93
     @Resource
93
     private ISysFormService sysFormService;
94
     private ISysFormService sysFormService;
94
     @Resource
95
     @Resource
96
+    private ICmcContractService cmcContractService;
97
+    @Resource
98
+    private ICmcProjectContractService cmcProjectContractService;
99
+    @Resource
100
+    private ICmcProjectSubContractService cmcProjectSubContractService;
101
+    @Resource
102
+    private ICmcSubContractService cmcSubContractService;
103
+    @Resource
104
+    private ICmcBrandService cmcBrandService;
105
+    @Resource
106
+    private ICmcDepositService cmcDepositService;
107
+    @Resource
108
+    private ICmcArchiveService cmcArchiveService;
109
+    @Resource
110
+    private ICmcSettleService cmcSettleService;
111
+    @Resource
112
+    private ICmcProjectChangeService cmcProjectChangeService;
113
+    @Resource
114
+    private ICmcDeclareService cmcDeclareService;
115
+    @Resource
116
+    private ICmcBorrowService cmcBorrowService;
117
+    @Resource
118
+    private ICmcCarApprovalService cmcCarApprovalService;
119
+    @Resource
120
+    private ICmcDeviceApprovalService cmcDeviceApprovalService;
121
+    @Resource
122
+    private ICmcAssessService cmcAssessService;
123
+    @Resource
124
+    private ICmcProjectService cmcProjectService;
125
+    @Resource
126
+    private ICmcTenderService cmcTenderService;
127
+    @Resource
128
+    private ICmcSafeService cmcSafeService;
129
+    @Resource
130
+    private ICmcTechnicalService cmcTechnicalService;
131
+    @Resource
132
+    private ICmcTechnicalPlanService cmcTechnicalPlanService;
133
+    @Resource
134
+    private ICmcBudgetService cmcBudgetService;
135
+    @Resource
95
     private FlowVarInstMapper flowVarInstMapper;
136
     private FlowVarInstMapper flowVarInstMapper;
96
     @Resource
137
     @Resource
97
     private FlowDeployMapper flowDeployMapper;
138
     private FlowDeployMapper flowDeployMapper;
596
                     }
637
                     }
597
                 }
638
                 }
598
             }
639
             }
640
+            if (flowTask.getProcDefName().contains("合同评审")) {
641
+                flowTask.setContractId(flowTask.getProcInsId());
642
+                if (flowTask.getProcDefName().contains("承接"))
643
+                    flowTask.setContractName(cmcContractService.selectCmcContractByContractId(flowTask.getContractId()).getContractName());
644
+                if (flowTask.getProcDefName().contains("分包"))
645
+                    flowTask.setContractName(cmcSubContractService.selectCmcSubContractBySubContractId(flowTask.getContractId()).getSubContractName());
646
+            }
647
+            else {
648
+                flowTask.setProjectId(getFlowProjectId(flowTask));
649
+                if (flowTask.getProjectId() != null) {
650
+                    if (!flowTask.getProcDefName().equals("保证金审批")) {
651
+                        flowTask.setProjectNumber(cmcProjectService.selectCmcProjectByProjectId(flowTask.getProjectId()).getProjectNumber());
652
+                        flowTask.setProjectName(cmcProjectService.selectCmcProjectByProjectId(flowTask.getProjectId()).getProjectName());
653
+                    } else
654
+                        flowTask.setProjectName(cmcTenderService.selectCmcTenderByTenderId(flowTask.getProjectId()).getProjectName());
655
+                }
656
+            }
599
             flowList.add(flowTask);
657
             flowList.add(flowTask);
600
         }
658
         }
601
         page.setRecords(flowList);
659
         page.setRecords(flowList);
840
             flowTask.setStartUserId(startUser.getUserId().toString());
898
             flowTask.setStartUserId(startUser.getUserId().toString());
841
             flowTask.setStartUserName(startUser.getNickName());
899
             flowTask.setStartUserName(startUser.getNickName());
842
             flowTask.setStartDeptName(Objects.nonNull(startUser.getDept()) ? startUser.getDept().getDeptName() : "");
900
             flowTask.setStartDeptName(Objects.nonNull(startUser.getDept()) ? startUser.getDept().getDeptName() : "");
901
+            if (flowTask.getProcDefName().contains("合同评审")) {
902
+                flowTask.setContractId(flowTask.getProcInsId());
903
+                if (flowTask.getProcDefName().contains("承接"))
904
+                    flowTask.setContractName(cmcContractService.selectCmcContractByContractId(flowTask.getContractId()).getContractName());
905
+                if (flowTask.getProcDefName().contains("分包"))
906
+                    flowTask.setContractName(cmcSubContractService.selectCmcSubContractBySubContractId(flowTask.getContractId()).getSubContractName());
907
+            }
908
+            else {
909
+                flowTask.setProjectId(getFlowProjectId(flowTask));
910
+                if (flowTask.getProjectId() != null) {
911
+                    if (!flowTask.getProcDefName().equals("保证金审批")) {
912
+                        flowTask.setProjectNumber(cmcProjectService.selectCmcProjectByProjectId(flowTask.getProjectId()).getProjectNumber());
913
+                        flowTask.setProjectName(cmcProjectService.selectCmcProjectByProjectId(flowTask.getProjectId()).getProjectName());
914
+                    } else
915
+                        flowTask.setProjectName(cmcTenderService.selectCmcTenderByTenderId(flowTask.getProjectId()).getProjectName());
916
+                }
917
+            }
843
             flowList.add(flowTask);
918
             flowList.add(flowTask);
844
         }
919
         }
845
 
920
 
900
             flowTask.setStartUserName(startUser.getNickName());
975
             flowTask.setStartUserName(startUser.getNickName());
901
             flowTask.setStartDeptName(startUser.getDept().getDeptName());
976
             flowTask.setStartDeptName(startUser.getDept().getDeptName());
902
             flowTask.setAssigneeId(Long.parseLong(histTask.getAssignee()));
977
             flowTask.setAssigneeId(Long.parseLong(histTask.getAssignee()));
978
+            if (flowTask.getProcDefName().contains("合同评审")) {
979
+                flowTask.setContractId(flowTask.getProcInsId());
980
+                if (flowTask.getProcDefName().contains("承接"))
981
+                    flowTask.setContractName(cmcContractService.selectCmcContractByContractId(flowTask.getContractId()).getContractName());
982
+                if (flowTask.getProcDefName().contains("分包"))
983
+                    flowTask.setContractName(cmcSubContractService.selectCmcSubContractBySubContractId(flowTask.getContractId()).getSubContractName());
984
+            }
985
+            else {
986
+                flowTask.setProjectId(getFlowProjectId(flowTask));
987
+                if (flowTask.getProjectId() != null) {
988
+                    if (!flowTask.getProcDefName().equals("保证金审批")) {
989
+                        flowTask.setProjectNumber(cmcProjectService.selectCmcProjectByProjectId(flowTask.getProjectId()).getProjectNumber());
990
+                        flowTask.setProjectName(cmcProjectService.selectCmcProjectByProjectId(flowTask.getProjectId()).getProjectName());
991
+                    } else
992
+                        flowTask.setProjectName(cmcTenderService.selectCmcTenderByTenderId(flowTask.getProjectId()).getProjectName());
993
+                }
994
+            }
903
             hisTaskList.add(flowTask);
995
             hisTaskList.add(flowTask);
904
         }
996
         }
905
         page.setTotal(taskInstanceQuery.count());
997
         page.setTotal(taskInstanceQuery.count());
1517
             return 0 + "秒";
1609
             return 0 + "秒";
1518
         }
1610
         }
1519
     }
1611
     }
1612
+
1613
+    /**
1614
+     * 流程项目id
1615
+     *
1616
+     * @param flowTaskDto
1617
+     * @return
1618
+     */
1619
+    private String getFlowProjectId(FlowTaskDto flowTaskDto) {
1620
+        String projectId = "";
1621
+        String formId = flowVarInstMapper.selectVarByProcInsId(flowTaskDto.getProcInsId()).getText();
1622
+        if (flowTaskDto.getProcDefName().equals("品牌项目支付"))
1623
+            projectId = cmcBrandService.selectCmcBrandByBrandId(formId).getProjectId();
1624
+        if (flowTaskDto.getProcDefName().equals("项目流转"))
1625
+            projectId = formId;
1626
+        if (flowTaskDto.getProcDefName().equals("项目预算"))
1627
+            projectId = cmcBudgetService.selectCmcBudgetByBudgetId(formId).getProjectId();
1628
+        if (flowTaskDto.getProcDefName().equals("技术方案"))
1629
+            projectId = formId;
1630
+        if (flowTaskDto.getProcDefName().equals("安全交底"))
1631
+            projectId = formId;
1632
+        if (flowTaskDto.getProcDefName().equals("技术交底"))
1633
+            projectId = cmcTechnicalService.selectCmcTechnicalByTechnicalId(formId).getProjectId();
1634
+        if (flowTaskDto.getProcDefName().equals("成果归档"))
1635
+            projectId = cmcArchiveService.selectCmcArchiveByArchiveId(formId).getProjectId();
1636
+        if (flowTaskDto.getProcDefName().contains("结算"))
1637
+            projectId = cmcSettleService.selectCmcSettleBySettleId(formId).getProjectId();
1638
+        if (flowTaskDto.getProcDefName().equals("项目变更"))
1639
+            projectId = cmcProjectChangeService.selectCmcProjectChangeByChangeId(formId).getProjectId();
1640
+        if (flowTaskDto.getProcDefName().equals("工作填报"))
1641
+            projectId = cmcDeclareService.selectCmcDeclareByFormId(formId).getProjectId();
1642
+        if (flowTaskDto.getProcDefName().equals("借款审批"))
1643
+            projectId = cmcBorrowService.selectCmcBorrowByBorrowId(formId).getProjectId();
1644
+        if (flowTaskDto.getProcDefName().equals("用车审批"))
1645
+            projectId = cmcCarApprovalService.selectCmcCarApprovalByCarApplyId(formId).getProjectId();
1646
+        if (flowTaskDto.getProcDefName().equals("设备审批"))
1647
+            projectId = cmcDeviceApprovalService.selectCmcDeviceApprovalByDeviceApplyId(formId).getProjectId();
1648
+        if (flowTaskDto.getProcDefName().contains("考核"))
1649
+            projectId = cmcAssessService.selectCmcAssessByAssessId(formId).getProjectId();
1650
+        if (flowTaskDto.getProcDefName().equals("保证金评审"))
1651
+            projectId = cmcDepositService.selectCmcDepositByDepositId(formId).getTenderId().toString();
1652
+        return projectId;
1653
+    }
1520
 }
1654
 }

+ 5
- 5
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcDeclare.java 查看文件

35
     private Long userId;
35
     private Long userId;
36
 
36
 
37
     /** 工作类别(内业、外业等) */
37
     /** 工作类别(内业、外业等) */
38
-    @Excel(name = "工作类别", readConverterExp = "内=业、外业等")
38
+    @Excel(name = "工作类别")
39
     private String workType;
39
     private String workType;
40
 
40
 
41
     /** 工作项目 */
41
     /** 工作项目 */
43
     private String workItem;
43
     private String workItem;
44
 
44
 
45
     /** 工作内容(每日工作日志) */
45
     /** 工作内容(每日工作日志) */
46
-    @Excel(name = "工作内容", readConverterExp = "每=日工作日志")
46
+    @Excel(name = "工作内容")
47
     private String workContent;
47
     private String workContent;
48
 
48
 
49
     /** 工天 */
49
     /** 工天 */
59
     private String coefficient;
59
     private String coefficient;
60
 
60
 
61
     /** 一审状态(0-未审核,1已审核) */
61
     /** 一审状态(0-未审核,1已审核) */
62
-    @Excel(name = "一审状态", readConverterExp = "0=-未审核,1已审核")
62
+    @Excel(name = "一审状态", readConverterExp = "0=未审核,1=已审核")
63
     private String checkStatus;
63
     private String checkStatus;
64
 
64
 
65
     /** 二审状态(0-未审核,1已审核) */
65
     /** 二审状态(0-未审核,1已审核) */
66
-    @Excel(name = "二审状态", readConverterExp = "0=-未审核,1已审核")
66
+    @Excel(name = "二审状态", readConverterExp = "0=未审核,1=已审核")
67
     private String auditStatus;
67
     private String auditStatus;
68
 
68
 
69
     /** 填报时间 */
69
     /** 填报时间 */
72
     private Date submitTime;
72
     private Date submitTime;
73
 
73
 
74
     /** 确认状态 */
74
     /** 确认状态 */
75
-    @Excel(name = "确认状态")
75
+    @Excel(name = "确认状态", readConverterExp = "0=未确认,1=已确认")
76
     private String confirmStatus;
76
     private String confirmStatus;
77
 
77
 
78
     private SysUser user;
78
     private SysUser user;

+ 3
- 3
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcProjectChangeMapper.java 查看文件

17
      * @param changeId cmc项目变更主键
17
      * @param changeId cmc项目变更主键
18
      * @return cmc项目变更
18
      * @return cmc项目变更
19
      */
19
      */
20
-    public CmcProjectChange selectCmcProjectChangeByChangeId(Long changeId);
20
+    public CmcProjectChange selectCmcProjectChangeByChangeId(String changeId);
21
 
21
 
22
     /**
22
     /**
23
      * 查询cmc项目变更列表
23
      * 查询cmc项目变更列表
49
      * @param changeId cmc项目变更主键
49
      * @param changeId cmc项目变更主键
50
      * @return 结果
50
      * @return 结果
51
      */
51
      */
52
-    public int deleteCmcProjectChangeByChangeId(Long changeId);
52
+    public int deleteCmcProjectChangeByChangeId(String changeId);
53
 
53
 
54
     /**
54
     /**
55
      * 批量删除cmc项目变更
55
      * 批量删除cmc项目变更
57
      * @param changeIds 需要删除的数据主键集合
57
      * @param changeIds 需要删除的数据主键集合
58
      * @return 结果
58
      * @return 结果
59
      */
59
      */
60
-    public int deleteCmcProjectChangeByChangeIds(Long[] changeIds);
60
+    public int deleteCmcProjectChangeByChangeIds(String[] changeIds);
61
 }
61
 }

+ 3
- 3
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcProjectChangeService.java 查看文件

17
      * @param changeId cmc项目变更主键
17
      * @param changeId cmc项目变更主键
18
      * @return cmc项目变更
18
      * @return cmc项目变更
19
      */
19
      */
20
-    public CmcProjectChange selectCmcProjectChangeByChangeId(Long changeId);
20
+    public CmcProjectChange selectCmcProjectChangeByChangeId(String changeId);
21
 
21
 
22
     /**
22
     /**
23
      * 查询cmc项目变更列表
23
      * 查询cmc项目变更列表
49
      * @param changeIds 需要删除的cmc项目变更主键集合
49
      * @param changeIds 需要删除的cmc项目变更主键集合
50
      * @return 结果
50
      * @return 结果
51
      */
51
      */
52
-    public int deleteCmcProjectChangeByChangeIds(Long[] changeIds);
52
+    public int deleteCmcProjectChangeByChangeIds(String[] changeIds);
53
 
53
 
54
     /**
54
     /**
55
      * 删除cmc项目变更信息
55
      * 删除cmc项目变更信息
57
      * @param changeId cmc项目变更主键
57
      * @param changeId cmc项目变更主键
58
      * @return 结果
58
      * @return 结果
59
      */
59
      */
60
-    public int deleteCmcProjectChangeByChangeId(Long changeId);
60
+    public int deleteCmcProjectChangeByChangeId(String changeId);
61
 }
61
 }

+ 3
- 3
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcProjectChangeServiceImpl.java 查看文件

26
      * @return cmc项目变更
26
      * @return cmc项目变更
27
      */
27
      */
28
     @Override
28
     @Override
29
-    public CmcProjectChange selectCmcProjectChangeByChangeId(Long changeId)
29
+    public CmcProjectChange selectCmcProjectChangeByChangeId(String changeId)
30
     {
30
     {
31
         return cmcProjectChangeMapper.selectCmcProjectChangeByChangeId(changeId);
31
         return cmcProjectChangeMapper.selectCmcProjectChangeByChangeId(changeId);
32
     }
32
     }
74
      * @return 结果
74
      * @return 结果
75
      */
75
      */
76
     @Override
76
     @Override
77
-    public int deleteCmcProjectChangeByChangeIds(Long[] changeIds)
77
+    public int deleteCmcProjectChangeByChangeIds(String[] changeIds)
78
     {
78
     {
79
         return cmcProjectChangeMapper.deleteCmcProjectChangeByChangeIds(changeIds);
79
         return cmcProjectChangeMapper.deleteCmcProjectChangeByChangeIds(changeIds);
80
     }
80
     }
86
      * @return 结果
86
      * @return 结果
87
      */
87
      */
88
     @Override
88
     @Override
89
-    public int deleteCmcProjectChangeByChangeId(Long changeId)
89
+    public int deleteCmcProjectChangeByChangeId(String changeId)
90
     {
90
     {
91
         return cmcProjectChangeMapper.deleteCmcProjectChangeByChangeId(changeId);
91
         return cmcProjectChangeMapper.deleteCmcProjectChangeByChangeId(changeId);
92
     }
92
     }

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

20
      */
20
      */
21
     public List<FlowVarInst> selectProcInstByVar(String formId);
21
     public List<FlowVarInst> selectProcInstByVar(String formId);
22
 
22
 
23
+    /**
24
+     * 通过流程实例id查询表单id
25
+     *
26
+     * @param procInsId 流程实例id
27
+     * @return 流程变量
28
+     */
29
+    public FlowVarInst selectVarByProcInsId(String procInsId);
30
+
23
 }
31
 }

+ 7
- 0
oa-back/ruoyi-system/src/main/resources/mapper/flowable/FlowVarInstMapper.xml 查看文件

23
         order by CREATE_TIME_ asc
23
         order by CREATE_TIME_ asc
24
     </select>
24
     </select>
25
 
25
 
26
+    <select id="selectVarByProcInsId" parameterType="FlowVarInst" resultMap="FlowVarInstResult">
27
+        <include refid="selectFlowVarInstVo"/>
28
+        <where>
29
+            PROC_INST_ID_ = #{param} and LENGTH(TEXT_) = 19
30
+        </where>
31
+    </select>
32
+
26
 </mapper>
33
 </mapper>

+ 2
- 2
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcProjectChangeMapper.xml 查看文件

53
         order by pc.register_time desc
53
         order by pc.register_time desc
54
     </select>
54
     </select>
55
     
55
     
56
-    <select id="selectCmcProjectChangeByChangeId" parameterType="Long" resultMap="CmcProjectChangeResult">
56
+    <select id="selectCmcProjectChangeByChangeId" parameterType="String" resultMap="CmcProjectChangeResult">
57
         <include refid="selectCmcProjectChangeVo"/>
57
         <include refid="selectCmcProjectChangeVo"/>
58
         where pc.change_id = #{changeId}
58
         where pc.change_id = #{changeId}
59
     </select>
59
     </select>
87
         where change_id = #{changeId}
87
         where change_id = #{changeId}
88
     </update>
88
     </update>
89
 
89
 
90
-    <delete id="deleteCmcProjectChangeByChangeId" parameterType="Long">
90
+    <delete id="deleteCmcProjectChangeByChangeId" parameterType="String">
91
         delete from cmc_project_change where change_id = #{changeId}
91
         delete from cmc_project_change where change_id = #{changeId}
92
     </delete>
92
     </delete>
93
 
93
 

+ 216
- 40
oa-ui/src/views/file/index.vue 查看文件

1
 <!--
1
 <!--
2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-06-21 18:51:49
3
  * @Date: 2024-06-21 18:51:49
4
- * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-01 17:05:09
4
+ * @LastEditors: wrh
5
+ * @LastEditTime: 2024-08-19 11:45:35
6
 -->
6
 -->
7
 <template>
7
 <template>
8
   <div class="warpper-container">
8
   <div class="warpper-container">
10
     <div class="map-container" id="maps" tabindex="0"></div>
10
     <div class="map-container" id="maps" tabindex="0"></div>
11
     <!-- 鼠标移动坐标 -->
11
     <!-- 鼠标移动坐标 -->
12
     <div id="mouse-position"></div>
12
     <div id="mouse-position"></div>
13
+    <!-- 项目信息弹出框 -->
14
+    <info-box :datas="datas" :maps="map" @closePopup="closePopup" @open="openAchiList"></info-box>
13
     <!-- 工具栏列表 -->
15
     <!-- 工具栏列表 -->
14
     <div class="tool-box">
16
     <div class="tool-box">
15
       <div class="item">
17
       <div class="item">
49
           </el-descriptions-item>
51
           </el-descriptions-item>
50
           <el-descriptions-item label="存放地址" width="130px">
52
           <el-descriptions-item label="存放地址" width="130px">
51
             {{ clickFeacture.storageAddress == '' || clickFeacture.storageAddress == null ? '暂无' :
53
             {{ clickFeacture.storageAddress == '' || clickFeacture.storageAddress == null ? '暂无' :
52
-            clickFeacture.storageAddress }}
54
+              clickFeacture.storageAddress }}
53
           </el-descriptions-item>
55
           </el-descriptions-item>
54
         </el-descriptions>
56
         </el-descriptions>
55
 
57
 
98
                   <el-descriptions :column="2">
100
                   <el-descriptions :column="2">
99
                     <el-descriptions-item label="存放地址:" class="desLabel" :span="2">
101
                     <el-descriptions-item label="存放地址:" class="desLabel" :span="2">
100
                       {{ props.row.storageAddress == '' || props.row.storageAddress == undefined ? '暂无' :
102
                       {{ props.row.storageAddress == '' || props.row.storageAddress == undefined ? '暂无' :
101
-            props.row.storageAddress
103
+                        props.row.storageAddress
102
                       }}
104
                       }}
103
                     </el-descriptions-item>
105
                     </el-descriptions-item>
104
                     <el-descriptions-item label="甲方单位:" class="desLabel" :span="2">{{ props.row.partyA.partyAName == ''
106
                     <el-descriptions-item label="甲方单位:" class="desLabel" :span="2">{{ props.row.partyA.partyAName == ''
105
-            ? '暂无' :
106
-            props.row.partyA.partyAName
107
-                      }}</el-descriptions-item>
107
+                      ? '暂无' :
108
+                      props.row.partyA.partyAName
109
+                    }}</el-descriptions-item>
108
                     <el-descriptions-item label="联系人:" class="desLabel">{{ props.row.contactPerson == '' ? '暂无' :
110
                     <el-descriptions-item label="联系人:" class="desLabel">{{ props.row.contactPerson == '' ? '暂无' :
109
-            props.row.contactPerson
110
-                      }}</el-descriptions-item>
111
+                      props.row.contactPerson
112
+                    }}</el-descriptions-item>
111
                     <el-descriptions-item label="联系电话:" class="desLabel">{{ props.row.telephone == '' ? '暂无' :
113
                     <el-descriptions-item label="联系电话:" class="desLabel">{{ props.row.telephone == '' ? '暂无' :
112
-            props.row.telephone
113
-                      }}</el-descriptions-item>
114
+                      props.row.telephone
115
+                    }}</el-descriptions-item>
114
                     <el-descriptions-item label="项目类型:" class="desLabel">{{ props.row.projectType == '' ? '暂无' :
116
                     <el-descriptions-item label="项目类型:" class="desLabel">{{ props.row.projectType == '' ? '暂无' :
115
-            props.row.projectType
116
-                      }}</el-descriptions-item>
117
+                      props.row.projectType
118
+                    }}</el-descriptions-item>
117
                     <el-descriptions-item label="技术负责人:" class="desLabel">{{ props.row.technicalDirector == '' ? '暂无'
119
                     <el-descriptions-item label="技术负责人:" class="desLabel">{{ props.row.technicalDirector == '' ? '暂无'
118
-            :
119
-            getUserName(props.row.technicalDirector)
120
-                      }}</el-descriptions-item>
120
+                      :
121
+                      getUserName(props.row.technicalDirector)
122
+                    }}</el-descriptions-item>
121
                     <el-descriptions-item label="技术设计人:" class="desLabel">{{ props.row.techinicalDesigner == '' ? '暂无'
123
                     <el-descriptions-item label="技术设计人:" class="desLabel">{{ props.row.techinicalDesigner == '' ? '暂无'
122
-            :
123
-            getUserName(props.row.techinicalDesigner)
124
-                      }}</el-descriptions-item>
124
+                      :
125
+                      getUserName(props.row.techinicalDesigner)
126
+                    }}</el-descriptions-item>
125
                     <el-descriptions-item label="承担部门:" class="desLabel">{{ props.row.undertakingSector == '' ? '暂无' :
127
                     <el-descriptions-item label="承担部门:" class="desLabel">{{ props.row.undertakingSector == '' ? '暂无' :
126
-            props.row.undertakingSector
127
-                      }}</el-descriptions-item>
128
+                      props.row.undertakingSector
129
+                    }}</el-descriptions-item>
128
                     <el-descriptions-item label="质量检察员:" class="desLabel">{{ props.row.qualityInspector == '' ? '暂无' :
130
                     <el-descriptions-item label="质量检察员:" class="desLabel">{{ props.row.qualityInspector == '' ? '暂无' :
129
-            getUserNames(props.row.qualityInspector)
130
-                      }}</el-descriptions-item>
131
+                      getUserNames(props.row.qualityInspector)
132
+                    }}</el-descriptions-item>
131
                     <el-descriptions-item label="项目登记时间:" class="desLabel" :span="2">{{ props.row.registrationDate ==
133
                     <el-descriptions-item label="项目登记时间:" class="desLabel" :span="2">{{ props.row.registrationDate ==
132
-            '' ? '暂无' :
133
-            props.row.registrationDate
134
-                      }}</el-descriptions-item>
134
+                      '' ? '暂无' :
135
+                      props.row.registrationDate
136
+                    }}</el-descriptions-item>
135
                     <el-descriptions-item label="项目登记人:" class="desLabel">{{ props.row.projectRegistrant == '' ? '暂无'
137
                     <el-descriptions-item label="项目登记人:" class="desLabel">{{ props.row.projectRegistrant == '' ? '暂无'
136
-            :
137
-            getUserName(props.row.projectRegistrant)
138
-                      }}</el-descriptions-item>
138
+                      :
139
+                      getUserName(props.row.projectRegistrant)
140
+                    }}</el-descriptions-item>
139
                     <el-descriptions-item label="进场时间:" class="desLabel">{{ props.row.approachTime == '' ? '暂无' :
141
                     <el-descriptions-item label="进场时间:" class="desLabel">{{ props.row.approachTime == '' ? '暂无' :
140
-            props.row.approachTime
141
-                      }}</el-descriptions-item>
142
+                      props.row.approachTime
143
+                    }}</el-descriptions-item>
142
                     <el-descriptions-item label="撤场时间:" class="desLabel">{{ props.row.withdrawalTime == '' ? '暂无' :
144
                     <el-descriptions-item label="撤场时间:" class="desLabel">{{ props.row.withdrawalTime == '' ? '暂无' :
143
-            props.row.withdrawalTime
144
-                      }}</el-descriptions-item>
145
+                      props.row.withdrawalTime
146
+                    }}</el-descriptions-item>
145
                     <el-descriptions-item label="项目要求完成时间:" class="desLabel">{{ props.row.requiredCompletionDate == ''
147
                     <el-descriptions-item label="项目要求完成时间:" class="desLabel">{{ props.row.requiredCompletionDate == ''
146
-            ? '暂无' :
147
-            props.row.requiredCompletionDate
148
-                      }}</el-descriptions-item>
148
+                      ? '暂无' :
149
+                      props.row.requiredCompletionDate
150
+                    }}</el-descriptions-item>
149
                   </el-descriptions>
151
                   </el-descriptions>
150
                   <div class="look-achi" @click="lookThisAchi(props.row)">
152
                   <div class="look-achi" @click="lookThisAchi(props.row)">
151
                     查看成果>>
153
                     查看成果>>
168
           <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
170
           <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
169
             :limit.sync="queryParams.pageSize" @pagination="getProjectList" /> -->
171
             :limit.sync="queryParams.pageSize" @pagination="getProjectList" /> -->
170
         </div>
172
         </div>
173
+
174
+        <!-- 成果目录 -->
175
+        <div class="achi-list dialog_wrap" v-if="dialogTableVisible">
176
+          <div class="achi-content">
177
+            <div class="achi-header">
178
+              成果目录
179
+              <el-icon class="close" @click="dialogTableVisible = false">
180
+                <CloseBold />
181
+              </el-icon>
182
+            </div>
183
+            <div class="achi-projectNumber">项目编号:{{ dialogTitle }}</div>
184
+            <el-table :data="achiDialogData" height="400px">
185
+              <el-table-column type="expand">
186
+                <template #default="props">
187
+                  <el-descriptions :column="2" size="small">
188
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
189
+                      label="成果名称:">{{
190
+                        props.row.achiName
191
+                      }}</el-descriptions-item>
192
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
193
+                      label="数据年份:">{{
194
+                        props.row.dataYear }}</el-descriptions-item>
195
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
196
+                      label="成果类型:">{{
197
+                        props.row.resultType }}</el-descriptions-item>
198
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
199
+                      label="文件类型:">{{
200
+                        props.row.fileType }}</el-descriptions-item>
201
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
202
+                      label="工作量:">{{
203
+                        props.row.workLoad }}</el-descriptions-item>
204
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
205
+                      label="单位:">{{
206
+                        props.row.unit }}</el-descriptions-item>
207
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
208
+                      label="大地基准:">{{
209
+                        props.row.geodeticDatum }}</el-descriptions-item>
210
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
211
+                      label="分辨率:">{{
212
+                        props.row.resolution }}</el-descriptions-item>
213
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
214
+                      label="比例尺或等级:">{{ props.row.scaleOrder }}</el-descriptions-item>
215
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
216
+                      label="数据类型:">{{
217
+                        props.row.dataType }}</el-descriptions-item>
218
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
219
+                      label="存放地址:">{{
220
+                        props.row.storageAddress }}</el-descriptions-item>
221
+                    <el-descriptions-item min-width="195px" label-class-name="my-label" class-name="my-content"
222
+                      label="提交时间:">{{
223
+                        props.row.submitDate }}</el-descriptions-item>
224
+                  </el-descriptions>
225
+                </template>
226
+              </el-table-column>
227
+              <el-table-column type="index" label="序号" width="50px" align="center" />
228
+              <el-table-column prop="achiName" label="成果名称" align="center" show-overflow-tooltip />
229
+              <el-table-column prop="dataYear" label="数据年份" align="center" />
230
+            </el-table>
231
+          </div>
232
+        </div>
171
       </div>
233
       </div>
172
     </div>
234
     </div>
173
 
235
 
201
 import { toStringXY, createStringXY, toStringHDMS } from 'ol/coordinate';
263
 import { toStringXY, createStringXY, toStringHDMS } from 'ol/coordinate';
202
 import { Circle, Fill, Stroke, Style, RegularShape, Icon, Text } from 'ol/style';
264
 import { Circle, Fill, Stroke, Style, RegularShape, Icon, Text } from 'ol/style';
203
 import { MousePosition, ScaleLine, defaults as defaultControls } from 'ol/control';
265
 import { MousePosition, ScaleLine, defaults as defaultControls } from 'ol/control';
266
+import { getAchievementByProject, listAchievement } from "@/api/file/achievement";
204
 export default {
267
 export default {
205
   components: { infoBox },
268
   components: { infoBox },
206
   data() {
269
   data() {
234
         selectProjectNumber: "",
297
         selectProjectNumber: "",
235
         type: '',
298
         type: '',
236
       },
299
       },
237
-      seletctedCluters: []
300
+      seletctedCluters: [],
301
+      dialogTitle: '',
302
+      dialogTableVisible: false,
303
+      datas: {
304
+        clickFeacture: {},
305
+        selectFeatures: null,
306
+        selectProjectNumber: "",
307
+        type: '',
308
+        infoData: {}
309
+      }
238
     }
310
     }
239
   },
311
   },
240
   mounted() {
312
   mounted() {
421
       this.popup.setPosition(undefined);
493
       this.popup.setPosition(undefined);
422
     },
494
     },
423
     openAchiList() {
495
     openAchiList() {
424
-
496
+      this.dialogTableVisible = true;
497
+      // let projectId = datas.clickFeacture.id;
498
+      // this.dialogTitle = datas.clickFeacture.projectNumber
499
+      listAchievement({ projectId }).then(res => {
500
+        if (res.total == 0) {
501
+          this.$message.error('暂无成果,请添加');
502
+          this.achiDialogData = [];
503
+        } else {
504
+          this.dialogTableVisible = true;
505
+          this.achiDialogData = res.rows;
506
+        }
507
+      })
425
     },
508
     },
426
     formatCoordinate(fractionDigits) {
509
     formatCoordinate(fractionDigits) {
427
       return (
510
       return (
739
     },
822
     },
740
     handleRowClick() {
823
     handleRowClick() {
741
 
824
 
742
-    }
743
-  },
825
+    },
826
+    lookThisAchi(row) {
827
+      let projectId = row.projectId;
828
+      this.dialogTitle = row.projectNumber;
829
+      listAchievement({ projectId }).then(res => {
830
+        if (res.total == 0) {
831
+          this.$message.error('暂无成果,请添加');
832
+          this.achiDialogData = [];
833
+        } else {
834
+          this.dialogTableVisible = true;
835
+          this.achiDialogData = res.rows;
836
+        }
837
+      })
838
+    },
839
+    // 移动box
840
+    move(e) {
841
+      e.stopPropagation();
842
+      let odiv = e.target; //获取目标元素
843
+      if (odiv.className instanceof SVGAnimatedString) {
844
+        return
845
+      }
846
+      if (odiv.className.includes("dialog_wrap")) {
847
+        //算出鼠标相对元素的位置
848
+        let disX = e.clientX - odiv.offsetLeft;
849
+        let disY = e.clientY - odiv.offsetTop;
850
+        document.onmousemove = (e) => {
851
+          //鼠标按下并移动的事件
852
+          //用鼠标的位置减去鼠标相对元素的位置,得到元素的位置
853
+          let left = e.clientX - disX;
854
+          let top = e.clientY - disY;
855
+
856
+          //绑定元素位置到positionX和positionY上面
857
+          // this.positionX = top;
858
+          // this.positionY = left;
859
+
860
+          //移动当前元素
861
+          odiv.style.left = left + "px";
862
+          odiv.style.top = top + "px";
863
+        };
864
+        document.body.onselectstart = document.body.ondrag = () => { return false }
865
+        document.onmouseup = (e) => {
866
+          document.onmousemove = null;
867
+          document.onmouseup = null;
868
+        };
869
+      } else {
870
+        document.onmousemove = null;
871
+        document.onmouseup = null;
872
+        document.body.onselectstart = document.body.ondrag = () => { return true }
873
+      }
874
+
875
+    },
876
+  }
744
 }
877
 }
745
 </script>
878
 </script>
746
 
879
 
767
   color: #fff;
900
   color: #fff;
768
 }
901
 }
769
 
902
 
903
+.achi-list {
904
+  width: 425px;
905
+  min-height: 300px;
906
+  background-color: #fff;
907
+  position: absolute;
908
+  top: 55px;
909
+  right: 520px;
910
+  padding: 10px;
911
+  border-radius: 4px;
912
+  box-shadow: 0 0 10px rgba($color: #000000, $alpha: 0.5);
913
+  cursor: move;
914
+
915
+  .achi-content {
916
+    cursor: default;
917
+  }
918
+
919
+  .achi-projectNumber {
920
+    padding-left: 20px;
921
+    font-size: 14px;
922
+    font-family: '微软雅黑';
923
+  }
924
+
925
+  .achi-header {
926
+    text-align: center;
927
+    line-height: 40px;
928
+    font-weight: bold;
929
+    font-family: '黑体';
930
+    position: relative;
931
+
932
+    .close {
933
+      position: absolute;
934
+      right: 20px;
935
+      top: 10px;
936
+    }
937
+
938
+    .close:hover {
939
+      color: #409EFF;
940
+      cursor: pointer;
941
+    }
942
+  }
943
+
944
+}
945
+
770
 .tool-box {
946
 .tool-box {
771
   position: absolute;
947
   position: absolute;
772
   top: 60px;
948
   top: 60px;

正在加载...
取消
保存