Commit 30fb7566aaffb9c0fc01163b47a6d30c8199dbfe

Authored by youxiw2000
2 parents be16adfc 9304d22b

Merge branch 'dev' of http://101.95.0.106:8888/youxiw20000/trash into dev

trash-admin/src/main/resources/application.yml
@@ -9,18 +9,19 @@ spring: @@ -9,18 +9,19 @@ spring:
9 #kafka配置 9 #kafka配置
10 kafka: 10 kafka:
11 bootstrap-servers: 183.66.242.6:9101 11 bootstrap-servers: 183.66.242.6:9101
  12 + listener:
  13 + ack-mode: manual_immediate
12 producer: 14 producer:
13 x-serializer: org.apache.kafka.common.serialization.StringSerializer 15 x-serializer: org.apache.kafka.common.serialization.StringSerializer
14 value-serializer: org.apache.kafka.common.serialization.StringSerializer 16 value-serializer: org.apache.kafka.common.serialization.StringSerializer
15 buffer-memory: 33554432 17 buffer-memory: 33554432
16 acks: all 18 acks: all
17 consumer: 19 consumer:
18 - enable-auto-commit: true  
19 - group-id: trash123 20 + enable-auto-commit: false
  21 + group-id: trash
20 key-serializer: org.apache.kafka.common.serialization.StringSerializer 22 key-serializer: org.apache.kafka.common.serialization.StringSerializer
21 value-serializer: org.apache.kafka.common.serialization.StringSerializer 23 value-serializer: org.apache.kafka.common.serialization.StringSerializer
22 max-poll-records: 1 24 max-poll-records: 1
23 -  
24 # 资源信息 25 # 资源信息
25 messages: 26 messages:
26 # 国际化资源文件路径 27 # 国际化资源文件路径
trash-quartz/src/main/java/com/trash/quartz/task/DriverTask.java
@@ -9,11 +9,6 @@ import java.util.HashMap; @@ -9,11 +9,6 @@ import java.util.HashMap;
9 import java.util.List; 9 import java.util.List;
10 import java.util.Map; 10 import java.util.Map;
11 11
12 -import javax.servlet.FilterChain;  
13 -import javax.servlet.ServletException;  
14 -import javax.servlet.http.HttpServletRequest;  
15 -import javax.servlet.http.HttpServletResponse;  
16 -  
17 import com.trash.casefile.domain.KafkaCompensation; 12 import com.trash.casefile.domain.KafkaCompensation;
18 import com.trash.casefile.kafka.Consumer; 13 import com.trash.casefile.kafka.Consumer;
19 import com.trash.casefile.mapper.KafkaCompensationMapper; 14 import com.trash.casefile.mapper.KafkaCompensationMapper;
@@ -35,8 +30,6 @@ import com.trash.business.service.IDriverCreditService; @@ -35,8 +30,6 @@ import com.trash.business.service.IDriverCreditService;
35 import com.trash.business.service.ISupervisionThreestepService; 30 import com.trash.business.service.ISupervisionThreestepService;
36 import com.trash.business.service.ITruckActivateService; 31 import com.trash.business.service.ITruckActivateService;
37 import com.trash.business.service.ITruckCreditService; 32 import com.trash.business.service.ITruckCreditService;
38 -import com.trash.casefile.domain.ViolationWarningInformation;  
39 -import com.trash.common.annotation.Log;  
40 import com.trash.common.config.trashConfig; 33 import com.trash.common.config.trashConfig;
41 import com.trash.common.utils.LogUtils; 34 import com.trash.common.utils.LogUtils;
42 import com.trash.common.utils.RemoteServerUtils; 35 import com.trash.common.utils.RemoteServerUtils;
trash-ui/src/views/activiti/task/index.vue
1 <template> 1 <template>
2 <div class="app-container"> 2 <div class="app-container">
3 - <el-select v-model="queryParams.dept" filterable reserve-keyword @change="getList">  
4 - <el-option v-for="item in depts" :label="item.name"  
5 - :value="item.code" :key="item.code">  
6 - </el-option>  
7 - </el-select>  
8 - <el-select v-model="queryParams.role" filterable reserve-keyword @change="getList">  
9 - <el-option v-for="item in roles" :label="item.name"  
10 - :value="item.code" :key="item.code">  
11 - </el-option>  
12 - </el-select> 3 +<!-- <el-select v-model="queryParams.dept" filterable reserve-keyword @change="getList">-->
  4 +<!-- <el-option v-for="item in depts" :label="item.name"-->
  5 +<!-- :value="item.code" :key="item.code">-->
  6 +<!-- </el-option>-->
  7 +<!-- </el-select>-->
  8 +<!-- <el-select v-model="queryParams.role" filterable reserve-keyword @change="getList">-->
  9 +<!-- <el-option v-for="item in roles" :label="item.name"-->
  10 +<!-- :value="item.code" :key="item.code">-->
  11 +<!-- </el-option>-->
  12 +<!-- </el-select>-->
13 13
14 14
15 <taskCard :task="task" v-for="task in taskList" @sendToParent="showTask"/> 15 <taskCard :task="task" v-for="task in taskList" @sendToParent="showTask"/>
trash-workFlow/src/main/java/com/trash/casefile/kafka/Consumer.java
@@ -15,10 +15,12 @@ import com.trash.common.utils.StringUtils; @@ -15,10 +15,12 @@ import com.trash.common.utils.StringUtils;
15 import com.trash.common.utils.spring.SpringUtils; 15 import com.trash.common.utils.spring.SpringUtils;
16 import com.trash.framework.web.service.SysLoginService; 16 import com.trash.framework.web.service.SysLoginService;
17 import org.apache.commons.lang3.time.DateFormatUtils; 17 import org.apache.commons.lang3.time.DateFormatUtils;
  18 +import org.apache.kafka.clients.consumer.ConsumerRecord;
18 import org.slf4j.Logger; 19 import org.slf4j.Logger;
19 import org.slf4j.LoggerFactory; 20 import org.slf4j.LoggerFactory;
20 import org.springframework.beans.factory.annotation.Autowired; 21 import org.springframework.beans.factory.annotation.Autowired;
21 import org.springframework.kafka.annotation.KafkaListener; 22 import org.springframework.kafka.annotation.KafkaListener;
  23 +import org.springframework.kafka.support.Acknowledgment;
22 import org.springframework.kafka.support.KafkaHeaders; 24 import org.springframework.kafka.support.KafkaHeaders;
23 import org.springframework.messaging.handler.annotation.Header; 25 import org.springframework.messaging.handler.annotation.Header;
24 import org.springframework.messaging.handler.annotation.Payload; 26 import org.springframework.messaging.handler.annotation.Payload;
@@ -37,10 +39,12 @@ public class Consumer { @@ -37,10 +39,12 @@ public class Consumer {
37 private IViolationWarningInformationService violationWarningInformationService; 39 private IViolationWarningInformationService violationWarningInformationService;
38 40
39 @KafkaListener(topics = "record_process_alarm") 41 @KafkaListener(topics = "record_process_alarm")
40 - public void consume(@Payload String data) throws InterruptedException, IOException {  
41 - log.info("kafka消费数据成功,data:" + data);  
42 - String id = insertKafkaCompensation(data);  
43 - autoViolationWarning(data,id); 42 + public void consume(ConsumerRecord<?, ?> record, Acknowledgment ack) throws InterruptedException, IOException {
  43 + log.info("kafka消费数据成功,offset:"+ record.offset() +",data:" + record.value());
  44 + String id = insertKafkaCompensation(record.value().toString());
  45 + autoViolationWarning(record.value().toString(),id);
  46 + //手动提交offset
  47 + ack.acknowledge();
44 } 48 }
45 49
46 @Autowired 50 @Autowired
@@ -52,7 +56,6 @@ public class Consumer { @@ -52,7 +56,6 @@ public class Consumer {
52 @Autowired 56 @Autowired
53 RedisCache redisCache; 57 RedisCache redisCache;
54 58
55 - @Transactional  
56 public void autoViolationWarning(String data,String id) throws InterruptedException, IOException { 59 public void autoViolationWarning(String data,String id) throws InterruptedException, IOException {
57 60
58 String[] code = {"44030020=工地预警-未报开工作业", "44030021=工地预警-视频设备离线超时报警", "44030022=工地预警-三无车辆进入工地", "44030023=工地预警未按时间作业", 61 String[] code = {"44030020=工地预警-未报开工作业", "44030021=工地预警-视频设备离线超时报警", "44030022=工地预警-三无车辆进入工地", "44030023=工地预警未按时间作业",
@@ -72,8 +75,6 @@ public class Consumer { @@ -72,8 +75,6 @@ public class Consumer {
72 tomorrowDate = DateFormatUtils.format(DateUtils.addDays(new Date(), 1), "yyyy-MM-dd"); 75 tomorrowDate = DateFormatUtils.format(DateUtils.addDays(new Date(), 1), "yyyy-MM-dd");
73 } 76 }
74 77
75 -  
76 -  
77 String violationType = jsonObject.getString("alarmName"); 78 String violationType = jsonObject.getString("alarmName");
78 if(RemoteServerUtils.remote==null){ 79 if(RemoteServerUtils.remote==null){
79 //登录 80 //登录
@@ -81,19 +82,21 @@ public class Consumer { @@ -81,19 +82,21 @@ public class Consumer {
81 loginService.loginByRemote(trashConfig.getToken()); 82 loginService.loginByRemote(trashConfig.getToken());
82 } 83 }
83 ViolationWarningInformation violationWarningInformation1 = null; 84 ViolationWarningInformation violationWarningInformation1 = null;
84 - JSONArray company1 = redisCache.getCacheObject("companyList");  
85 - JSONObject basevehicleInfo = RemoteServerUtils.getBasevehicleInfo(jsonObject.getString("vehicleId"),trashConfig.getToken());  
86 - if(company1==null){  
87 - throw new RuntimeException("获取公司列表失败!!!");  
88 - }  
89 -  
90 - if(basevehicleInfo==null){  
91 - throw new RuntimeException("获取公司详情失败!vehicleId:"+jsonObject.getString("vehicleId"));  
92 - } 85 + JSONArray company1 = null;
  86 + JSONObject basevehicleInfo = null;
93 //这两种类型无需累加 87 //这两种类型无需累加
94 if(violationType.equals("工地预警-视频设备离线超时报警") || violationType.equals("消纳场预警-视频设备离线超时报警")){ 88 if(violationType.equals("工地预警-视频设备离线超时报警") || violationType.equals("消纳场预警-视频设备离线超时报警")){
95 violationWarningInformation1 = null; 89 violationWarningInformation1 = null;
96 }else if(violationType.equals("闯禁行驶")||violationType.equals("失信车辆作业")){//这两种类型根据公司累加 90 }else if(violationType.equals("闯禁行驶")||violationType.equals("失信车辆作业")){//这两种类型根据公司累加
  91 + company1 = redisCache.getCacheObject("companyList");
  92 + basevehicleInfo = RemoteServerUtils.getBasevehicleInfo(jsonObject.getString("vehicleId"),trashConfig.getToken());
  93 + if(company1==null){
  94 + throw new RuntimeException("获取公司列表失败!!!");
  95 + }
  96 +
  97 + if(basevehicleInfo==null){
  98 + throw new RuntimeException("获取公司详情失败!vehicleId:"+jsonObject.getString("vehicleId"));
  99 + }
97 String company = jsonObject.getString("enterpriseName"); 100 String company = jsonObject.getString("enterpriseName");
98 violationWarningInformation1 = SpringUtils.getBean(ViolationWarningInformationMapper.class).selectViolationWarningInformation(company,null, violationType, nowDate, tomorrowDate); 101 violationWarningInformation1 = SpringUtils.getBean(ViolationWarningInformationMapper.class).selectViolationWarningInformation(company,null, violationType, nowDate, tomorrowDate);
99 }else{//其他都是根据工地/消纳站累加 102 }else{//其他都是根据工地/消纳站累加
@@ -105,7 +108,7 @@ public class Consumer { @@ -105,7 +108,7 @@ public class Consumer {
105 ViolationWarningInformation violationWarningInformation = new ViolationWarningInformation(); 108 ViolationWarningInformation violationWarningInformation = new ViolationWarningInformation();
106 String siteType = jsonObject.getString("siteType"); 109 String siteType = jsonObject.getString("siteType");
107 if ("1".equals(siteType)) {//工地 110 if ("1".equals(siteType)) {//工地
108 - violationWarningInformation.setViolationObjectType("0"); 111 +
109 } else if ("2".equals(siteType)) {//消纳场 112 } else if ("2".equals(siteType)) {//消纳场
110 violationWarningInformation.setViolationObjectType("1"); 113 violationWarningInformation.setViolationObjectType("1");
111 } 114 }
@@ -123,53 +126,77 @@ public class Consumer { @@ -123,53 +126,77 @@ public class Consumer {
123 //推送对象 126 //推送对象
124 violationWarningInformation.setViolationGrade("一般类"); 127 violationWarningInformation.setViolationGrade("一般类");
125 //项目名称(工地名称,消纳场名称) 128 //项目名称(工地名称,消纳场名称)
126 - violationWarningInformation.setProjectName(jsonObject.getString("siteName")); 129 +
127 violationWarningInformation.setSendObject("区管理部门(治)"); 130 violationWarningInformation.setSendObject("区管理部门(治)");
  131 + String describe = "";
128 switch (violationWarningInformation.getViolationType()) { 132 switch (violationWarningInformation.getViolationType()) {
129 case "工地预警-未报开工作业": 133 case "工地预警-未报开工作业":
130 - case "消纳场预警-未到指定的消纳场作业":  
131 - case "消纳场预警-三无车辆进入消纳场":  
132 - case "消纳场预警-未报开工作业":  
133 case "工地预警-未按时间作业": 134 case "工地预警-未按时间作业":
134 case "工地预警-三无车辆进入工地": 135 case "工地预警-三无车辆进入工地":
135 case "工地预警-视频设备离线超时报警": 136 case "工地预警-视频设备离线超时报警":
136 - case "离线运输报警(消)":  
137 case "离线运输报警(工)": 137 case "离线运输报警(工)":
138 case "未激活车辆作业": 138 case "未激活车辆作业":
139 case "未核准作业车辆作业": 139 case "未核准作业车辆作业":
  140 + violationWarningInformation.setViolationObjectType("0");
140 violationWarningInformation.setSendObject("区管理部门(治)"); 141 violationWarningInformation.setSendObject("区管理部门(治)");
  142 + violationWarningInformation.setProjectName(jsonObject.getString("siteName"));
  143 + describe = DateFormatUtils.format(new Date(), "yyyy/MM/dd HH:mm:ss") + " "
  144 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  145 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
141 break; 146 break;
  147 + case "消纳场预警-未到指定的消纳场作业":
  148 + case "消纳场预警-三无车辆进入消纳场":
  149 + case "消纳场预警-未报开工作业":
  150 + case "离线运输报警(消)":
142 case "消纳场预警-视频设备离线超时报警": 151 case "消纳场预警-视频设备离线超时报警":
  152 + violationWarningInformation.setViolationObjectType("1");
143 violationWarningInformation.setSendObject("区管理部门(消)"); 153 violationWarningInformation.setSendObject("区管理部门(消)");
  154 + violationWarningInformation.setProjectName(jsonObject.getString("siteName"));
  155 + describe = DateFormatUtils.format(new Date(), "yyyy/MM/dd HH:mm:ss") + " "
  156 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  157 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
144 break; 158 break;
145 case "未按线路行驶": 159 case "未按线路行驶":
  160 + violationWarningInformation.setViolationObjectType("0");
146 violationWarningInformation.setViolationGrade("重点类"); 161 violationWarningInformation.setViolationGrade("重点类");
147 violationWarningInformation.setSendObject("区管理部门(治)"); 162 violationWarningInformation.setSendObject("区管理部门(治)");
  163 + describe = DateFormatUtils.format(new Date(), "yyyy/MM/dd HH:mm:ss") + " "
  164 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  165 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
148 break; 166 break;
149 case "闯禁行驶": 167 case "闯禁行驶":
150 case "失信车辆作业": 168 case "失信车辆作业":
  169 + violationWarningInformation.setViolationObjectType("2");
151 violationWarningInformation.setSendObject("运输企业"); 170 violationWarningInformation.setSendObject("运输企业");
  171 + describe = DateFormatUtils.format(new Date(), "yyyy/MM/dd HH:mm:ss") + " "
  172 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "出现" + violationWarningInformation.getViolationType();
  173 + //设置公司简称
  174 + for(Object o:company1){
  175 + JSONObject jo = (JSONObject) o;
  176 + if(basevehicleInfo.getString("companyID").equals(jo.getString("id"))){
  177 + violationWarningInformation.setAbbreviation(jo.getString("abbreviation"));
  178 + }
  179 + }
152 break; 180 break;
153 } 181 }
154 182
155 - String describe = DateFormatUtils.format(new Date(), "yyyy/MM/dd HH:mm:ss") + " "  
156 - + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
157 - jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
158 - //设置公司简称  
159 - for(Object o:company1){  
160 - JSONObject jo = (JSONObject) o;  
161 - if(basevehicleInfo.getString("companyID").equals(jo.getString("id"))){  
162 - violationWarningInformation.setAbbreviation(jo.getString("abbreviation"));  
163 - }  
164 - } 183 +
  184 +
165 violationWarningInformation.setDescribe(describe); 185 violationWarningInformation.setDescribe(describe);
166 // 业务逻辑 186 // 业务逻辑
167 violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation); 187 violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);
168 188
169 } else { 189 } else {
170 - String describe = violationWarningInformation1.getDescribe() + ";\n" + DateFormatUtils.format(new Date(), "yyyy/MM/dd HH:mm:ss") + " "  
171 - + jsonObject.getString("enterpriseName") + " " + jsonObject.get("licenseplateNo") + "在" +  
172 - jsonObject.get("siteName") + "出现" + jsonObject.getString("alarmName"); 190 + String describe = "";
  191 + if(violationType.equals("闯禁行驶")||violationType.equals("失信车辆作业")){
  192 + describe = violationWarningInformation1.getDescribe() + ";\n" + DateFormatUtils.format(new Date(), "yyyy/MM/dd HH:mm:ss") + " "
  193 + + jsonObject.getString("enterpriseName") + " " + jsonObject.get("licenseplateNo") + "出现" + jsonObject.getString("alarmName");
  194 + }else{
  195 + describe = violationWarningInformation1.getDescribe() + ";\n" + DateFormatUtils.format(new Date(), "yyyy/MM/dd HH:mm:ss") + " "
  196 + + jsonObject.getString("enterpriseName") + " " + jsonObject.get("licenseplateNo") + "在" +
  197 + jsonObject.get("siteName") + "出现" + jsonObject.getString("alarmName");
  198 + }
  199 +
173 violationWarningInformation1.setDescribe(describe); 200 violationWarningInformation1.setDescribe(describe);
174 SpringUtils.getBean(ViolationWarningInformationMapper.class).updateViolationWarningInformation(violationWarningInformation1); 201 SpringUtils.getBean(ViolationWarningInformationMapper.class).updateViolationWarningInformation(violationWarningInformation1);
175 } 202 }
@@ -180,7 +207,6 @@ public class Consumer { @@ -180,7 +207,6 @@ public class Consumer {
180 SpringUtils.getBean(KafkaCompensationMapper.class).updateKafkaCompensation(kafkaCompensation); 207 SpringUtils.getBean(KafkaCompensationMapper.class).updateKafkaCompensation(kafkaCompensation);
181 } 208 }
182 209
183 - @Transactional  
184 public String insertKafkaCompensation(String data){ 210 public String insertKafkaCompensation(String data){
185 KafkaCompensation kafkaCompensation = new KafkaCompensation(); 211 KafkaCompensation kafkaCompensation = new KafkaCompensation();
186 kafkaCompensation.setData(data); 212 kafkaCompensation.setData(data);
trash-workFlow/src/main/java/com/trash/casefile/service/impl/ViolationWarningInformationServiceImpl.java
@@ -6,19 +6,14 @@ import java.util.stream.Collectors; @@ -6,19 +6,14 @@ import java.util.stream.Collectors;
6 6
7 import com.alibaba.fastjson.JSONArray; 7 import com.alibaba.fastjson.JSONArray;
8 import com.alibaba.fastjson.JSONObject; 8 import com.alibaba.fastjson.JSONObject;
9 -import com.trash.casefile.domain.ViolationCaseFile;  
10 import com.trash.casefile.domain.vo.ViolationWarningInformationVo; 9 import com.trash.casefile.domain.vo.ViolationWarningInformationVo;
11 -import com.trash.casefile.kafka.Consumer;  
12 import com.trash.common.core.redis.RedisCache; 10 import com.trash.common.core.redis.RedisCache;
13 import com.trash.common.utils.DateUtils; 11 import com.trash.common.utils.DateUtils;
14 import com.trash.common.utils.SecurityUtils; 12 import com.trash.common.utils.SecurityUtils;
15 import com.trash.common.utils.StringUtils; 13 import com.trash.common.utils.StringUtils;
16 import com.trash.common.utils.file.FileUploadUtils; 14 import com.trash.common.utils.file.FileUploadUtils;
17 -import com.trash.office.domain.LeaveApplication;  
18 import com.trash.office.domain.UploadFile; 15 import com.trash.office.domain.UploadFile;
19 -import com.trash.office.domain.vo.LeaveApplicationVo;  
20 import com.trash.office.mapper.UploadFileMapper; 16 import com.trash.office.mapper.UploadFileMapper;
21 -import com.trash.workflow.domain.Workflow;  
22 import com.trash.workflow.service.IWorkflowService; 17 import com.trash.workflow.service.IWorkflowService;
23 import org.slf4j.Logger; 18 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory; 19 import org.slf4j.LoggerFactory;
@@ -39,7 +34,7 @@ import org.springframework.web.multipart.MultipartFile; @@ -39,7 +34,7 @@ import org.springframework.web.multipart.MultipartFile;
39 @Service 34 @Service
40 public class ViolationWarningInformationServiceImpl implements IViolationWarningInformationService 35 public class ViolationWarningInformationServiceImpl implements IViolationWarningInformationService
41 { 36 {
42 - private static final Logger log = LoggerFactory.getLogger(Consumer.class); 37 + private static final Logger log = LoggerFactory.getLogger(ViolationWarningInformationServiceImpl.class);
43 @Autowired 38 @Autowired
44 private ViolationWarningInformationMapper violationWarningInformationMapper; 39 private ViolationWarningInformationMapper violationWarningInformationMapper;
45 @Autowired 40 @Autowired