Commit b62eb65296822f540be065ed566b789bc6388f59

Authored by 273548560@qq.com
1 parent 1cda9357

修复bug

trash-common/src/main/java/com/trash/common/utils/RemoteServerUtils.java
... ... @@ -53,8 +53,9 @@ public class RemoteServerUtils {
53 53 public static String UpdateEarthSiteRequestPath = "/api/siteservice/cs/earthsites/status";
54 54  
55 55 public static String UpdateConractRequestPath = "/api/siteservice/cs/sitecontract/audit/status";
56   -
57   -
  56 +
  57 + public static String BasevehicleInfo = "/api/gpsservice/cs/basevehicle/";
  58 +
58 59 public static JSONArray getEarthSitesList(Map map){
59 60 JSONArray list=null;
60 61 Object object = post(EarthSitesList,map);
... ... @@ -534,7 +535,18 @@ public class RemoteServerUtils {
534 535  
535 536 return null;
536 537 }
  538 + public static JSONObject getBasevehicleInfo(String id,String token) {
  539 + JSONObject turckList=null;
  540 + Object object = get(BasevehicleInfo + id,null,token);
537 541  
  542 + if(object != null){
  543 + turckList = JSON.parseObject(object.toString());
  544 + return turckList;
  545 + }
  546 +
  547 + return turckList;
  548 +
  549 + }
538 550  
539 551  
540 552 }
... ...
trash-ui/src/views/casefile/violationCaseFile/index.vue
... ... @@ -29,7 +29,7 @@
29 29 <el-input
30 30 v-model="queryParams.projectName"
31 31 placeholder="请输入项目名称"
32   -
  32 +
33 33 size="small"
34 34  
35 35 />
... ... @@ -385,16 +385,10 @@ export default {
385 385 {code:29,name:"其他5"}],
386 386  
387 387 projectNameList:[
388   - {name:"项目1"},
389   - {name:"项目2"},
390   - {name:"项目3"},
391 388 ],
392 389 isLoading: false,
393 390 fileEntityList:[],
394 391 companyList:[
395   - {name:"公司1"},
396   - {name:"公司2"},
397   - {name:"公司3"},
398 392 ],
399 393 remoteQueryData: {
400 394 "page": 1,
... ... @@ -415,10 +409,10 @@ export default {
415 409  
416 410  
417 411 constructionsitesList(this.remoteQueryData).then(res => {
418   - this.data = res.result.list;
  412 + this.projectNameList = res.result.list;
419 413 earthsitesList(this.remoteQueryData).then(res => {
420 414 for(var i in res.result.list){
421   - this.data.push(res.result.list[i]);
  415 + this.projectNameList.push(res.result.list[i]);
422 416 }
423 417 });
424 418 });
... ...
trash-ui/src/views/casefile/violationWarningInformation/index.vue
... ... @@ -91,6 +91,7 @@
91 91 <el-table-column label="违规类型" align="center" prop="violationType" />
92 92 <el-table-column label="项目名称" align="center" prop="projectName" />
93 93 <el-table-column label="企业名称" align="center" prop="companyName" />
  94 + <el-table-column label="日期" align="center" prop="createTime"/>
94 95 <el-table-column label="审批状态" align="center" prop="status">
95 96 <template slot-scope="scope">
96 97 <span>{{parseStatus(scope.row.status) }}</span>
... ... @@ -198,7 +199,7 @@
198 199 <el-row>
199 200 <el-col :span="22">
200 201 <el-form-item label="违规描述" prop="describe">
201   - <el-input v-model="form.describe" type="textarea" placeholder="请输入内容" :row="4"/>
  202 + <el-input v-model="form.describe" type="textarea" placeholder="请输入内容" :rows="4"/>
202 203 </el-form-item>
203 204 </el-col>
204 205 </el-row>
... ... @@ -332,47 +333,26 @@ export default {
332 333 { required: true, message: "必填", trigger: "blur" }
333 334 ],
334 335 },
335   - caseType:[{code:0,name:"进入非专用车辆"},
336   - {code:1,name:"无许可手续(工)"},
337   - {code:2,name:"无许可手续(消)"},
338   - {code:3,name:"黄土覆盖情况"},
339   - {code:4,name:"出入口路面污染"},
340   - {code:5,name:"出入口道路硬化"},
341   - {code:6,name:"车辆冲洗是否到位"},
342   - {code:7,name:"雾炮机是否正常开启"},
343   - {code:8,name:"使用费专用车运输"},
344   - {code:9,name:"监控点位未对准"},
345   - {code:10,name:"未报开工作业"},
346   - {code:11,name:"视频设备离线超时报警"},
347   - {code:12,name:"三无车辆进入工地"},
348   - {code:13,name:"未按时间作业"},
349   - {code:14,name:"未报开工作业"},
350   - {code:15,name:"视频设备离线超时报警"},
351   - {code:16,name:"三无车辆进入消纳场"},
352   - {code:17,name:"未到指定的消纳场作业"},
353   - {code:18,name:"离线运输报警(工)"},
354   - {code:19,name:"离线运输报警(消)"},
355   - {code:20,name:"未激活车辆作业"},
356   - {code:21,name:"未核准作业车辆作业"},
357   - {code:22,name:"未按线路行驶"},
358   - {code:23,name:"闯禁行驶"},
359   - {code:24,name:"失信车辆作业"},
360   - {code:25,name:"其他1"},
361   - {code:26,name:"其他2"},
362   - {code:27,name:"其他3"},
363   - {code:28,name:"其他4"},
364   - {code:29,name:"其他5"}],
  336 + caseType:[{code:0,name:"工地预警-未报开工作业"},
  337 + {code:1,name:"工地预警-视频设备离线超时报警"},
  338 + {code:2,name:"工地预警-三无车辆进入工地"},
  339 + {code:3,name:"工地预警未按时间作业"},
  340 + {code:4,name:"消纳场预警-未报开工作业"},
  341 + {code:5,name:"消纳场预警-视频设备离线超时报警"},
  342 + {code:6,name:"消纳场预警-三无车辆进入消纳场"},
  343 + {code:7,name:"消纳场预警-未到指定的消纳场作业"},
  344 + {code:8,name:"离线运输报警(工)"},
  345 + {code:9,name:"离线运输报警(消)"},
  346 + {code:10,name:"未激活车辆作业"},
  347 + {code:11,name:"未核准作业车辆作业"},
  348 + {code:12,name:"未按线路行驶"},
  349 + {code:13,name:"闯禁行驶"},
  350 + {code:14,name:"失信车辆作业"}],
365 351 projectNameList:[
366   - {name:"项目1"},
367   - {name:"项目2"},
368   - {name:"项目3"},
369 352 ],
370 353 isLoading: false,
371 354 fileEntityList:[],
372 355 companyList:[
373   - {name:"公司1"},
374   - {name:"公司2"},
375   - {name:"公司3"},
376 356 ],
377 357 remoteQueryData: {
378 358 "page": 1,
... ... @@ -393,14 +373,15 @@ export default {
393 373  
394 374  
395 375 constructionsitesList(this.remoteQueryData).then(res => {
396   - this.data = res.result.list;
  376 + this.projectNameList = res.result.list;
397 377 earthsitesList(this.remoteQueryData).then(res => {
398 378 for(var i in res.result.list){
399   - this.data.push(res.result.list[i]);
  379 + this.projectNameList.push(res.result.list[i]);
400 380 }
401 381 });
402 382 });
403 383  
  384 + console.log(this.data);
404 385  
405 386 companyList(this.remoteQueryData).then(res => {
406 387 this.companyList = res.result.list;
... ...
trash-ui/src/views/casefile/violationWarningInformation/violationWarningInformationInfo.vue
... ... @@ -68,18 +68,13 @@
68 68 </el-col>
69 69 <el-col :span="11">
70 70 <el-form-item label="接收人" prop="receive">
71   - <el-input :value="form.receive!=null?form.receive:'' + form.receiveStatus!=null?form.receiveStatus:''"
  71 + <el-input :value="form.readBy!=null?form.readBy:''"
72 72 :disabled="true"/>
73 73 </el-form-item>
74 74 </el-col>
75 75 </el-row>
76 76 <el-row :gutter="2">
77 77 <el-col :span="11">
78   - <el-form-item label="阅读人" prop="createBy">
79   - <el-input :value="form.readBy" :disabled="true"/>
80   - </el-form-item>
81   - </el-col>
82   - <el-col :span="11">
83 78 <el-form-item label="阅读时间" prop="createBy">
84 79 <el-input :value="form.readTime" :disabled="true"/>
85 80 </el-form-item>
... ... @@ -88,7 +83,7 @@
88 83 <el-row>
89 84 <el-col :span="22">
90 85 <el-form-item label="违规描述" prop="describe">
91   - <el-input v-model="form.describe" type="textarea" placeholder="请输入内容" :row="4" :disabled="true"/>
  86 + <el-input v-model="form.describe" type="textarea" placeholder="请输入内容" :rows="5" :disabled="true"/>
92 87 </el-form-item>
93 88 </el-col>
94 89 </el-row>
... ... @@ -189,7 +184,7 @@ export default {
189 184 let files = JSON.stringify(response.data.uploadFiles);
190 185 this.fileEntityList = JSON.parse(files.replaceAll("filePath", "url").replaceAll("fileName", "name"));
191 186 });
192   - listReplyApprovalProcess({tableName:"workflow_casefile" + ":" + this.idInfo}).then(response => {
  187 + listReplyApprovalProcess({tableName:"violation_warning" + ":" + this.idInfo}).then(response => {
193 188 this.replyApprovalProcessList = response.rows;
194 189 });
195 190 },
... ...
trash-workFlow/src/main/java/com/trash/casefile/domain/ViolationWarningInformation.java
... ... @@ -106,6 +106,15 @@ public class ViolationWarningInformation extends BaseEntity {
106 106 @Excel(name = "阅览时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
107 107 private Date readTime;
108 108  
  109 + private String abbreviation;
  110 +
  111 + public String getAbbreviation() {
  112 + return abbreviation;
  113 + }
  114 +
  115 + public void setAbbreviation(String abbreviation) {
  116 + this.abbreviation = abbreviation;
  117 + }
109 118  
110 119 public void setId(Long id) {
111 120 this.id = id;
... ...
trash-workFlow/src/main/java/com/trash/casefile/kafka/Consumer.java
... ... @@ -3,11 +3,14 @@ package com.trash.casefile.kafka;
3 3 import com.alibaba.fastjson.JSONArray;
4 4 import com.alibaba.fastjson.JSONObject;
5 5 import com.trash.casefile.domain.ViolationWarningInformation;
  6 +import com.trash.casefile.mapper.ViolationWarningInformationMapper;
6 7 import com.trash.casefile.service.IViolationWarningInformationService;
7 8 import com.trash.common.config.trashConfig;
  9 +import com.trash.common.core.redis.RedisCache;
8 10 import com.trash.common.utils.DateUtils;
9 11 import com.trash.common.utils.RemoteServerUtils;
10 12 import com.trash.common.utils.StringUtils;
  13 +import com.trash.common.utils.spring.SpringUtils;
11 14 import com.trash.framework.web.service.SysLoginService;
12 15 import org.apache.commons.lang3.time.DateFormatUtils;
13 16 import org.slf4j.Logger;
... ... @@ -20,10 +23,8 @@ import org.springframework.messaging.handler.annotation.Payload;
20 23 import org.springframework.stereotype.Component;
21 24  
22 25 import java.io.IOException;
23   -import java.util.ArrayList;
24   -import java.util.Date;
25   -import java.util.List;
26   -import java.util.Map;
  26 +import java.util.*;
  27 +import java.util.concurrent.TimeUnit;
27 28  
28 29 @Component
29 30 public class Consumer {
... ... @@ -32,7 +33,7 @@ public class Consumer {
32 33 @Autowired
33 34 private IViolationWarningInformationService violationWarningInformationService;
34 35  
35   - @KafkaListener(topics="record_process_alarm")
  36 + @KafkaListener(topics = "record_process_alarm")
36 37 public void consume(@Payload String data) {
37 38 log.info("kafka消费数据成功,data:" + data);
38 39 autoViolationWarning(data);
... ... @@ -44,92 +45,120 @@ public class Consumer {
44 45 @Autowired
45 46 SysLoginService loginService;
46 47  
  48 + @Autowired
  49 + RedisCache redisCache;
  50 +
47 51 public void autoViolationWarning(String data) {
48   -// String[] code = {"44030020=工地预警-未报开工作业","44030021=工地预警-视频设备离线超时报警","44030022=工地预警-三无车辆进入工地","44030023=工地预警未按时间作业",
49   -// "44030024=消纳场预警-未报开工作业","44030025=消纳场预警-视频设备离线超时报警","44030026=消纳场预警-三无车辆进入消纳场","44030027=消纳场预警-未到指定的消纳场作业",
50   -// "44030028=离线运输报警(工)","44030029=离线运输报警(消)","44030030=未激活车辆作业","44030031=未核准作业车辆作业","44030032=未按线路行驶",
51   -// "44030033=闯禁行驶","44030034=失信车辆作业"};
52   -// JSONObject jsonObject = JSONObject.parseObject(data);
53   -// ViolationWarningInformation violationWarningInformation = new ViolationWarningInformation();
54   -// String siteType = jsonObject.getString("siteType");
55   -//
56   -//
57   -// if(StringUtils.isEmpty(RemoteServerUtils.remote)){
58   -// RemoteServerUtils.remote = trashConfig.getRemotePath();
59   -// }
60   -// loginService.loginByRemote(trashConfig.getToken());
61   -// JSONArray jsonArray = RemoteServerUtils.getAreas(trashConfig.getToken());
62   -// if("1".equals(siteType)){//工地
63   -// violationWarningInformation.setViolationObjectType("0");
64   -// JSONObject object = RemoteServerUtils.getConstructionInfo(jsonObject.getString("siteId"),trashConfig.getToken());
65   -// String areaCode = object.get("areaCode").toString();
66   -// for(Object areasObject:jsonArray){
67   -// JSONObject areas = (JSONObject) areasObject;
68   -// if(areaCode.equals(areas.getString("code"))){
69   -// violationWarningInformation.setOwningRegion(areas.getString("name"));
70   -// break;
71   -// }
72   -// }
73   -// }else if("2".equals(siteType)){//消纳场
74   -// violationWarningInformation.setViolationObjectType("1");
75   -// JSONObject object = RemoteServerUtils.getEarthSitesInfo(jsonObject.getString("siteId"),trashConfig.getToken());
76   -// String areaCode = object.get("areaCode").toString();
77   -// for(Object areasObject:jsonArray){
78   -// JSONObject areas = (JSONObject) areasObject;
79   -// if(areaCode.equals(areas.getString("code"))){
80   -// violationWarningInformation.setOwningRegion(areas.getString("name"));
81   -// break;
82   -// }
83   -// }
84   -// }
85   -// String number = DateFormatUtils.format(new Date(), "yyyyMMddHHmmssSSS");
86   -// violationWarningInformation.setNumber(number.substring(2, number.length()));
87   -// violationWarningInformation.setCompanyName(jsonObject.getString("enterpriseName"));
88   -// String violationTypeCode = jsonObject.getString("alarmType");
89   -// for (int i = 0; i < code.length; i++) {
90   -// if (violationTypeCode.equals(code[i].split("=")[0])) {
91   -// violationWarningInformation.setViolationType(code[i].split("=")[1]);
92   -// break;
93   -// }
94   -// }
95   -// //发送人
96   -// violationWarningInformation.setCreateBy("长沙市建筑垃圾智慧监管平台");
97   -// //推送对象
98   -// violationWarningInformation.setViolationGrade("一般类");
99   -// switch (violationWarningInformation.getViolationType()){
100   -// case "工地预警-未报开工作业":
101   -// case "消纳场预警-未到指定的消纳场作业":
102   -// case "消纳场预警-三无车辆进入消纳场":
103   -// case "消纳场预警-未报开工作业":
104   -// case "工地预警未按时间作业":
105   -// case "工地预警-三无车辆进入工地":
106   -// case "工地预警-视频设备离线超时报警":
107   -// case "离线运输报警(消)":
108   -// case "离线运输报警(工)":
109   -// case "未激活车辆作业":
110   -// case "未核准作业车辆作业":
111   -// violationWarningInformation.setSendObject("区管理部门(治)");
112   -// break;
113   -// case "消纳场预警-视频设备离线超时报警":
114   -// violationWarningInformation.setSendObject("区管理部门(消)");
115   -// break;
116   -// case "未按线路行驶":
117   -// violationWarningInformation.setViolationGrade("重点类");
118   -// violationWarningInformation.setSendObject("区管理部门(治)");
119   -// break;
120   -// case "闯禁行驶":
121   -// case "失信车辆作业":
122   -// violationWarningInformation.setSendObject("运输企业");
123   -// violationWarningInformation.setCompanyName(jsonObject.getString("enterpriseName"));
124   -// break;
125   -// }
126   -//
127   -// // 业务逻辑
128   -// try {
129   -// violationWarningInformationService.insertViolationWarningInformation(null,violationWarningInformation);
130   -// } catch (IOException e) {
131   -// e.printStackTrace();
132   -// }
  52 + String[] code = {"44030020=工地预警-未报开工作业", "44030021=工地预警-视频设备离线超时报警", "44030022=工地预警-三无车辆进入工地", "44030023=工地预警未按时间作业",
  53 + "44030024=消纳场预警-未报开工作业", "44030025=消纳场预警-视频设备离线超时报警", "44030026=消纳场预警-三无车辆进入消纳场", "44030027=消纳场预警-未到指定的消纳场作业",
  54 + "44030028=离线运输报警(工)", "44030029=离线运输报警(消)", "44030030=未激活车辆作业", "44030031=未核准作业车辆作业", "44030032=未按线路行驶",
  55 + "44030033=闯禁行驶", "44030034=失信车辆作业"};
  56 + JSONObject jsonObject = JSONObject.parseObject(data);
  57 + String nowDate = DateFormatUtils.format(new Date(), "yyyy-MM-dd");
  58 + String tomorrowDate = DateFormatUtils.format(DateUtils.addDays(new Date(), 1), "yyyy-MM-dd");
  59 + String violationType = jsonObject.getString("alarmName");
  60 + if(RemoteServerUtils.remote==null){
  61 + //登录
  62 + RemoteServerUtils.remote = trashConfig.getRemotePath();
  63 + loginService.loginByRemote(trashConfig.getToken());
  64 + }
  65 + ViolationWarningInformation violationWarningInformation1 = null;
  66 + JSONArray company1 = redisCache.getCacheObject("company");
  67 + JSONObject basevehicleInfo = RemoteServerUtils.getBasevehicleInfo(jsonObject.getString("vehicleId"),trashConfig.getToken());
  68 + if(company1==null){
  69 + Map map = new HashMap<>();
  70 + map.put("size",9999);
  71 + map.put("page",1);
  72 + company1 = RemoteServerUtils.getCompanyList(map, trashConfig.getToken());
  73 + redisCache.setCacheObject("company",company1,1, TimeUnit.HOURS);
  74 + }
  75 +
  76 + //这两种类型无需累加
  77 + if(violationType.equals("工地预警-视频设备离线超时报警") || violationType.equals("消纳场预警-视频设备离线超时报警")){
  78 + violationWarningInformation1 = null;
  79 + }else if(violationType.equals("闯禁行驶")||violationType.equals("失信车辆作业")){//这两种类型根据公司累加
  80 + String company = jsonObject.getString("enterpriseName");
  81 + violationWarningInformation1 = SpringUtils.getBean(ViolationWarningInformationMapper.class).selectViolationWarningInformation(company,null, violationType, nowDate, tomorrowDate);
  82 + }else{//其他都是根据工地/消纳站累加
  83 + String project = jsonObject.getString("siteName");
  84 + violationWarningInformation1 = SpringUtils.getBean(ViolationWarningInformationMapper.class).selectViolationWarningInformation(null,project, violationType, nowDate, tomorrowDate);
  85 + }
  86 + //判断该类型,该工地,该时间段是否已经存在报警信息,如果存在则不再新增,如果不存在则新增
  87 + if (violationWarningInformation1 == null) {
  88 + ViolationWarningInformation violationWarningInformation = new ViolationWarningInformation();
  89 + String siteType = jsonObject.getString("siteType");
  90 + if ("1".equals(siteType)) {//工地
  91 + violationWarningInformation.setViolationObjectType("0");
  92 + } else if ("2".equals(siteType)) {//消纳场
  93 + violationWarningInformation.setViolationObjectType("1");
  94 + }
  95 + //所属区域
  96 + violationWarningInformation.setOwningRegion(jsonObject.getString("areaName"));
  97 + //案卷编码
  98 + String number = DateFormatUtils.format(new Date(), "yyyyMMddHHmmssSSS");
  99 + violationWarningInformation.setNumber(number.substring(2));
  100 + //公司名称
  101 + violationWarningInformation.setCompanyName(jsonObject.getString("enterpriseName"));
  102 + //违规类型
  103 + violationWarningInformation.setViolationType(jsonObject.getString("alarmName"));
  104 + //发送人
  105 + violationWarningInformation.setCreateBy("长沙市建筑垃圾智慧监管平台");
  106 + //推送对象
  107 + violationWarningInformation.setViolationGrade("一般类");
  108 + //项目名称(工地名称,消纳场名称)
  109 + violationWarningInformation.setProjectName(jsonObject.getString("siteName"));
  110 + violationWarningInformation.setSendObject("区管理部门(治)");
  111 + switch (violationWarningInformation.getViolationType()) {
  112 + case "工地预警-未报开工作业":
  113 + case "消纳场预警-未到指定的消纳场作业":
  114 + case "消纳场预警-三无车辆进入消纳场":
  115 + case "消纳场预警-未报开工作业":
  116 + case "工地预警-未按时间作业":
  117 + case "工地预警-三无车辆进入工地":
  118 + case "工地预警-视频设备离线超时报警":
  119 + case "离线运输报警(消)":
  120 + case "离线运输报警(工)":
  121 + case "未激活车辆作业":
  122 + case "未核准作业车辆作业":
  123 + violationWarningInformation.setSendObject("区管理部门(治)");
  124 + break;
  125 + case "消纳场预警-视频设备离线超时报警":
  126 + violationWarningInformation.setSendObject("区管理部门(消)");
  127 + break;
  128 + case "未按线路行驶":
  129 + violationWarningInformation.setViolationGrade("重点类");
  130 + violationWarningInformation.setSendObject("区管理部门(治)");
  131 + break;
  132 + case "闯禁行驶":
  133 + case "失信车辆作业":
  134 + violationWarningInformation.setSendObject("运输企业");
  135 + break;
  136 + }
  137 +
  138 + String describe = DateFormatUtils.format(new Date(), "yyyy/MM/dd HH:mm:ss") + " "
  139 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  140 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  141 + //设置公司简称
  142 + for(Object o:company1){
  143 + JSONObject jo = (JSONObject) o;
  144 + if(basevehicleInfo.getString("companyID").equals(jo.getString("id"))){
  145 + violationWarningInformation.setAbbreviation(jo.getString("abbreviation"));
  146 + }
  147 + }
  148 + violationWarningInformation.setDescribe(describe);
  149 + // 业务逻辑
  150 + try {
  151 + violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);
  152 + } catch (IOException e) {
  153 + e.printStackTrace();
  154 + }
  155 + } else {
  156 + String describe = violationWarningInformation1.getDescribe() + ";" + DateFormatUtils.format(new Date(), "yyyy/MM/dd HH:mm:ss") + " "
  157 + + jsonObject.getString("enterpriseName") + " " + jsonObject.get("licenseplateNo") + "在" +
  158 + jsonObject.get("siteName") + "出现" + jsonObject.getString("alarmName");
  159 + violationWarningInformation1.setDescribe(describe);
  160 + SpringUtils.getBean(ViolationWarningInformationMapper.class).updateViolationWarningInformation(violationWarningInformation1);
  161 + }
133 162  
134 163  
135 164 }
... ...
trash-workFlow/src/main/java/com/trash/casefile/mapper/ViolationWarningInformationMapper.java
... ... @@ -2,6 +2,8 @@ package com.trash.casefile.mapper;
2 2  
3 3 import java.util.List;
4 4 import com.trash.casefile.domain.ViolationWarningInformation;
  5 +import org.apache.ibatis.annotations.Param;
  6 +import org.springframework.security.core.parameters.P;
5 7  
6 8 /**
7 9 * 违规预警信息Mapper接口
... ... @@ -20,6 +22,15 @@ public interface ViolationWarningInformationMapper
20 22 ViolationWarningInformation selectViolationWarningInformationById(Long id);
21 23  
22 24 /**
  25 + * 根据项目名称、类型、创建时间查询违规预警信息
  26 + * @param projectName
  27 + * @param type
  28 + * @param createDate
  29 + * @return
  30 + */
  31 + ViolationWarningInformation selectViolationWarningInformation(@Param("companyName") String companyName, @Param("projectName")String projectName, @Param("type")String type, @Param("nowDate") String nowDate, @Param("tomorrowDate")String tomorrowDate);
  32 +
  33 + /**
23 34 * 查询违规预警信息列表
24 35 *
25 36 * @param violationWarningInformation 违规预警信息
... ...
trash-workFlow/src/main/java/com/trash/casefile/service/IViolationWarningInformationService.java
... ... @@ -23,6 +23,7 @@ public interface IViolationWarningInformationService {
23 23 */
24 24 ViolationWarningInformationVo selectViolationWarningInformationById(Long id);
25 25  
  26 +
26 27 /**
27 28 * 查询违规预警信息列表
28 29 *
... ...
trash-workFlow/src/main/java/com/trash/workflow/service/impl/WorkflowServiceImpl.java
... ... @@ -3,10 +3,12 @@ package com.trash.workflow.service.impl;
3 3 import java.text.SimpleDateFormat;
4 4 import java.util.List;
5 5 import java.util.Map;
  6 +import java.util.concurrent.TimeUnit;
6 7 import java.util.stream.Collectors;
7 8  
8 9 import com.trash.casefile.domain.ViolationWarningInformation;
9 10 import com.trash.common.config.trashConfig;
  11 +import com.trash.common.core.redis.RedisCache;
10 12 import com.trash.framework.web.service.SysLoginService;
11 13 import org.activiti.api.process.model.ProcessInstance;
12 14 import org.activiti.api.process.model.builders.ProcessPayloadBuilder;
... ... @@ -19,6 +21,9 @@ import org.activiti.engine.task.IdentityLinkType;
19 21 import org.activiti.engine.task.Task;
20 22 import org.apache.commons.collections4.map.HashedMap;
21 23 import org.springframework.beans.factory.annotation.Autowired;
  24 +import org.springframework.security.core.context.SecurityContext;
  25 +import org.springframework.security.core.context.SecurityContextHolder;
  26 +import org.springframework.security.core.context.SecurityContextImpl;
22 27 import org.springframework.stereotype.Service;
23 28 import org.springframework.transaction.annotation.Transactional;
24 29  
... ... @@ -71,11 +76,14 @@ public class WorkflowServiceImpl implements IWorkflowService {
71 76 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
72 77  
73 78 @Autowired
74   - RuntimeService runTImeService;
  79 + RuntimeService runtimeService;
75 80  
76 81 @Autowired
77 82 ISupervisionThreestepService server;
78 83  
  84 + @Autowired
  85 + RedisCache redisCache;
  86 +
79 87 @Override
80 88 @Transactional
81 89 public int createWorkFlow(Map<String, Object> data) { //第三方通用接收接口
... ... @@ -269,32 +277,39 @@ public class WorkflowServiceImpl implements IWorkflowService {
269 277 }
270 278 loginService.loginByRemote(trashConfig.getToken());
271 279 }
272   - ProcessInstance processInstance = null;
  280 + SecurityContextImpl securityContextImpl = new SecurityContextImpl();
  281 +
  282 + securityContextImpl.setAuthentication(SecurityContextHolder.getContext().getAuthentication());
  283 + org.activiti.engine.runtime.ProcessInstance instance = null;
273 284 String title = "案卷号:" + caseFile.getNumber();
274 285 String flowType = "violation_warning";
275 286 try {
  287 + Map map = new HashedMap<>();
  288 +
  289 + map.put("route", index);
  290 + instance = runtimeService.createProcessInstanceBuilder()
  291 + .businessKey(flowType + ":" + caseFile.getId())
  292 + .variable("route", index)
  293 + .processDefinitionKey(flowType)
  294 + .variables(map)
  295 + .start();
  296 +
276 297  
277   - processInstance = processRuntime.start(ProcessPayloadBuilder
278   - .start()
279   - .withProcessDefinitionKey(flowType)
280   - .withName(title)
281   - .withBusinessKey(flowType + ":" + caseFile.getId())
282   - .withVariable("route", index)
283   - .build());
  298 +
  299 +
  300 + //runtimeService.startProcessInstanceById(instance.getProcessDefinitionId(),map);
284 301  
285 302  
286 303 if(index == 0){
287   - Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
  304 + Task task = taskService.createTaskQuery().processInstanceId(instance.getId()).singleResult();
288 305  
289   - task.setAssignee(caseFile.getCompanyName());
  306 + task.setAssignee(caseFile.getAbbreviation());
290 307  
291 308 taskService.saveTask(task);
292 309 }else{
293   - updateProcess(processInstance,caseFile.getOwningRegion());
  310 + updateProcessKafka(instance,caseFile.getOwningRegion(), trashConfig.getToken());
294 311 }
295 312  
296   -
297   -
298 313 Workflow workflow = new Workflow();
299 314 workflow.setId(flowType + ":" + caseFile.getId());
300 315 workflow.setTitle(title);
... ... @@ -302,12 +317,12 @@ public class WorkflowServiceImpl implements IWorkflowService {
302 317 workflow.setStartTime(sdf.format(caseFile.getCreateTime()));
303 318 workflow.setEndTime(sdf.format(caseFile.getCreateTime()));
304 319 workflow.setType("违规预警信息案卷");
305   - workflow.setInstanceId(processInstance.getId());
  320 + workflow.setInstanceId(instance.getId());
306 321 workflow.setState("0");
307 322  
308 323 return workflowMapper.insertWorkflow(workflow);
309 324 } catch (Exception e) {
310   - processRuntime.delete(ProcessPayloadBuilder.delete(processInstance));
  325 + runtimeService.deleteProcessInstance(instance.getId(), "创建失败");
311 326 throw new RuntimeException(e);
312 327 }
313 328  
... ... @@ -375,15 +390,64 @@ public class WorkflowServiceImpl implements IWorkflowService {
375 390 }
376 391  
377 392 }
378   -
  393 +
379 394 void updateProcess(ProcessInstance processInstance,String placeName){
  395 + Map map = new HashedMap<>();
  396 +
  397 + map.put("type", "CSUserDepartmentType");
  398 +
  399 + JSONArray array2 = RemoteServerUtils.getDict(map);
  400 +
  401 +
  402 + String placeCode = null;
  403 + String code = null;
  404 +
  405 + for(Object obj:array2){
  406 + if(((JSONObject)obj).getString("name").equals("渣土办")){
  407 + code = ((JSONObject)(obj)).getString("code");
  408 + }
  409 + if(((JSONObject)obj).getString("name").replace("渣土办", "").equals(placeName)){
  410 + placeCode = ((JSONObject)(obj)).getString("code");
  411 +
  412 + if(code != null){
  413 + break;
  414 + }
  415 + }
  416 +
  417 + }
  418 +
  419 + if(placeCode != null){
  420 + Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
  421 +
  422 +
  423 + List<IdentityLink> list = taskService.getIdentityLinksForTask(task.getId());
  424 +
  425 + for(IdentityLink identityLink:list){
  426 +// if(identityLink.getGroupId() != null)
  427 +// taskService.deleteGroupIdentityLink(task.getId(), identityLink.getGroupId(), identityLink.getType());
  428 + if(identityLink.getUserId() != null)
  429 + taskService.deleteUserIdentityLink(task.getId(), identityLink.getUserId(), identityLink.getType());
  430 + }
  431 +
  432 + taskService.addCandidateUser(task.getId(), placeCode);
  433 +
  434 + task.setDescription(placeCode);
  435 +
  436 + taskService.saveTask(task);
  437 + }
  438 + };
  439 +
  440 + void updateProcessKafka(org.activiti.engine.runtime.ProcessInstance processInstance,String placeName,String token){
380 441 Map map = new HashedMap<>();
381 442  
382 443 map.put("type", "CSUserDepartmentType");
383 444  
384   - JSONArray array2 = RemoteServerUtils.getDict(map);
385   -
386   -
  445 +
  446 + JSONArray array2 = redisCache.getCacheObject("dict");
  447 + if(array2==null||array2.size()==0){
  448 + array2 = RemoteServerUtils.getDict(map,token);
  449 + redisCache.setCacheObject("dict",array2,24, TimeUnit.HOURS);
  450 + }
387 451 String placeCode = null;
388 452 String code = null;
389 453  
... ...
trash-workFlow/src/main/resources/mapper/casefile/ViolationWarningInformationMapper.xml
... ... @@ -27,7 +27,7 @@ PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
27 27 </resultMap>
28 28  
29 29 <sql id="selectViolationWarningInformationVo">
30   - select id, `number`, violation_object_type, owning_region, violation_type, violation_grade, project_name, company_name, `describe`, send_object, create_time, create_by, update_time, update_by, status, receive, receive_status, read_by, read_time from casefile_violation_warning_information
  30 + select id, `number`, violation_object_type, owning_region, violation_type, violation_grade, project_name, company_name, `describe`, send_object, create_time, create_by, update_time, update_by, status, receive, receive_status, read_by, read_time,abbreviation from casefile_violation_warning_information
31 31 </sql>
32 32  
33 33 <select id="selectViolationWarningInformationList" parameterType="ViolationWarningInformation" resultMap="ViolationWarningInformationResult">
... ... @@ -47,7 +47,16 @@ PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
47 47 <include refid="selectViolationWarningInformationVo"/>
48 48 where id = #{id}
49 49 </select>
50   -
  50 + <select id="selectViolationWarningInformation"
  51 + resultType="com.trash.casefile.domain.ViolationWarningInformation">
  52 + <include refid="selectViolationWarningInformationVo"/>
  53 + <where>
  54 + <if test="projectName!=null">project_name = #{projectName}</if>
  55 + <if test="companyName!=null">company_name = #{companyName}</if>
  56 + and violation_type = #{type} and create_time between CONCAT(#{nowDate},' 08:00:00') and CONCAT(#{tomorrowDate},' 07:59:59')
  57 + </where>
  58 + </select>
  59 +
51 60 <insert id="insertViolationWarningInformation" parameterType="ViolationWarningInformation" useGeneratedKeys="true" keyProperty="id">
52 61 insert into casefile_violation_warning_information
53 62 <trim prefix="(" suffix=")" suffixOverrides=",">
... ... @@ -63,6 +72,7 @@ PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
63 72 <if test="sendObject != null">send_object,</if>
64 73 <if test="createBy != null">create_by,</if>
65 74 <if test="status != null">status,</if>
  75 + <if test="abbreviation!=null">abbreviation,</if>
66 76 </trim>
67 77 <trim prefix="values (" suffix=")" suffixOverrides=",">
68 78 now(),
... ... @@ -77,6 +87,7 @@ PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
77 87 <if test="sendObject != null">#{sendObject},</if>
78 88 <if test="createBy != null">#{createBy},</if>
79 89 <if test="status != null">#{status},</if>
  90 + <if test="abbreviation!=null">#{abbreviation},</if>
80 91 </trim>
81 92 </insert>
82 93  
... ... @@ -99,6 +110,7 @@ PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
99 110 <if test="receiveStatus != null">receive_status = #{receiveStatus},</if>
100 111 <if test="readBy != null">read_by = #{readBy},</if>
101 112 <if test="readTime != null">read_time = #{readTime},</if>
  113 + <if test="abbreviation!=null">abbreviation=#{abbreviation},</if>
102 114 </trim>
103 115 where id = #{id}
104 116 </update>
... ...