Commit 8fb9f115ccd9c6f00e66e68294b1d0e786232956
1 parent
26dfe208
m
Showing
24 changed files
with
496 additions
and
391 deletions
trash-activiti/src/main/java/com/trash/activiti/domain/dto/ActTaskDTO.java
| @@ -70,8 +70,9 @@ public class ActTaskDTO | @@ -70,8 +70,9 @@ public class ActTaskDTO | ||
| 70 | public ActTaskDTO() { | 70 | public ActTaskDTO() { |
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | - public ActTaskDTO(ProcessInstance processInstance, Map<String, Object> map,ActWorkflowFormData from) { | 73 | + public ActTaskDTO(ProcessInstance processInstance, Map<String, Object> map,ActWorkflowFormData from,org.activiti.engine.task.Task task) { |
| 74 | this.id = processInstance.getId(); | 74 | this.id = processInstance.getId(); |
| 75 | + this.name = task.getName(); | ||
| 75 | this.instanceName = processInstance.getName(); | 76 | this.instanceName = processInstance.getName(); |
| 76 | this.definitionKey= processInstance.getProcessDefinitionKey(); | 77 | this.definitionKey= processInstance.getProcessDefinitionKey(); |
| 77 | this.businessKey= processInstance.getBusinessKey(); | 78 | this.businessKey= processInstance.getBusinessKey(); |
| @@ -86,6 +87,9 @@ public class ActTaskDTO | @@ -86,6 +87,9 @@ public class ActTaskDTO | ||
| 86 | } catch (Exception e) { | 87 | } catch (Exception e) { |
| 87 | e.printStackTrace(); | 88 | e.printStackTrace(); |
| 88 | } | 89 | } |
| 90 | + | ||
| 91 | + | ||
| 92 | + getPrevNext(task); | ||
| 89 | } | 93 | } |
| 90 | 94 | ||
| 91 | public ActTaskDTO(HistoricProcessInstance processInstance, Map<String, Object> map) { | 95 | public ActTaskDTO(HistoricProcessInstance processInstance, Map<String, Object> map) { |
| @@ -129,6 +133,84 @@ public class ActTaskDTO | @@ -129,6 +133,84 @@ public class ActTaskDTO | ||
| 129 | 133 | ||
| 130 | } | 134 | } |
| 131 | 135 | ||
| 136 | + private void getPrevNext(org.activiti.engine.task.Task et) { | ||
| 137 | + | ||
| 138 | + | ||
| 139 | + long date = new Date().getTime(); | ||
| 140 | + RedisCache cache = SpringUtils.getBean(RedisCache.class); | ||
| 141 | + | ||
| 142 | + String exeId = et.getExecutionId(); | ||
| 143 | + | ||
| 144 | + | ||
| 145 | + Map<String, Object> params= cache.getCacheMap(exeId); | ||
| 146 | + | ||
| 147 | + if(params == null || params.size() == 0){ | ||
| 148 | + params= SpringUtils.getBean(RuntimeService.class).getVariables(exeId); | ||
| 149 | + cache.setCacheMap(exeId, params); | ||
| 150 | + } | ||
| 151 | + | ||
| 152 | + String route = null; | ||
| 153 | + String index = null; | ||
| 154 | + | ||
| 155 | + String key = this.businessKey.split(":")[0]; | ||
| 156 | + | ||
| 157 | + | ||
| 158 | + if(params.get("route")!=null){ | ||
| 159 | + route = params.get("route").toString(); | ||
| 160 | + key += "route"+route; | ||
| 161 | + } | ||
| 162 | + if(params.get("index") != null){ | ||
| 163 | + index = params.get("index").toString(); | ||
| 164 | + key += "index"+index; | ||
| 165 | + } | ||
| 166 | + | ||
| 167 | + List<String> list = cache.getCacheList(key); | ||
| 168 | + if(list.size() > 0){ | ||
| 169 | + | ||
| 170 | + if(list.indexOf(et.getName())>0){ | ||
| 171 | + this.prev = list.get(list.indexOf(et.getName())-1); | ||
| 172 | + } | ||
| 173 | + if(list.size() > (list.indexOf(et.getName())+1)){ | ||
| 174 | + this.next = list.get(list.indexOf(et.getName())+1); | ||
| 175 | + } | ||
| 176 | + return; | ||
| 177 | + } | ||
| 178 | + | ||
| 179 | + | ||
| 180 | + BpmnModel model = SpringUtils.getBean(RepositoryService.class).getBpmnModel(et.getProcessDefinitionId()); | ||
| 181 | + List<org.activiti.bpmn.model.Process> processes = model.getProcesses(); | ||
| 182 | + | ||
| 183 | + List<String> modelList = null; | ||
| 184 | + | ||
| 185 | + for(org.activiti.bpmn.model.Process p:processes){ | ||
| 186 | + Collection<FlowElement> flows = p.getFlowElements(); | ||
| 187 | + | ||
| 188 | + for(FlowElement f:flows){ | ||
| 189 | + if(f instanceof StartEvent){ | ||
| 190 | + | ||
| 191 | + | ||
| 192 | + modelList = getRouteList((StartEvent)f,route,index); | ||
| 193 | + | ||
| 194 | + | ||
| 195 | + break; | ||
| 196 | + | ||
| 197 | + } | ||
| 198 | + | ||
| 199 | + } | ||
| 200 | + } | ||
| 201 | + | ||
| 202 | + | ||
| 203 | + cache.setCacheList(key, modelList); | ||
| 204 | + | ||
| 205 | + if(modelList.indexOf(et.getName())>0){ | ||
| 206 | + this.prev = modelList.get(modelList.indexOf(et.getName())-1); | ||
| 207 | + } | ||
| 208 | + if(modelList.size() > (modelList.indexOf(et.getName())+1)){ | ||
| 209 | + this.next = modelList.get(modelList.indexOf(et.getName())+1); | ||
| 210 | + } | ||
| 211 | + | ||
| 212 | + } | ||
| 213 | + | ||
| 132 | 214 | ||
| 133 | private void getPrevNext(Task task) { | 215 | private void getPrevNext(Task task) { |
| 134 | 216 |
trash-activiti/src/main/java/com/trash/activiti/service/impl/ActTaskServiceImpl.java
| @@ -298,6 +298,7 @@ public class ActTaskServiceImpl implements IActTaskService { | @@ -298,6 +298,7 @@ public class ActTaskServiceImpl implements IActTaskService { | ||
| 298 | ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery().involvedUser(username); | 298 | ProcessInstanceQuery query = runtimeService.createProcessInstanceQuery().involvedUser(username); |
| 299 | 299 | ||
| 300 | 300 | ||
| 301 | + | ||
| 301 | if(name != null) | 302 | if(name != null) |
| 302 | query.processInstanceNameLike("%"+name+"%"); | 303 | query.processInstanceNameLike("%"+name+"%"); |
| 303 | 304 | ||
| @@ -311,11 +312,18 @@ public class ActTaskServiceImpl implements IActTaskService { | @@ -311,11 +312,18 @@ public class ActTaskServiceImpl implements IActTaskService { | ||
| 311 | 312 | ||
| 312 | List<ProcessInstance> processInstanceList = query.list(); | 313 | List<ProcessInstance> processInstanceList = query.list(); |
| 313 | 314 | ||
| 315 | + | ||
| 316 | + | ||
| 314 | list.setTotal(query.count()); | 317 | list.setTotal(query.count()); |
| 315 | 318 | ||
| 316 | processInstanceList = query.listPage((pageNum-1) * pageSize,pageSize); | 319 | processInstanceList = query.listPage((pageNum-1) * pageSize,pageSize); |
| 317 | 320 | ||
| 318 | if (processInstanceList.size() > 0) { | 321 | if (processInstanceList.size() > 0) { |
| 322 | + | ||
| 323 | + List<String> pids = processInstanceList.parallelStream().map(p->p.getId()).collect(Collectors.toList()); | ||
| 324 | + | ||
| 325 | + List<org.activiti.engine.task.Task> tasks = taskService.createTaskQuery().processInstanceIdIn(pids).list(); | ||
| 326 | + | ||
| 319 | 327 | ||
| 320 | Set<String> idString = new HashSet<String>(); | 328 | Set<String> idString = new HashSet<String>(); |
| 321 | for (ProcessInstance pi : processInstanceList) { | 329 | for (ProcessInstance pi : processInstanceList) { |
| @@ -329,12 +337,13 @@ public class ActTaskServiceImpl implements IActTaskService { | @@ -329,12 +337,13 @@ public class ActTaskServiceImpl implements IActTaskService { | ||
| 329 | for (ProcessInstance p : processInstanceList) { | 337 | for (ProcessInstance p : processInstanceList) { |
| 330 | try { | 338 | try { |
| 331 | ActTaskDTO dto = new ActTaskDTO(p, maps.parallelStream().filter(pi -> p.getProcessInstanceId().equals(pi.get("instance_id"))).findAny().get(), | 339 | ActTaskDTO dto = new ActTaskDTO(p, maps.parallelStream().filter(pi -> p.getProcessInstanceId().equals(pi.get("instance_id"))).findAny().get(), |
| 332 | - dataList.parallelStream().filter(pi -> p.getBusinessKey().equals(pi.getBusinessKey())).findAny().get()); | 340 | + dataList.parallelStream().filter(pi -> p.getBusinessKey().equals(pi.getBusinessKey())).findAny().get(), |
| 341 | + tasks.parallelStream().filter(t -> p.getId().equals(t.getProcessInstanceId())).findAny().get()); | ||
| 333 | 342 | ||
| 334 | 343 | ||
| 335 | list.add(dto); | 344 | list.add(dto); |
| 336 | } catch (Exception e) { | 345 | } catch (Exception e) { |
| 337 | - // TODO: handle exception | 346 | + e.printStackTrace(); |
| 338 | } | 347 | } |
| 339 | } | 348 | } |
| 340 | 349 |
trash-ui/src/api/caseOfflineInfo.js
| @@ -5,6 +5,7 @@ import {getArea,} from "@/api/dict"; | @@ -5,6 +5,7 @@ import {getArea,} from "@/api/dict"; | ||
| 5 | import {getToken} from "@/utils/auth"; | 5 | import {getToken} from "@/utils/auth"; |
| 6 | import {listReplyApprovalProcess} from "@/api/casefile/replyApprovalProcess"; | 6 | import {listReplyApprovalProcess} from "@/api/casefile/replyApprovalProcess"; |
| 7 | 7 | ||
| 8 | +import {historyFromData} from '@/api/activiti/historyFormdata' | ||
| 8 | export default { | 9 | export default { |
| 9 | name: "CaseOffline", | 10 | name: "CaseOffline", |
| 10 | props: { | 11 | props: { |
| @@ -148,7 +149,7 @@ export default { | @@ -148,7 +149,7 @@ export default { | ||
| 148 | 149 | ||
| 149 | if (id.length == 2) { | 150 | if (id.length == 2) { |
| 150 | id = id[1]; | 151 | id = id[1]; |
| 151 | - } | 152 | + } |
| 152 | getCaseOffline(id).then(response => { | 153 | getCaseOffline(id).then(response => { |
| 153 | this.form = response.data; | 154 | this.form = response.data; |
| 154 | if (this.form.attach && this.form.attach != "") | 155 | if (this.form.attach && this.form.attach != "") |
| @@ -191,7 +192,18 @@ export default { | @@ -191,7 +192,18 @@ export default { | ||
| 191 | 192 | ||
| 192 | } | 193 | } |
| 193 | }); | 194 | }); |
| 194 | - | 195 | + if(response.data.status == 0){ |
| 196 | + historyFromData(this.workflow + ":" + id).then(response => { | ||
| 197 | + | ||
| 198 | + let obj = response.data[response.data.length-1]; | ||
| 199 | + let data = { | ||
| 200 | + reply:obj.controlValue, | ||
| 201 | + replyPeople:obj.createBy, | ||
| 202 | + }; | ||
| 203 | + | ||
| 204 | + this.replyApprovalProcessList.push(data); | ||
| 205 | + }); | ||
| 206 | + } | ||
| 195 | 207 | ||
| 196 | this.open2 = true; | 208 | this.open2 = true; |
| 197 | }); | 209 | }); |
trash-ui/src/api/caseoffline.js
| @@ -173,8 +173,16 @@ export default { | @@ -173,8 +173,16 @@ export default { | ||
| 173 | }, | 173 | }, |
| 174 | /** 查询线下交办案卷列表 */ | 174 | /** 查询线下交办案卷列表 */ |
| 175 | getList() { | 175 | getList() { |
| 176 | - this.loading = true; | ||
| 177 | - listCaseOffline(this.queryParams).then(response => { | 176 | + this.loading = true; |
| 177 | + let query = {}; | ||
| 178 | + | ||
| 179 | + for(var i in this.queryParams){ | ||
| 180 | + query[i] = this.queryParams[i]; | ||
| 181 | + } | ||
| 182 | + | ||
| 183 | + query.createTime = null; | ||
| 184 | + | ||
| 185 | + listCaseOffline(this.query).then(response => { | ||
| 178 | this.caseOfflineList = response.rows; | 186 | this.caseOfflineList = response.rows; |
| 179 | 187 | ||
| 180 | for(let i in this.caseOfflineList){ | 188 | for(let i in this.caseOfflineList){ |
trash-ui/src/api/vio_casefile.js
| @@ -229,8 +229,21 @@ export default { | @@ -229,8 +229,21 @@ export default { | ||
| 229 | }, | 229 | }, |
| 230 | /** 查询平台违规案卷列表 */ | 230 | /** 查询平台违规案卷列表 */ |
| 231 | getList() { | 231 | getList() { |
| 232 | - this.loading = true; | ||
| 233 | - listViolationCaseFile(this.queryParams).then(response => { | 232 | + this.loading = true; |
| 233 | + if(this.queryParams.createTime){ | ||
| 234 | + this.queryParams.startTime = this.queryParams.createTime[0]; | ||
| 235 | + this.queryParams.endTime = this.queryParams.createTime[1]; | ||
| 236 | + } | ||
| 237 | + | ||
| 238 | + let query = {}; | ||
| 239 | + | ||
| 240 | + for(var i in this.queryParams){ | ||
| 241 | + query[i] = this.queryParams[i]; | ||
| 242 | + } | ||
| 243 | + | ||
| 244 | + query.createTime = null; | ||
| 245 | + | ||
| 246 | + listViolationCaseFile(query).then(response => { | ||
| 234 | this.violationCaseFileList = response.rows; | 247 | this.violationCaseFileList = response.rows; |
| 235 | this.total = response.total; | 248 | this.total = response.total; |
| 236 | this.loading = false; | 249 | this.loading = false; |
trash-ui/src/api/vio_casefile_info.js
0 → 100644
| 1 | +import {getViolationCaseFile} from "@/api/casefile/violationCaseFile"; | ||
| 2 | +import {listReplyApprovalProcess} from "@/api/casefile/replyApprovalProcess"; | ||
| 3 | + | ||
| 4 | +import {historyFromData} from '@/api/activiti/historyFormdata' | ||
| 5 | +export default { | ||
| 6 | + name: "violationWarningInformationInfo", | ||
| 7 | + props: { | ||
| 8 | + businessKey: { | ||
| 9 | + type: String | ||
| 10 | + }, | ||
| 11 | + idInfo: { | ||
| 12 | + type: String | ||
| 13 | + }, | ||
| 14 | + entryType: { | ||
| 15 | + type: Number | ||
| 16 | + }, | ||
| 17 | + }, | ||
| 18 | + data() { | ||
| 19 | + return { | ||
| 20 | + form: {}, | ||
| 21 | + fileEntityList: [], | ||
| 22 | + open: false, | ||
| 23 | + replyApprovalProcessList: [], | ||
| 24 | + openImg: false, | ||
| 25 | + img: [], | ||
| 26 | + showPic: null, | ||
| 27 | + picImage: null, | ||
| 28 | + slide1: [], | ||
| 29 | + videoSrc: [], | ||
| 30 | + } | ||
| 31 | + }, | ||
| 32 | + created() { | ||
| 33 | + let id = this.idInfo.split(":"); | ||
| 34 | + | ||
| 35 | + if (id.length == 2) { | ||
| 36 | + this.idInfo = id[1]; | ||
| 37 | + } else { | ||
| 38 | + this.idInfo = id; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + | ||
| 42 | + this.init(); | ||
| 43 | + }, | ||
| 44 | + methods: { | ||
| 45 | + init() { | ||
| 46 | + getViolationCaseFile(this.idInfo).then(response => { | ||
| 47 | + this.form = response.data.violationCaseFile; | ||
| 48 | + let files = JSON.stringify(response.data.uploadFiles); | ||
| 49 | + this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name")); | ||
| 50 | + this.fileEntityList.map(item => { | ||
| 51 | + if (item.url.indexOf(".jpg") > -1 || item.url.indexOf(".png") > -1 || item.url.indexOf(".jpeg") > -1 || item.url.indexOf(".jpg") > -1) { | ||
| 52 | + this.slide1.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 53 | + } | ||
| 54 | + if (item.url.indexOf(".mp4") > -1 || item.url.indexOf(".avi") > -1) { | ||
| 55 | + this.videoSrc.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 56 | + } | ||
| 57 | + }) | ||
| 58 | + | ||
| 59 | + }); | ||
| 60 | + listReplyApprovalProcess({tableName: "workflow_casefile" + ":" + this.idInfo}).then(response => { | ||
| 61 | + this.replyApprovalProcessList = response.rows; | ||
| 62 | + if(this.form.status == 0){ | ||
| 63 | + historyFromData("workflow_casefile" + ":" + this.idInfo).then(response => { | ||
| 64 | + | ||
| 65 | + let obj = response.data[response.data.length-1]; | ||
| 66 | + let data = { | ||
| 67 | + reply:obj.controlValue, | ||
| 68 | + replyPeople:obj.createBy, | ||
| 69 | + }; | ||
| 70 | + | ||
| 71 | + this.replyApprovalProcessList.push(data); | ||
| 72 | + }); | ||
| 73 | + } | ||
| 74 | + }); | ||
| 75 | + | ||
| 76 | + | ||
| 77 | + }, | ||
| 78 | + /** 文件下载 */ | ||
| 79 | + downloadFA(row) { | ||
| 80 | + let name = row.name; | ||
| 81 | + let url = row.url; | ||
| 82 | + const a = document.createElement('a') | ||
| 83 | + a.setAttribute('download', name) | ||
| 84 | + a.setAttribute('target', '_blank') | ||
| 85 | + a.setAttribute('href', process.env.VUE_APP_BASE_API + url); | ||
| 86 | + a.click() | ||
| 87 | + }, | ||
| 88 | + openImage(path) { | ||
| 89 | + this.img = []; | ||
| 90 | + this.openImg = true; | ||
| 91 | + let files = path.split(","); | ||
| 92 | + for(let i=0;i<files.length;i++){ | ||
| 93 | + this.img.push(files[i]); | ||
| 94 | + } | ||
| 95 | + }, | ||
| 96 | + downloadFile(path) { | ||
| 97 | + window.location.href = process.env.VUE_APP_BASE_API + "/business/threestep/download?path=" + encodeURI(path); | ||
| 98 | + }, | ||
| 99 | + showFile(path) { | ||
| 100 | + return process.env.VUE_APP_BASE_API + path; | ||
| 101 | + }, | ||
| 102 | + } | ||
| 103 | +} | ||
| 0 | \ No newline at end of file | 104 | \ No newline at end of file |
trash-ui/src/api/vio_warning_info.js
0 → 100644
| 1 | +import {getViolationWarningInformation} from "@/api/casefile/violationWarningInformation"; | ||
| 2 | +import {listReplyApprovalProcess} from "@/api/casefile/replyApprovalProcess"; | ||
| 3 | + | ||
| 4 | +import {historyFromData} from '@/api/activiti/historyFormdata' | ||
| 5 | + | ||
| 6 | +export default { | ||
| 7 | + name: "violationWarningInformationInfo", | ||
| 8 | + props: { | ||
| 9 | + businessKey: { | ||
| 10 | + type: String | ||
| 11 | + }, | ||
| 12 | + idInfo: { | ||
| 13 | + type: String | ||
| 14 | + }, | ||
| 15 | + entryType: { | ||
| 16 | + type: Number | ||
| 17 | + }, | ||
| 18 | + }, | ||
| 19 | + data() { | ||
| 20 | + return { | ||
| 21 | + form: {}, | ||
| 22 | + fileEntityList: [], | ||
| 23 | + open: false, | ||
| 24 | + replyApprovalProcessList: [], | ||
| 25 | + openImg: false, | ||
| 26 | + img: [], | ||
| 27 | + showPic: null, | ||
| 28 | + picImage: null, | ||
| 29 | + slide1: [], | ||
| 30 | + videoSrc: [], | ||
| 31 | + } | ||
| 32 | + }, | ||
| 33 | + created() { | ||
| 34 | + let id = this.idInfo.split(":"); | ||
| 35 | + | ||
| 36 | + if (id.length == 2) { | ||
| 37 | + this.idInfo = id[1]; | ||
| 38 | + } else { | ||
| 39 | + this.idInfo = id; | ||
| 40 | + } | ||
| 41 | + this.init(); | ||
| 42 | + }, | ||
| 43 | + methods: { | ||
| 44 | + init() { | ||
| 45 | + getViolationWarningInformation(this.idInfo).then(response => { | ||
| 46 | + this.form = response.data.violationWarningInformation; | ||
| 47 | + let files = JSON.stringify(response.data.uploadFiles); | ||
| 48 | + this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name")); | ||
| 49 | + this.fileEntityList.map(item => { | ||
| 50 | + if (item.url.indexOf(".jpg") > -1 || item.url.indexOf(".png") > -1 || item.url.indexOf(".jpeg") > -1 || item.url.indexOf(".jpg") > -1) { | ||
| 51 | + this.slide1.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 52 | + } | ||
| 53 | + if (item.url.indexOf(".mp4") > -1 || item.url.indexOf(".avi") > -1) { | ||
| 54 | + this.videoSrc.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 55 | + } | ||
| 56 | + }) | ||
| 57 | + | ||
| 58 | + | ||
| 59 | + }); | ||
| 60 | + | ||
| 61 | + listReplyApprovalProcess({tableName: "violation_warning" + ":" + this.idInfo}).then(response => { | ||
| 62 | + this.replyApprovalProcessList = response.rows; | ||
| 63 | + if(this.form.status == 0){ | ||
| 64 | + historyFromData("violation_warning" + ":" + this.idInfo).then(response => { | ||
| 65 | + | ||
| 66 | + let obj = response.data[response.data.length-1]; | ||
| 67 | + let data = { | ||
| 68 | + reply:obj.controlValue, | ||
| 69 | + replyPeople:obj.createBy, | ||
| 70 | + }; | ||
| 71 | + | ||
| 72 | + this.replyApprovalProcessList.push(data); | ||
| 73 | + }); | ||
| 74 | + } | ||
| 75 | + }); | ||
| 76 | + | ||
| 77 | + }, | ||
| 78 | + /** 文件下载 */ | ||
| 79 | + downloadFA(row) { | ||
| 80 | + let name = row.name; | ||
| 81 | + let url = row.url; | ||
| 82 | + const a = document.createElement('a') | ||
| 83 | + a.setAttribute('download', name) | ||
| 84 | + a.setAttribute('target', '_blank') | ||
| 85 | + a.setAttribute('href', process.env.VUE_APP_BASE_API + url); | ||
| 86 | + a.click() | ||
| 87 | + }, | ||
| 88 | + openImage(path) { | ||
| 89 | + this.img = []; | ||
| 90 | + this.openImg = true; | ||
| 91 | + let files = path.split(","); | ||
| 92 | + for(let i=0;i<files.length;i++){ | ||
| 93 | + this.img.push(files[i]); | ||
| 94 | + } | ||
| 95 | + }, | ||
| 96 | + downloadFile(path) { | ||
| 97 | + window.location.href = process.env.VUE_APP_BASE_API + "/business/threestep/download?path=" + encodeURI(path); | ||
| 98 | + }, | ||
| 99 | + showFile(path) { | ||
| 100 | + return process.env.VUE_APP_BASE_API + path; | ||
| 101 | + }, | ||
| 102 | + } | ||
| 103 | +} | ||
| 0 | \ No newline at end of file | 104 | \ No newline at end of file |
trash-ui/src/views/activiti/task/taskCard.vue
| @@ -12,14 +12,14 @@ | @@ -12,14 +12,14 @@ | ||
| 12 | </el-col> | 12 | </el-col> |
| 13 | </el-row> | 13 | </el-row> |
| 14 | 14 | ||
| 15 | - <el-row class="card_row" v-if="!task.checkStatus"> | ||
| 16 | - <el-col :span="8" > | 15 | + <el-row class="card_row" > |
| 16 | + <el-col :span="8" v-if="task.prev"> | ||
| 17 | <div >上一节点: {{task.prev}}</div> | 17 | <div >上一节点: {{task.prev}}</div> |
| 18 | </el-col> | 18 | </el-col> |
| 19 | <el-col :span="8" v-if="task.name"> | 19 | <el-col :span="8" v-if="task.name"> |
| 20 | <div >当前节点: {{task.name}}</div> | 20 | <div >当前节点: {{task.name}}</div> |
| 21 | </el-col> | 21 | </el-col> |
| 22 | - <el-col :span="8" > | 22 | + <el-col :span="8" v-if="task.next"> |
| 23 | <div >下一节点: {{task.next}}</div> | 23 | <div >下一节点: {{task.next}}</div> |
| 24 | </el-col> | 24 | </el-col> |
| 25 | </el-row> | 25 | </el-row> |
trash-ui/src/views/caseOffline/caseOffline/index.vue
| @@ -12,11 +12,10 @@ | @@ -12,11 +12,10 @@ | ||
| 12 | </el-select> | 12 | </el-select> |
| 13 | </el-form-item> | 13 | </el-form-item> |
| 14 | <el-form-item label="时间" prop="createTime"> | 14 | <el-form-item label="时间" prop="createTime"> |
| 15 | - <el-date-picker size="small" style="width: 200px" | ||
| 16 | - v-model="queryParams.createTime" | ||
| 17 | - type="date" | ||
| 18 | - value-format="yyyy-MM-dd" | ||
| 19 | - placeholder="选择时间"> | 15 | + <el-date-picker size="small" v-model="queryParams.createTime" type="datetimerange" |
| 16 | + start-placeholder="开始日期" | ||
| 17 | + value-format="yyyy-MM-dd HH:mm:ss" | ||
| 18 | + end-placeholder="结束日期"> | ||
| 20 | </el-date-picker> | 19 | </el-date-picker> |
| 21 | </el-form-item> | 20 | </el-form-item> |
| 22 | <el-form-item> | 21 | <el-form-item> |
| @@ -97,9 +96,9 @@ | @@ -97,9 +96,9 @@ | ||
| 97 | </el-select> | 96 | </el-select> |
| 98 | </el-form-item> | 97 | </el-form-item> |
| 99 | <el-form-item :label="form.siteType==0?'工地名称':'处理场所名称'" prop="siteName"> | 98 | <el-form-item :label="form.siteType==0?'工地名称':'处理场所名称'" prop="siteName"> |
| 100 | - <el-select | 99 | + <el-select |
| 101 | :popper-append-to-body="false" class="product-style" | 100 | :popper-append-to-body="false" class="product-style" |
| 102 | - v-model="form.siteName" placeholder="请选择类型" | 101 | + v-model="form.siteName" placeholder="请选择类型" |
| 103 | allow-create filterable @change="getSite"> | 102 | allow-create filterable @change="getSite"> |
| 104 | <el-option v-for="item in data[form.siteType]" :label="item.name" :value="item.name" :title="item.name"/> | 103 | <el-option v-for="item in data[form.siteType]" :label="item.name" :value="item.name" :title="item.name"/> |
| 105 | </el-select> | 104 | </el-select> |
trash-ui/src/views/casefile/violationCaseFile/index.vue
| 1 | <template> | 1 | <template> |
| 2 | <div class="app-container"> | 2 | <div class="app-container"> |
| 3 | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="105px"> | 3 | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="105px"> |
| 4 | - | 4 | + <el-row> |
| 5 | <el-form-item label="所属区域" prop="owningRegion"> | 5 | <el-form-item label="所属区域" prop="owningRegion"> |
| 6 | <el-select v-model="queryParams.owningRegion" placeholder="请选择所属区域" size="small"> | 6 | <el-select v-model="queryParams.owningRegion" placeholder="请选择所属区域" size="small"> |
| 7 | <el-option v-for="item in areas" :label="item.name" :value="item.name" /> | 7 | <el-option v-for="item in areas" :label="item.name" :value="item.name" /> |
| @@ -22,28 +22,29 @@ | @@ -22,28 +22,29 @@ | ||
| 22 | <el-option label="企业" value="2" /> | 22 | <el-option label="企业" value="2" /> |
| 23 | </el-select> | 23 | </el-select> |
| 24 | </el-form-item> | 24 | </el-form-item> |
| 25 | - | ||
| 26 | - | ||
| 27 | - | 25 | +</el-row> |
| 26 | + <el-row> | ||
| 28 | <el-form-item label="违规对象" prop="projectName"> | 27 | <el-form-item label="违规对象" prop="projectName"> |
| 29 | <el-input | 28 | <el-input |
| 30 | v-model="queryParams.projectName" | 29 | v-model="queryParams.projectName" |
| 31 | placeholder="请输入违规对象" | 30 | placeholder="请输入违规对象" |
| 32 | - | ||
| 33 | size="small" | 31 | size="small" |
| 34 | - | ||
| 35 | /> | 32 | /> |
| 36 | </el-form-item> | 33 | </el-form-item> |
| 37 | 34 | ||
| 38 | <el-form-item label="日期" prop="createTime"> | 35 | <el-form-item label="日期" prop="createTime"> |
| 39 | - <el-date-picker size="small" style="width: 200px" v-model="queryParams.createTime" type="date" | ||
| 40 | - value-format="yyyy-MM-dd" placeholder="开始时间"> | 36 | + <el-date-picker size="small" v-model="queryParams.createTime" type="datetimerange" |
| 37 | + start-placeholder="开始日期" | ||
| 38 | + value-format="yyyy-MM-dd HH:mm:ss" | ||
| 39 | + end-placeholder="结束日期"> | ||
| 41 | </el-date-picker> | 40 | </el-date-picker> |
| 42 | </el-form-item> | 41 | </el-form-item> |
| 43 | <el-form-item> | 42 | <el-form-item> |
| 44 | <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> | 43 | <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| 45 | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | 44 | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| 46 | - </el-form-item> | 45 | + </el-form-item> |
| 46 | + | ||
| 47 | + </el-row> | ||
| 47 | </el-form> | 48 | </el-form> |
| 48 | 49 | ||
| 49 | <el-row :gutter="10" class="mb8"> | 50 | <el-row :gutter="10" class="mb8"> |
trash-ui/src/views/casefile/violationCaseFile/violationCaseFileInfo.vue
| @@ -168,96 +168,7 @@ | @@ -168,96 +168,7 @@ | ||
| 168 | </el-form> | 168 | </el-form> |
| 169 | </template> | 169 | </template> |
| 170 | 170 | ||
| 171 | -<script> | ||
| 172 | -import {getViolationCaseFile} from "@/api/casefile/violationCaseFile"; | ||
| 173 | -import {listReplyApprovalProcess} from "@/api/casefile/replyApprovalProcess"; | ||
| 174 | - | ||
| 175 | -export default { | ||
| 176 | - name: "violationWarningInformationInfo", | ||
| 177 | - props: { | ||
| 178 | - businessKey: { | ||
| 179 | - type: String | ||
| 180 | - }, | ||
| 181 | - idInfo: { | ||
| 182 | - type: String | ||
| 183 | - }, | ||
| 184 | - entryType: { | ||
| 185 | - type: Number | ||
| 186 | - }, | ||
| 187 | - }, | ||
| 188 | - data() { | ||
| 189 | - return { | ||
| 190 | - form: {}, | ||
| 191 | - fileEntityList: [], | ||
| 192 | - open: false, | ||
| 193 | - replyApprovalProcessList: [], | ||
| 194 | - openImg: false, | ||
| 195 | - img: [], | ||
| 196 | - showPic: null, | ||
| 197 | - picImage: null, | ||
| 198 | - slide1: [], | ||
| 199 | - videoSrc: [], | ||
| 200 | - } | ||
| 201 | - }, | ||
| 202 | - created() { | ||
| 203 | - let id = this.idInfo.split(":"); | ||
| 204 | - | ||
| 205 | - if (id.length == 2) { | ||
| 206 | - this.idInfo = id[1]; | ||
| 207 | - } else { | ||
| 208 | - this.idInfo = id; | ||
| 209 | - } | ||
| 210 | - | ||
| 211 | - | ||
| 212 | - this.init(); | ||
| 213 | - }, | ||
| 214 | - methods: { | ||
| 215 | - init() { | ||
| 216 | - getViolationCaseFile(this.idInfo).then(response => { | ||
| 217 | - this.form = response.data.violationCaseFile; | ||
| 218 | - let files = JSON.stringify(response.data.uploadFiles); | ||
| 219 | - this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name")); | ||
| 220 | - this.fileEntityList.map(item => { | ||
| 221 | - if (item.url.indexOf(".jpg") > -1 || item.url.indexOf(".png") > -1 || item.url.indexOf(".jpeg") > -1 || item.url.indexOf(".jpg") > -1) { | ||
| 222 | - this.slide1.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 223 | - } | ||
| 224 | - if (item.url.indexOf(".mp4") > -1 || item.url.indexOf(".avi") > -1) { | ||
| 225 | - this.videoSrc.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 226 | - } | ||
| 227 | - }) | ||
| 228 | - }); | ||
| 229 | - | ||
| 230 | - | ||
| 231 | - listReplyApprovalProcess({tableName: "workflow_casefile" + ":" + this.idInfo}).then(response => { | ||
| 232 | - this.replyApprovalProcessList = response.rows; | ||
| 233 | - }); | ||
| 234 | - }, | ||
| 235 | - /** 文件下载 */ | ||
| 236 | - downloadFA(row) { | ||
| 237 | - let name = row.name; | ||
| 238 | - let url = row.url; | ||
| 239 | - const a = document.createElement('a') | ||
| 240 | - a.setAttribute('download', name) | ||
| 241 | - a.setAttribute('target', '_blank') | ||
| 242 | - a.setAttribute('href', process.env.VUE_APP_BASE_API + url); | ||
| 243 | - a.click() | ||
| 244 | - }, | ||
| 245 | - openImage(path) { | ||
| 246 | - this.img = []; | ||
| 247 | - this.openImg = true; | ||
| 248 | - let files = path.split(","); | ||
| 249 | - for(let i=0;i<files.length;i++){ | ||
| 250 | - this.img.push(files[i]); | ||
| 251 | - } | ||
| 252 | - }, | ||
| 253 | - downloadFile(path) { | ||
| 254 | - window.location.href = process.env.VUE_APP_BASE_API + "/business/threestep/download?path=" + encodeURI(path); | ||
| 255 | - }, | ||
| 256 | - showFile(path) { | ||
| 257 | - return process.env.VUE_APP_BASE_API + path; | ||
| 258 | - }, | ||
| 259 | - } | ||
| 260 | -} | 171 | +<script src="@/api/vio_casefile_info"> |
| 261 | </script> | 172 | </script> |
| 262 | 173 | ||
| 263 | <style scoped> | 174 | <style scoped> |
trash-ui/src/views/casefile/violationWarningInformation/index.vue
| @@ -28,8 +28,10 @@ | @@ -28,8 +28,10 @@ | ||
| 28 | /> | 28 | /> |
| 29 | </el-form-item> | 29 | </el-form-item> |
| 30 | <el-form-item label="日期" prop="createTime"> | 30 | <el-form-item label="日期" prop="createTime"> |
| 31 | - <el-date-picker clearable size="small" style="width: 200px" v-model="queryParams.createTime" type="date" | ||
| 32 | - value-format="yyyy-MM-dd" placeholder="开始时间"> | 31 | + <el-date-picker size="small" v-model="queryParams.createTime" type="datetimerange" |
| 32 | + start-placeholder="开始日期" | ||
| 33 | + value-format="yyyy-MM-dd HH:mm:ss" | ||
| 34 | + end-placeholder="结束日期"> | ||
| 33 | </el-date-picker> | 35 | </el-date-picker> |
| 34 | </el-form-item> | 36 | </el-form-item> |
| 35 | <el-form-item> | 37 | <el-form-item> |
trash-ui/src/views/casefile/violationWarningInformation/violationWarningInformationInfo.vue
| @@ -167,93 +167,9 @@ | @@ -167,93 +167,9 @@ | ||
| 167 | </el-form> | 167 | </el-form> |
| 168 | </template> | 168 | </template> |
| 169 | 169 | ||
| 170 | -<script> | ||
| 171 | -import {getViolationWarningInformation} from "@/api/casefile/violationWarningInformation"; | ||
| 172 | -import {listReplyApprovalProcess} from "@/api/casefile/replyApprovalProcess"; | 170 | +<script src="@/api/vio_warning_info"> |
| 171 | +</script> | ||
| 173 | 172 | ||
| 174 | -export default { | ||
| 175 | - name: "violationWarningInformationInfo", | ||
| 176 | - props: { | ||
| 177 | - businessKey: { | ||
| 178 | - type: String | ||
| 179 | - }, | ||
| 180 | - idInfo: { | ||
| 181 | - type: String | ||
| 182 | - }, | ||
| 183 | - entryType: { | ||
| 184 | - type: Number | ||
| 185 | - }, | ||
| 186 | - }, | ||
| 187 | - data() { | ||
| 188 | - return { | ||
| 189 | - form: {}, | ||
| 190 | - fileEntityList: [], | ||
| 191 | - open: false, | ||
| 192 | - replyApprovalProcessList: [], | ||
| 193 | - openImg: false, | ||
| 194 | - img: [], | ||
| 195 | - showPic: null, | ||
| 196 | - picImage: null, | ||
| 197 | - slide1: [], | ||
| 198 | - videoSrc: [], | ||
| 199 | - } | ||
| 200 | - }, | ||
| 201 | - created() { | ||
| 202 | - let id = this.idInfo.split(":"); | ||
| 203 | - | ||
| 204 | - if (id.length == 2) { | ||
| 205 | - this.idInfo = id[1]; | ||
| 206 | - } else { | ||
| 207 | - this.idInfo = id; | ||
| 208 | - } | ||
| 209 | - this.init(); | ||
| 210 | - }, | ||
| 211 | - methods: { | ||
| 212 | - init() { | ||
| 213 | - getViolationWarningInformation(this.idInfo).then(response => { | ||
| 214 | - this.form = response.data.violationWarningInformation; | ||
| 215 | - let files = JSON.stringify(response.data.uploadFiles); | ||
| 216 | - this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name")); | ||
| 217 | - this.fileEntityList.map(item => { | ||
| 218 | - if (item.url.indexOf(".jpg") > -1 || item.url.indexOf(".png") > -1 || item.url.indexOf(".jpeg") > -1 || item.url.indexOf(".jpg") > -1) { | ||
| 219 | - this.slide1.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 220 | - } | ||
| 221 | - if (item.url.indexOf(".mp4") > -1 || item.url.indexOf(".avi") > -1) { | ||
| 222 | - this.videoSrc.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 223 | - } | ||
| 224 | - }) | ||
| 225 | - }); | ||
| 226 | - listReplyApprovalProcess({tableName: "violation_warning" + ":" + this.idInfo}).then(response => { | ||
| 227 | - this.replyApprovalProcessList = response.rows; | ||
| 228 | - }); | ||
| 229 | - }, | ||
| 230 | - /** 文件下载 */ | ||
| 231 | - downloadFA(row) { | ||
| 232 | - let name = row.name; | ||
| 233 | - let url = row.url; | ||
| 234 | - const a = document.createElement('a') | ||
| 235 | - a.setAttribute('download', name) | ||
| 236 | - a.setAttribute('target', '_blank') | ||
| 237 | - a.setAttribute('href', process.env.VUE_APP_BASE_API + url); | ||
| 238 | - a.click() | ||
| 239 | - }, | ||
| 240 | - openImage(path) { | ||
| 241 | - this.img = []; | ||
| 242 | - this.openImg = true; | ||
| 243 | - let files = path.split(","); | ||
| 244 | - for(let i=0;i<files.length;i++){ | ||
| 245 | - this.img.push(files[i]); | ||
| 246 | - } | ||
| 247 | - }, | ||
| 248 | - downloadFile(path) { | ||
| 249 | - window.location.href = process.env.VUE_APP_BASE_API + "/business/threestep/download?path=" + encodeURI(path); | ||
| 250 | - }, | ||
| 251 | - showFile(path) { | ||
| 252 | - return process.env.VUE_APP_BASE_API + path; | ||
| 253 | - }, | ||
| 254 | - } | ||
| 255 | -} | ||
| 256 | -</script> | ||
| 257 | 173 | ||
| 258 | <style scoped> | 174 | <style scoped> |
| 259 | 175 |
trash-ui/src/views/h5/task/taskCard.vue
| @@ -6,14 +6,14 @@ | @@ -6,14 +6,14 @@ | ||
| 6 | <el-row class="card_row"> | 6 | <el-row class="card_row"> |
| 7 | <div class="card_title">{{task.instanceName}}</div> | 7 | <div class="card_title">{{task.instanceName}}</div> |
| 8 | </el-row> | 8 | </el-row> |
| 9 | - <el-row class="card_row" v-if="!task.checkStatus"> | ||
| 10 | - <el-col :span="24" class="card_grid"> | 9 | + <el-row class="card_row" > |
| 10 | + <el-col :span="24" class="card_grid" v-if="task.prev"> | ||
| 11 | <div >上一节点: {{task.prev}}</div> | 11 | <div >上一节点: {{task.prev}}</div> |
| 12 | </el-col> | 12 | </el-col> |
| 13 | <el-col :span="24" class="card_grid" v-if="task.name"> | 13 | <el-col :span="24" class="card_grid" v-if="task.name"> |
| 14 | <div >当前节点: {{task.name}}</div> | 14 | <div >当前节点: {{task.name}}</div> |
| 15 | </el-col> | 15 | </el-col> |
| 16 | - <el-col :span="24" class="card_grid"> | 16 | + <el-col :span="24" class="card_grid" v-if="task.next"> |
| 17 | <div >下一节点: {{task.next}}</div> | 17 | <div >下一节点: {{task.next}}</div> |
| 18 | </el-col> | 18 | </el-col> |
| 19 | </el-row> | 19 | </el-row> |
trash-ui/src/views/h5/task/violationCaseFileInfo.vue
| @@ -144,97 +144,7 @@ | @@ -144,97 +144,7 @@ | ||
| 144 | </el-form> | 144 | </el-form> |
| 145 | </template> | 145 | </template> |
| 146 | 146 | ||
| 147 | -<script> | ||
| 148 | -import {getViolationCaseFile} from "@/api/casefile/violationCaseFile"; | ||
| 149 | -import {listReplyApprovalProcess} from "@/api/casefile/replyApprovalProcess"; | ||
| 150 | - | ||
| 151 | -export default { | ||
| 152 | - name: "violationWarningInformationInfo", | ||
| 153 | - props: { | ||
| 154 | - businessKey: { | ||
| 155 | - type: String | ||
| 156 | - }, | ||
| 157 | - idInfo: { | ||
| 158 | - type: String | ||
| 159 | - }, | ||
| 160 | - entryType: { | ||
| 161 | - type: Number | ||
| 162 | - }, | ||
| 163 | - }, | ||
| 164 | - data() { | ||
| 165 | - return { | ||
| 166 | - form: {}, | ||
| 167 | - fileEntityList: [], | ||
| 168 | - open: false, | ||
| 169 | - replyApprovalProcessList: [], | ||
| 170 | - openImg: false, | ||
| 171 | - img: [], | ||
| 172 | - showPic: null, | ||
| 173 | - picImage: null, | ||
| 174 | - slide1: [], | ||
| 175 | - videoSrc: [], | ||
| 176 | - } | ||
| 177 | - }, | ||
| 178 | - created() { | ||
| 179 | - let id = this.idInfo.split(":"); | ||
| 180 | - | ||
| 181 | - if (id.length == 2) { | ||
| 182 | - this.idInfo = id[1]; | ||
| 183 | - } else { | ||
| 184 | - this.idInfo = id; | ||
| 185 | - } | ||
| 186 | - | ||
| 187 | - | ||
| 188 | - this.init(); | ||
| 189 | - }, | ||
| 190 | - methods: { | ||
| 191 | - init() { | ||
| 192 | - getViolationCaseFile(this.idInfo).then(response => { | ||
| 193 | - this.form = response.data.violationCaseFile; | ||
| 194 | - let files = JSON.stringify(response.data.uploadFiles); | ||
| 195 | - this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name")); | ||
| 196 | - this.fileEntityList.map(item => { | ||
| 197 | - if (item.url.indexOf(".jpg") > -1 || item.url.indexOf(".png") > -1 || item.url.indexOf(".jpeg") > -1 || item.url.indexOf(".jpg") > -1) { | ||
| 198 | - this.slide1.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 199 | - } | ||
| 200 | - if (item.url.indexOf(".mp4") > -1 || item.url.indexOf(".avi") > -1) { | ||
| 201 | - this.videoSrc.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 202 | - } | ||
| 203 | - }) | ||
| 204 | - }); | ||
| 205 | - | ||
| 206 | - | ||
| 207 | - listReplyApprovalProcess({tableName: "workflow_casefile" + ":" + this.idInfo}).then(response => { | ||
| 208 | - this.replyApprovalProcessList = response.rows; | ||
| 209 | - }); | ||
| 210 | - }, | ||
| 211 | - /** 文件下载 */ | ||
| 212 | - downloadFA(row) { | ||
| 213 | - let name = row.name; | ||
| 214 | - let url = row.url; | ||
| 215 | - const a = document.createElement('a') | ||
| 216 | - a.setAttribute('download', name) | ||
| 217 | - a.setAttribute('target', '_blank') | ||
| 218 | - a.setAttribute('href', process.env.VUE_APP_BASE_API + url); | ||
| 219 | - a.click() | ||
| 220 | - }, | ||
| 221 | - openImage(path) { | ||
| 222 | - debugger; | ||
| 223 | - this.img = []; | ||
| 224 | - this.openImg = true; | ||
| 225 | - let files = path.split(","); | ||
| 226 | - for(let i=0;i<files.length;i++){ | ||
| 227 | - this.img.push(files[i]); | ||
| 228 | - } | ||
| 229 | - }, | ||
| 230 | - downloadFile(path) { | ||
| 231 | - window.location.href = process.env.VUE_APP_BASE_API + "/business/threestep/download?path=" + encodeURI(path); | ||
| 232 | - }, | ||
| 233 | - showFile(path) { | ||
| 234 | - return process.env.VUE_APP_BASE_API + path; | ||
| 235 | - }, | ||
| 236 | - } | ||
| 237 | -} | 147 | +<script src="@/api/vio_casefile_info"> |
| 238 | </script> | 148 | </script> |
| 239 | 149 | ||
| 240 | <style scoped> | 150 | <style scoped> |
trash-ui/src/views/h5/task/violationWarningInformationInfo.vue
| @@ -122,7 +122,7 @@ | @@ -122,7 +122,7 @@ | ||
| 122 | </el-dialog> | 122 | </el-dialog> |
| 123 | <el-dialog title="预览" :visible.sync="openImg" append-to-body width="300px"> | 123 | <el-dialog title="预览" :visible.sync="openImg" append-to-body width="300px"> |
| 124 | <div v-for="item in img" style="border: 1px black solid;text-align: center;"> | 124 | <div v-for="item in img" style="border: 1px black solid;text-align: center;"> |
| 125 | - | 125 | + |
| 126 | <el-image style="width: 250px; height: 250px; margin: 5px;" | 126 | <el-image style="width: 250px; height: 250px; margin: 5px;" |
| 127 | v-if="item.indexOf('.jpg')>-1||item.indexOf('.png')>-1||item.indexOf('.jpeg')>-1||item.indexOf('.gif')>-1" | 127 | v-if="item.indexOf('.jpg')>-1||item.indexOf('.png')>-1||item.indexOf('.jpeg')>-1||item.indexOf('.gif')>-1" |
| 128 | :src="showFile(item)" | 128 | :src="showFile(item)" |
| @@ -138,93 +138,9 @@ | @@ -138,93 +138,9 @@ | ||
| 138 | </el-form> | 138 | </el-form> |
| 139 | </template> | 139 | </template> |
| 140 | 140 | ||
| 141 | -<script> | ||
| 142 | -import {getViolationWarningInformation} from "@/api/casefile/violationWarningInformation"; | ||
| 143 | -import {listReplyApprovalProcess} from "@/api/casefile/replyApprovalProcess"; | ||
| 144 | - | ||
| 145 | -export default { | ||
| 146 | - name: "violationWarningInformationInfo", | ||
| 147 | - props: { | ||
| 148 | - businessKey: { | ||
| 149 | - type: String | ||
| 150 | - }, | ||
| 151 | - idInfo: { | ||
| 152 | - type: String | ||
| 153 | - }, | ||
| 154 | - entryType: { | ||
| 155 | - type: Number | ||
| 156 | - }, | ||
| 157 | - }, | ||
| 158 | - data() { | ||
| 159 | - return { | ||
| 160 | - form: {}, | ||
| 161 | - fileEntityList: [], | ||
| 162 | - open: false, | ||
| 163 | - replyApprovalProcessList: [], | ||
| 164 | - openImg: false, | ||
| 165 | - img: [], | ||
| 166 | - showPic: null, | ||
| 167 | - picImage: null, | ||
| 168 | - slide1: [], | ||
| 169 | - videoSrc: [], | ||
| 170 | - } | ||
| 171 | - }, | ||
| 172 | - created() { | ||
| 173 | - let id = this.idInfo.split(":"); | ||
| 174 | - | ||
| 175 | - if (id.length == 2) { | ||
| 176 | - this.idInfo = id[1]; | ||
| 177 | - } else { | ||
| 178 | - this.idInfo = id; | ||
| 179 | - } | ||
| 180 | - this.init(); | ||
| 181 | - }, | ||
| 182 | - methods: { | ||
| 183 | - init() { | ||
| 184 | - getViolationWarningInformation(this.idInfo).then(response => { | ||
| 185 | - this.form = response.data.violationWarningInformation; | ||
| 186 | - let files = JSON.stringify(response.data.uploadFiles); | ||
| 187 | - this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name")); | ||
| 188 | - this.fileEntityList.map(item => { | ||
| 189 | - if (item.url.indexOf(".jpg") > -1 || item.url.indexOf(".png") > -1 || item.url.indexOf(".jpeg") > -1 || item.url.indexOf(".jpg") > -1) { | ||
| 190 | - this.slide1.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 191 | - } | ||
| 192 | - if (item.url.indexOf(".mp4") > -1 || item.url.indexOf(".avi") > -1) { | ||
| 193 | - this.videoSrc.push(process.env.VUE_APP_BASE_API + item.url); | ||
| 194 | - } | ||
| 195 | - }) | ||
| 196 | - }); | ||
| 197 | - listReplyApprovalProcess({tableName: "violation_warning" + ":" + this.idInfo}).then(response => { | ||
| 198 | - this.replyApprovalProcessList = response.rows; | ||
| 199 | - }); | ||
| 200 | - }, | ||
| 201 | - /** 文件下载 */ | ||
| 202 | - downloadFA(row) { | ||
| 203 | - let name = row.name; | ||
| 204 | - let url = row.url; | ||
| 205 | - const a = document.createElement('a') | ||
| 206 | - a.setAttribute('download', name) | ||
| 207 | - a.setAttribute('target', '_blank') | ||
| 208 | - a.setAttribute('href', process.env.VUE_APP_BASE_API + url); | ||
| 209 | - a.click() | ||
| 210 | - }, | ||
| 211 | - openImage(path) { | ||
| 212 | - this.img = []; | ||
| 213 | - this.openImg = true; | ||
| 214 | - let files = path.split(","); | ||
| 215 | - for(let i=0;i<files.length;i++){ | ||
| 216 | - this.img.push(files[i]); | ||
| 217 | - } | ||
| 218 | - }, | ||
| 219 | - downloadFile(path) { | ||
| 220 | - window.location.href = process.env.VUE_APP_BASE_API + "/business/threestep/download?path=" + encodeURI(path); | ||
| 221 | - }, | ||
| 222 | - showFile(path) { | ||
| 223 | - return process.env.VUE_APP_BASE_API + path; | ||
| 224 | - }, | ||
| 225 | - } | ||
| 226 | -} | ||
| 227 | -</script> | 141 | +<script src="@/api/vio_warning_info"> |
| 142 | +</script> | ||
| 143 | + | ||
| 228 | <style scoped> | 144 | <style scoped> |
| 229 | 145 | ||
| 230 | </style> | 146 | </style> |
trash-workFlow/src/main/java/com/trash/caseOffline/domain/CaseOffline.java
| @@ -33,14 +33,18 @@ public class CaseOffline extends BaseEntity | @@ -33,14 +33,18 @@ public class CaseOffline extends BaseEntity | ||
| 33 | + "7=无许可消纳(工),8=无许可消纳(消),9=使用非专用车辆") | 33 | + "7=无许可消纳(工),8=无许可消纳(消),9=使用非专用车辆") |
| 34 | private String type; | 34 | private String type; |
| 35 | 35 | ||
| 36 | + | ||
| 36 | 37 | ||
| 37 | /** 名称 */ | 38 | /** 名称 */ |
| 39 | + @Excel(name = "场站名称") | ||
| 38 | private String siteName; | 40 | private String siteName; |
| 39 | 41 | ||
| 40 | /** 位置描述 */ | 42 | /** 位置描述 */ |
| 43 | + @Excel(name = "位置描述") | ||
| 41 | private String locationDec; | 44 | private String locationDec; |
| 42 | 45 | ||
| 43 | /** 问题描述 */ | 46 | /** 问题描述 */ |
| 47 | + @Excel(name = "问题描述") | ||
| 44 | private String caseDec; | 48 | private String caseDec; |
| 45 | 49 | ||
| 46 | /** 审批状态 */ | 50 | /** 审批状态 */ |
| @@ -51,6 +55,7 @@ public class CaseOffline extends BaseEntity | @@ -51,6 +55,7 @@ public class CaseOffline extends BaseEntity | ||
| 51 | private String place; | 55 | private String place; |
| 52 | 56 | ||
| 53 | /** 类型 */ | 57 | /** 类型 */ |
| 58 | + @Excel(name = "场站类型编号" ,readConverterExp = "0=工地,1=处理场所") | ||
| 54 | private Long siteType; | 59 | private Long siteType; |
| 55 | 60 | ||
| 56 | /** 基础数据ID */ | 61 | /** 基础数据ID */ |
| @@ -85,6 +90,27 @@ public class CaseOffline extends BaseEntity | @@ -85,6 +90,27 @@ public class CaseOffline extends BaseEntity | ||
| 85 | @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") | 90 | @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") |
| 86 | private Date createTime; | 91 | private Date createTime; |
| 87 | 92 | ||
| 93 | + private String startTime; | ||
| 94 | + | ||
| 95 | + private String endTime; | ||
| 96 | + | ||
| 97 | + public String getStartTime() { | ||
| 98 | + return startTime; | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + public void setStartTime(String startTime) { | ||
| 102 | + this.startTime = startTime; | ||
| 103 | + } | ||
| 104 | + | ||
| 105 | + @Override | ||
| 106 | + public String getEndTime() { | ||
| 107 | + return endTime; | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + @Override | ||
| 111 | + public void setEndTime(String endTime) { | ||
| 112 | + this.endTime = endTime; | ||
| 113 | + } | ||
| 88 | 114 | ||
| 89 | 115 | ||
| 90 | public Date getCreateTime() { | 116 | public Date getCreateTime() { |
trash-workFlow/src/main/java/com/trash/casefile/domain/ViolationCaseFile.java
| @@ -78,6 +78,31 @@ public class ViolationCaseFile extends BaseEntity | @@ -78,6 +78,31 @@ public class ViolationCaseFile extends BaseEntity | ||
| 78 | 78 | ||
| 79 | private String abbreviation; | 79 | private String abbreviation; |
| 80 | 80 | ||
| 81 | + private String startTime; | ||
| 82 | + | ||
| 83 | + | ||
| 84 | + private String endTime; | ||
| 85 | + | ||
| 86 | + | ||
| 87 | + | ||
| 88 | + public String getStartTime() { | ||
| 89 | + return startTime; | ||
| 90 | + } | ||
| 91 | + | ||
| 92 | + public void setStartTime(String startTime) { | ||
| 93 | + this.startTime = startTime; | ||
| 94 | + } | ||
| 95 | + | ||
| 96 | + @Override | ||
| 97 | + public String getEndTime() { | ||
| 98 | + return endTime; | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + @Override | ||
| 102 | + public void setEndTime(String endTime) { | ||
| 103 | + this.endTime = endTime; | ||
| 104 | + } | ||
| 105 | + | ||
| 81 | @Override | 106 | @Override |
| 82 | public Date getCreateTime() { | 107 | public Date getCreateTime() { |
| 83 | return createTime; | 108 | return createTime; |
trash-workFlow/src/main/java/com/trash/casefile/domain/ViolationWarningInformation.java
| @@ -55,6 +55,7 @@ public class ViolationWarningInformation extends BaseEntity { | @@ -55,6 +55,7 @@ public class ViolationWarningInformation extends BaseEntity { | ||
| 55 | /** | 55 | /** |
| 56 | * 违规等级 | 56 | * 违规等级 |
| 57 | */ | 57 | */ |
| 58 | + @Excel(name = "违规等级") | ||
| 58 | private String violationGrade; | 59 | private String violationGrade; |
| 59 | 60 | ||
| 60 | 61 | ||
| @@ -62,6 +63,7 @@ public class ViolationWarningInformation extends BaseEntity { | @@ -62,6 +63,7 @@ public class ViolationWarningInformation extends BaseEntity { | ||
| 62 | /** | 63 | /** |
| 63 | * 企业名称 | 64 | * 企业名称 |
| 64 | */ | 65 | */ |
| 66 | + @Excel(name = "企业名称") | ||
| 65 | private String companyName; | 67 | private String companyName; |
| 66 | 68 | ||
| 67 | @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") | 69 | @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") |
| @@ -71,6 +73,7 @@ public class ViolationWarningInformation extends BaseEntity { | @@ -71,6 +73,7 @@ public class ViolationWarningInformation extends BaseEntity { | ||
| 71 | /** | 73 | /** |
| 72 | * 违规描述 | 74 | * 违规描述 |
| 73 | */ | 75 | */ |
| 76 | + @Excel(name = "违规描述") | ||
| 74 | private String describe; | 77 | private String describe; |
| 75 | 78 | ||
| 76 | /** | 79 | /** |
| @@ -87,6 +90,7 @@ public class ViolationWarningInformation extends BaseEntity { | @@ -87,6 +90,7 @@ public class ViolationWarningInformation extends BaseEntity { | ||
| 87 | /** | 90 | /** |
| 88 | * 接收人 | 91 | * 接收人 |
| 89 | */ | 92 | */ |
| 93 | + @Excel(name = "接收人") | ||
| 90 | private String receive; | 94 | private String receive; |
| 91 | 95 | ||
| 92 | /** | 96 | /** |
| @@ -98,16 +102,46 @@ public class ViolationWarningInformation extends BaseEntity { | @@ -98,16 +102,46 @@ public class ViolationWarningInformation extends BaseEntity { | ||
| 98 | * 阅览人 | 102 | * 阅览人 |
| 99 | */ | 103 | */ |
| 100 | private String readBy; | 104 | private String readBy; |
| 101 | - | 105 | + |
| 106 | + | ||
| 107 | + @Excel(name = "发送人") | ||
| 108 | + private String createBy; | ||
| 102 | /** | 109 | /** |
| 103 | * 阅览时间 | 110 | * 阅览时间 |
| 104 | */ | 111 | */ |
| 105 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") | 112 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| 113 | + @Excel(name = "阅读时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") | ||
| 106 | private Date readTime; | 114 | private Date readTime; |
| 107 | 115 | ||
| 108 | private String abbreviation; | 116 | private String abbreviation; |
| 109 | 117 | ||
| 118 | + private String startTime; | ||
| 119 | + | ||
| 120 | + | ||
| 121 | + private String endTime; | ||
| 122 | + | ||
| 123 | + | ||
| 124 | + | ||
| 125 | + public String getStartTime() { | ||
| 126 | + return startTime; | ||
| 127 | + } | ||
| 128 | + | ||
| 129 | + public void setStartTime(String startTime) { | ||
| 130 | + this.startTime = startTime; | ||
| 131 | + } | ||
| 132 | + | ||
| 133 | + @Override | ||
| 134 | + public String getEndTime() { | ||
| 135 | + return endTime; | ||
| 136 | + } | ||
| 137 | + | ||
| 110 | @Override | 138 | @Override |
| 139 | + public void setEndTime(String endTime) { | ||
| 140 | + this.endTime = endTime; | ||
| 141 | + } | ||
| 142 | + | ||
| 143 | + | ||
| 144 | + @Override | ||
| 111 | public Date getCreateTime() { | 145 | public Date getCreateTime() { |
| 112 | return createTime; | 146 | return createTime; |
| 113 | } | 147 | } |
trash-workFlow/src/main/java/com/trash/casefile/kafka/Consumer.java
| @@ -330,8 +330,25 @@ public class Consumer { | @@ -330,8 +330,25 @@ public class Consumer { | ||
| 330 | violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation); | 330 | violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation); |
| 331 | break; | 331 | break; |
| 332 | case "44030033"://闯禁行驶 | 332 | case "44030033"://闯禁行驶 |
| 333 | + violationWarningInformation.setViolationObjectType("0"); | ||
| 334 | + violationWarningInformation.setSendObject("区管理部门"); | ||
| 335 | + describe = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " " | ||
| 336 | + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "出现" + violationWarningInformation.getViolationType(); | ||
| 337 | + //设置公司简称 | ||
| 338 | + for(Object o:company1){ | ||
| 339 | + JSONObject jo = (JSONObject) o; | ||
| 340 | + if(basevehicleInfo.getString("companyID").equals(jo.getString("id"))){ | ||
| 341 | + violationWarningInformation.setAbbreviation(jo.getString("abbreviation")); | ||
| 342 | + } | ||
| 343 | + } | ||
| 344 | + violationWarningInformation.setCreateTime(alarmTime); | ||
| 345 | + violationWarningInformation.setDescribe(describe); | ||
| 346 | + // 业务逻辑 | ||
| 347 | + violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation); | ||
| 348 | + break; | ||
| 349 | + | ||
| 333 | case "44030034"://失信车辆作业 | 350 | case "44030034"://失信车辆作业 |
| 334 | - violationWarningInformation.setViolationObjectType("2"); | 351 | + violationWarningInformation.setViolationObjectType("2"); |
| 335 | violationWarningInformation.setSendObject("运输企业"); | 352 | violationWarningInformation.setSendObject("运输企业"); |
| 336 | describe = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " " | 353 | describe = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " " |
| 337 | + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "出现" + violationWarningInformation.getViolationType(); | 354 | + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "出现" + violationWarningInformation.getViolationType(); |
trash-workFlow/src/main/java/com/trash/casefile/service/impl/ViolationWarningInformationServiceImpl.java
| @@ -94,9 +94,25 @@ public class ViolationWarningInformationServiceImpl implements IViolationWarning | @@ -94,9 +94,25 @@ public class ViolationWarningInformationServiceImpl implements IViolationWarning | ||
| 94 | * @param violationWarningInformation 违规预警信息 | 94 | * @param violationWarningInformation 违规预警信息 |
| 95 | * @return 结果 | 95 | * @return 结果 |
| 96 | */ | 96 | */ |
| 97 | + | ||
| 98 | + String innerArea = "湘江新区,芙蓉区,天心区,开福区,雨花区"; | ||
| 99 | + String warnString = "处理场所预警-未报开工作业、处理场所预警-视频设备离线超时报警、处理场所预警-三无车辆进入处理场所、处理场所预警-未到指定的处理场所作业"; | ||
| 100 | + | ||
| 97 | @Override | 101 | @Override |
| 98 | @Transactional | 102 | @Transactional |
| 99 | public int insertViolationWarningInformation(MultipartFile[] files,ViolationWarningInformation violationWarningInformation) throws IOException { | 103 | public int insertViolationWarningInformation(MultipartFile[] files,ViolationWarningInformation violationWarningInformation) throws IOException { |
| 104 | + | ||
| 105 | + | ||
| 106 | + if(!innerArea.contains(violationWarningInformation.getOwningRegion()) && warnString.contains(violationWarningInformation.getViolationType()) | ||
| 107 | + && violationWarningInformation.getViolationObjectType() == "1") { | ||
| 108 | + | ||
| 109 | + log.info("不记录预警信息" + violationWarningInformation.getOwningRegion() + " " + violationWarningInformation.getViolationType()); | ||
| 110 | + | ||
| 111 | + return 1; | ||
| 112 | + | ||
| 113 | + } | ||
| 114 | + | ||
| 115 | + | ||
| 100 | if(violationWarningInformation.getCreateTime()==null){ | 116 | if(violationWarningInformation.getCreateTime()==null){ |
| 101 | violationWarningInformation.setCreateTime(DateUtils.getNowDate()); | 117 | violationWarningInformation.setCreateTime(DateUtils.getNowDate()); |
| 102 | } | 118 | } |
trash-workFlow/src/main/resources/mapper/caseOffline/CaseOfflineMapper.xml
| @@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | @@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | ||
| 36 | <where> | 36 | <where> |
| 37 | <if test="type != null and type != ''"> and type = #{type}</if> | 37 | <if test="type != null and type != ''"> and type = #{type}</if> |
| 38 | <if test="place != null and place != ''"> and place = #{place}</if> | 38 | <if test="place != null and place != ''"> and place = #{place}</if> |
| 39 | - <if test="createTime != null "> and DATE_FORMAT(create_time,("%y%m%d")) =DATE_FORMAT(#{createTime},("%y%m%d"))</if> | 39 | + <if test="startTime != null "> and create_time between #{startTime} and #{endTime}</if> |
| 40 | </where> | 40 | </where> |
| 41 | </select> | 41 | </select> |
| 42 | 42 |
trash-workFlow/src/main/resources/mapper/casefile/ViolationCaseFileMapper.xml
| @@ -49,6 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | @@ -49,6 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | ||
| 49 | <if test="readBy != null and readBy != ''"> and read_by = #{readBy}</if> | 49 | <if test="readBy != null and readBy != ''"> and read_by = #{readBy}</if> |
| 50 | <if test="readTime != null "> and read_time = #{readTime}</if> | 50 | <if test="readTime != null "> and read_time = #{readTime}</if> |
| 51 | <if test="createTime != null "> and DATE_FORMAT(create_time,("%y%m%d")) = DATE_FORMAT(#{createTime},("%y%m%d"))</if> | 51 | <if test="createTime != null "> and DATE_FORMAT(create_time,("%y%m%d")) = DATE_FORMAT(#{createTime},("%y%m%d"))</if> |
| 52 | + <if test="startTime != null "> and create_time between #{startTime} and #{endTime}</if> | ||
| 52 | </where> | 53 | </where> |
| 53 | order by create_time desc | 54 | order by create_time desc |
| 54 | </select> | 55 | </select> |
trash-workFlow/src/main/resources/mapper/casefile/ViolationWarningInformationMapper.xml
| @@ -41,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | @@ -41,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | ||
| 41 | <if test="projectName != null and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if> | 41 | <if test="projectName != null and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if> |
| 42 | <if test="companyName != null and companyName != ''"> and company_name like concat('%', #{companyName}, '%')</if> | 42 | <if test="companyName != null and companyName != ''"> and company_name like concat('%', #{companyName}, '%')</if> |
| 43 | <if test="createTime != null"> and DATE_FORMAT(create_time,("%y%m%d")) = DATE_FORMAT(#{createTime},("%y%m%d"))</if> | 43 | <if test="createTime != null"> and DATE_FORMAT(create_time,("%y%m%d")) = DATE_FORMAT(#{createTime},("%y%m%d"))</if> |
| 44 | + <if test="startTime != null "> and create_time between #{startTime} and #{endTime}</if> | ||
| 44 | </where> | 45 | </where> |
| 45 | order by create_time desc | 46 | order by create_time desc |
| 46 | </select> | 47 | </select> |