Commit 0808b760f6d9266c30c2e52a7c38f82707698e9f

Authored by youxiw2000
1 parent 04d31709

m

trash-admin/src/main/resources/application.yml
@@ -11,6 +11,7 @@ spring: @@ -11,6 +11,7 @@ spring:
11 bootstrap-servers: 183.66.242.6:9101 11 bootstrap-servers: 183.66.242.6:9101
12 listener: 12 listener:
13 ack-mode: manual_immediate 13 ack-mode: manual_immediate
  14 + missing-topics-fatal: false
14 producer: 15 producer:
15 x-serializer: org.apache.kafka.common.serialization.StringSerializer 16 x-serializer: org.apache.kafka.common.serialization.StringSerializer
16 value-serializer: org.apache.kafka.common.serialization.StringSerializer 17 value-serializer: org.apache.kafka.common.serialization.StringSerializer
trash-common/src/main/java/com/trash/common/core/domain/entity/SysUser.java
@@ -102,11 +102,22 @@ public class SysUser extends BaseEntity @@ -102,11 +102,22 @@ public class SysUser extends BaseEntity
102 List<String> conList = new ArrayList<String>(); 102 List<String> conList = new ArrayList<String>();
103 List<String> earthList = new ArrayList<String>(); 103 List<String> earthList = new ArrayList<String>();
104 List<String> conAreas = new ArrayList<String>(); 104 List<String> conAreas = new ArrayList<String>();
  105 + List<String> companyAreas = new ArrayList<String>();
105 List<String> earthAreas = new ArrayList<String>(); 106 List<String> earthAreas = new ArrayList<String>();
106 List<String> truckList = new ArrayList<String>(); 107 List<String> truckList = new ArrayList<String>();
107 108
108 109
109 - public List<String> getTruckList() { 110 +
  111 +
  112 + public List<String> getCompanyAreas() {
  113 + return companyAreas;
  114 + }
  115 +
  116 + public void setCompanyAreas(List<String> companyAreas) {
  117 + this.companyAreas = companyAreas;
  118 + }
  119 +
  120 + public List<String> getTruckList() {
110 return truckList; 121 return truckList;
111 } 122 }
112 123
trash-framework/src/main/java/com/trash/framework/web/service/SysLoginService.java
@@ -258,6 +258,11 @@ public class SysLoginService @@ -258,6 +258,11 @@ public class SysLoginService
258 List<String> companyIds = json.getJSONArray("companyIds").toJavaList(String.class); 258 List<String> companyIds = json.getJSONArray("companyIds").toJavaList(String.class);
259 user.setCompanyIds(companyIds); 259 user.setCompanyIds(companyIds);
260 } 260 }
  261 +
  262 + if(json.getJSONArray("adCodes") != null){
  263 + List<String> areas = json.getJSONArray("adCodes").toJavaList(String.class);
  264 + user.setCompanyAreas(areas);
  265 + }
261 }else if(json.getInteger("sourceType") == 3){ 266 }else if(json.getInteger("sourceType") == 3){
262 if(json.getJSONArray("sourceIds") != null){ 267 if(json.getJSONArray("sourceIds") != null){
263 List<String> companyIds = json.getJSONArray("sourceIds").toJavaList(String.class); 268 List<String> companyIds = json.getJSONArray("sourceIds").toJavaList(String.class);
trash-quartz/src/main/java/com/trash/quartz/task/DriverTask.java
@@ -273,12 +273,12 @@ public class DriverTask @@ -273,12 +273,12 @@ public class DriverTask
273 * @throws InterruptedException 273 * @throws InterruptedException
274 */ 274 */
275 public void kafkaCompensation() throws InterruptedException, IOException { 275 public void kafkaCompensation() throws InterruptedException, IOException {
276 -// KafkaCompensation kafkaCompensation = new KafkaCompensation();  
277 -// kafkaCompensation.setStatus(0);  
278 -// List<KafkaCompensation> kafkaCompensationList = SpringUtils.getBean(KafkaCompensationMapper.class).selectKafkaCompensationList(kafkaCompensation);  
279 -// for(KafkaCompensation k:kafkaCompensationList){  
280 -// SpringUtils.getBean(Consumer.class).autoViolationWarning(k.getData(),k.getId().toString());  
281 -// } 276 + KafkaCompensation kafkaCompensation = new KafkaCompensation();
  277 + kafkaCompensation.setStatus(0);
  278 + List<KafkaCompensation> kafkaCompensationList = SpringUtils.getBean(KafkaCompensationMapper.class).selectKafkaCompensationList(kafkaCompensation);
  279 + for(KafkaCompensation k:kafkaCompensationList){
  280 + SpringUtils.getBean(Consumer.class).autoViolationWarning(k.getData(),k.getId().toString());
  281 + }
282 } 282 }
283 283
284 /** 284 /**
@@ -339,6 +339,21 @@ public class DriverTask @@ -339,6 +339,21 @@ public class DriverTask
339 /** 339 /**
340 * 每分钟更新一次区域列表 340 * 每分钟更新一次区域列表
341 */ 341 */
  342 + public void getTruckList(){
  343 + if(RemoteServerUtils.remote == null){
  344 + RemoteServerUtils.remote = trashConfig.getRemotePath();
  345 + }
  346 + Map<String, Object> map = new HashMap<>();
  347 + map.put("size",99999);
  348 + map.put("valid",0);
  349 + map.put("page",1);
  350 +
  351 + JSONArray jsonArray = RemoteServerUtils.getTruckList(map,trashConfig.getToken());
  352 + redisCache.setCacheObject("truckList",jsonArray);
  353 + }
  354 + /**
  355 + * 每分钟更新一次区域列表
  356 + */
342 public void getAreaList(){ 357 public void getAreaList(){
343 if(RemoteServerUtils.remote == null){ 358 if(RemoteServerUtils.remote == null){
344 RemoteServerUtils.remote = trashConfig.getRemotePath(); 359 RemoteServerUtils.remote = trashConfig.getRemotePath();
trash-ui/src/layout/index.vue
1 <template> 1 <template>
2 - <app-main /> 2 + <div :class="classObj" class="app-wrapper">
  3 + <sidebar class="sidebar-container"/>
  4 + <div :class="{hasTagsView:needTagsView}" class="main-container">
  5 + <tags-view v-if="needTagsView"/>
  6 + <app-main/>
  7 +
  8 + </div>
  9 + </div>
3 </template> 10 </template>
4 11
5 <script> 12 <script>
6 import RightPanel from '@/components/RightPanel' 13 import RightPanel from '@/components/RightPanel'
7 -import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components' 14 +import {AppMain, Navbar, Settings, Sidebar, TagsView} from './components'
8 import ResizeMixin from './mixin/ResizeHandler' 15 import ResizeMixin from './mixin/ResizeHandler'
9 -import { mapState } from 'vuex' 16 +import {mapState} from 'vuex'
10 17
11 export default { 18 export default {
12 name: 'Layout', 19 name: 'Layout',
@@ -38,52 +45,63 @@ export default { @@ -38,52 +45,63 @@ export default {
38 }, 45 },
39 methods: { 46 methods: {
40 handleClickOutside() { 47 handleClickOutside() {
41 - this.$store.dispatch('app/closeSideBar', { withoutAnimation: false }) 48 + this.$store.dispatch('app/closeSideBar', {withoutAnimation: false})
42 } 49 }
43 } 50 }
44 } 51 }
45 </script> 52 </script>
46 53
47 <style lang="scss" scoped> 54 <style lang="scss" scoped>
48 - @import "~@/assets/styles/mixin.scss";  
49 - @import "~@/assets/styles/variables.scss";  
50 -  
51 - .app-wrapper {  
52 - @include clearfix;  
53 - position: relative;  
54 - height: 100%;  
55 - width: 100%;  
56 -  
57 - &.mobile.openSidebar {  
58 - position: fixed;  
59 - top: 0;  
60 - }  
61 - } 55 +@import "~@/assets/styles/mixin.scss";
  56 +@import "~@/assets/styles/variables.scss";
62 57
63 - .drawer-bg {  
64 - background: #000;  
65 - opacity: 0.3;  
66 - width: 100%;  
67 - top: 0;  
68 - height: 100%;  
69 - position: absolute;  
70 - z-index: 999;  
71 - } 58 +.app-wrapper {
  59 + @include clearfix;
  60 + position: relative;
  61 + height: 100%;
  62 + width: 100%;
72 63
73 - .fixed-header { 64 + &.mobile.openSidebar {
74 position: fixed; 65 position: fixed;
75 top: 0; 66 top: 0;
76 - right: 0;  
77 - z-index: 9;  
78 - width: calc(100% - #{$sideBarWidth});  
79 - transition: width 0.28s;  
80 } 67 }
  68 +}
81 69
82 - .hideSidebar .fixed-header {  
83 - width: calc(100% - 54px)  
84 - } 70 +.drawer-bg {
  71 + background: #000;
  72 + opacity: 0.3;
  73 + width: 100%;
  74 + top: 0;
  75 + height: 100%;
  76 + position: absolute;
  77 + z-index: 999;
  78 +}
85 79
86 - .mobile .fixed-header {  
87 - width: 100%;  
88 - } 80 +.fixed-header {
  81 + position: fixed;
  82 + top: 0;
  83 + right: 0;
  84 + z-index: 9;
  85 + width: calc(100% - #{$sideBarWidth});
  86 + transition: width 0.28s;
  87 +}
  88 +
  89 +.hideSidebar .fixed-header {
  90 + width: calc(100% - 54px)
  91 +}
  92 +
  93 +.mobile .fixed-header {
  94 + width: 100%;
  95 +}
  96 +
  97 +.preview figure {
  98 + float: left;
  99 + width: 30%;
  100 + height:calc(30vw - 0px);
  101 + margin: 1.5%;
  102 +}
  103 +
  104 +.preview figure img {
  105 + width: 400px;
  106 +}
89 </style> 107 </style>
trash-ui/src/layout/index55.vue renamed to trash-ui/src/layout/index4.vue
1 <template> 1 <template>
2 - <div :class="classObj" class="app-wrapper">  
3 - <sidebar class="sidebar-container"/>  
4 - <div :class="{hasTagsView:needTagsView}" class="main-container">  
5 - <tags-view v-if="needTagsView"/>  
6 - <app-main/>  
7 -  
8 - </div>  
9 - </div> 2 + <app-main />
10 </template> 3 </template>
11 4
12 <script> 5 <script>
13 import RightPanel from '@/components/RightPanel' 6 import RightPanel from '@/components/RightPanel'
14 -import {AppMain, Navbar, Settings, Sidebar, TagsView} from './components' 7 +import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components'
15 import ResizeMixin from './mixin/ResizeHandler' 8 import ResizeMixin from './mixin/ResizeHandler'
16 -import {mapState} from 'vuex' 9 +import { mapState } from 'vuex'
17 10
18 export default { 11 export default {
19 name: 'Layout', 12 name: 'Layout',
@@ -45,63 +38,52 @@ export default { @@ -45,63 +38,52 @@ export default {
45 }, 38 },
46 methods: { 39 methods: {
47 handleClickOutside() { 40 handleClickOutside() {
48 - this.$store.dispatch('app/closeSideBar', {withoutAnimation: false}) 41 + this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
49 } 42 }
50 } 43 }
51 } 44 }
52 </script> 45 </script>
53 46
54 <style lang="scss" scoped> 47 <style lang="scss" scoped>
55 -@import "~@/assets/styles/mixin.scss";  
56 -@import "~@/assets/styles/variables.scss"; 48 + @import "~@/assets/styles/mixin.scss";
  49 + @import "~@/assets/styles/variables.scss";
57 50
58 -.app-wrapper {  
59 - @include clearfix;  
60 - position: relative;  
61 - height: 100%;  
62 - width: 100%; 51 + .app-wrapper {
  52 + @include clearfix;
  53 + position: relative;
  54 + height: 100%;
  55 + width: 100%;
63 56
64 - &.mobile.openSidebar {  
65 - position: fixed;  
66 - top: 0; 57 + &.mobile.openSidebar {
  58 + position: fixed;
  59 + top: 0;
  60 + }
67 } 61 }
68 -}  
69 62
70 -.drawer-bg {  
71 - background: #000;  
72 - opacity: 0.3;  
73 - width: 100%;  
74 - top: 0;  
75 - height: 100%;  
76 - position: absolute;  
77 - z-index: 999;  
78 -}  
79 -  
80 -.fixed-header {  
81 - position: fixed;  
82 - top: 0;  
83 - right: 0;  
84 - z-index: 9;  
85 - width: calc(100% - #{$sideBarWidth});  
86 - transition: width 0.28s;  
87 -}  
88 -  
89 -.hideSidebar .fixed-header {  
90 - width: calc(100% - 54px)  
91 -} 63 + .drawer-bg {
  64 + background: #000;
  65 + opacity: 0.3;
  66 + width: 100%;
  67 + top: 0;
  68 + height: 100%;
  69 + position: absolute;
  70 + z-index: 999;
  71 + }
92 72
93 -.mobile .fixed-header {  
94 - width: 100%;  
95 -} 73 + .fixed-header {
  74 + position: fixed;
  75 + top: 0;
  76 + right: 0;
  77 + z-index: 9;
  78 + width: calc(100% - #{$sideBarWidth});
  79 + transition: width 0.28s;
  80 + }
96 81
97 -.preview figure {  
98 - float: left;  
99 - width: 30%;  
100 - height:calc(30vw - 0px);  
101 - margin: 1.5%;  
102 -} 82 + .hideSidebar .fixed-header {
  83 + width: calc(100% - 54px)
  84 + }
103 85
104 -.preview figure img {  
105 - width: 400px;  
106 -} 86 + .mobile .fixed-header {
  87 + width: 100%;
  88 + }
107 </style> 89 </style>
trash-ui/src/views/activiti/taskhistory/index.vue
@@ -58,7 +58,7 @@ @@ -58,7 +58,7 @@
58 </el-table> 58 </el-table>
59 </el-dialog> 59 </el-dialog>
60 60
61 - <el-dialog :title="title" :visible.sync="construct" width="1200px" append-to-body> 61 + <el-dialog :title="title" :visible.sync="construct" width="1500px" append-to-body>
62 <companyInfo :businessKey="businessKey" :businessType="2" :signData="signData" v-if="construct"/> 62 <companyInfo :businessKey="businessKey" :businessType="2" :signData="signData" v-if="construct"/>
63 <el-table :data="hisfromData" v-if="hisfromData != null"> 63 <el-table :data="hisfromData" v-if="hisfromData != null">
64 <el-table-column label="审批意见" align="center" prop="controlValue"/> 64 <el-table-column label="审批意见" align="center" prop="controlValue"/>
@@ -77,7 +77,7 @@ @@ -77,7 +77,7 @@
77 </el-dialog> 77 </el-dialog>
78 78
79 79
80 - <el-dialog :title="title" :visible.sync="earthsites" width="1200px" append-to-body> 80 + <el-dialog :title="title" :visible.sync="earthsites" width="1500px" append-to-body>
81 <companyInfo :businessKey="businessKey" :businessType="3" v-if="earthsites"/> 81 <companyInfo :businessKey="businessKey" :businessType="3" v-if="earthsites"/>
82 <el-table :data="hisfromData" v-if="hisfromData != null"> 82 <el-table :data="hisfromData" v-if="hisfromData != null">
83 <el-table-column label="审批意见" align="center" prop="controlValue"/> 83 <el-table-column label="审批意见" align="center" prop="controlValue"/>
@@ -86,7 +86,7 @@ @@ -86,7 +86,7 @@
86 </el-table> 86 </el-table>
87 </el-dialog> 87 </el-dialog>
88 88
89 - <el-dialog :title="title" :visible.sync="contract" width="1200px" append-to-body> 89 + <el-dialog :title="title" :visible.sync="contract" width="1500px" append-to-body>
90 <companyInfo :businessKey="businessKey" :businessType="4" v-if="contract"/> 90 <companyInfo :businessKey="businessKey" :businessType="4" v-if="contract"/>
91 <el-table :data="hisfromData" v-if="hisfromData != null"> 91 <el-table :data="hisfromData" v-if="hisfromData != null">
92 92
@@ -138,7 +138,7 @@ @@ -138,7 +138,7 @@
138 </el-table> 138 </el-table>
139 </el-dialog> 139 </el-dialog>
140 140
141 - <el-dialog :title="title" :visible.sync="company" width="1200px" append-to-body :close-on-click-modal="false"> 141 + <el-dialog :title="title" :visible.sync="company" width="1500px" append-to-body :close-on-click-modal="false">
142 <companyInfo :businessKey="businessKey" :businessType="0" v-if="company"/> 142 <companyInfo :businessKey="businessKey" :businessType="0" v-if="company"/>
143 <el-table :data="hisfromData" v-if="hisfromData != null"> 143 <el-table :data="hisfromData" v-if="hisfromData != null">
144 144
trash-workFlow/src/main/java/com/trash/business/domain/SupervisionThreestep.java
@@ -135,8 +135,11 @@ public class SupervisionThreestep extends BaseEntity @@ -135,8 +135,11 @@ public class SupervisionThreestep extends BaseEntity
135 private String attchItem1; 135 private String attchItem1;
136 private String attchItem2; 136 private String attchItem2;
137 private String attchItem3; 137 private String attchItem3;
138 - 138 +
  139 + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
139 private Date workStartTime; 140 private Date workStartTime;
  141 +
  142 + @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
140 private Date workEndTime; 143 private Date workEndTime;
141 144
142 145
trash-workFlow/src/main/java/com/trash/business/service/impl/CompanyCreditServiceImpl.java
@@ -17,8 +17,10 @@ import com.trash.business.domain.TruckCredit; @@ -17,8 +17,10 @@ import com.trash.business.domain.TruckCredit;
17 import com.trash.business.mapper.CompanyCreditMapper; 17 import com.trash.business.mapper.CompanyCreditMapper;
18 import com.trash.business.service.ICompanyCreditService; 18 import com.trash.business.service.ICompanyCreditService;
19 import com.trash.business.service.ITruckCreditService; 19 import com.trash.business.service.ITruckCreditService;
  20 +import com.trash.common.core.redis.RedisCache;
20 import com.trash.common.utils.RemoteServerUtils; 21 import com.trash.common.utils.RemoteServerUtils;
21 import com.trash.common.utils.SecurityUtils; 22 import com.trash.common.utils.SecurityUtils;
  23 +
22 /** 24 /**
23 * 企业失信Service业务层处理 25 * 企业失信Service业务层处理
24 * 26 *
@@ -26,274 +28,283 @@ import com.trash.common.utils.SecurityUtils; @@ -26,274 +28,283 @@ import com.trash.common.utils.SecurityUtils;
26 * @date 2023-04-25 28 * @date 2023-04-25
27 */ 29 */
28 @Service 30 @Service
29 -public class CompanyCreditServiceImpl implements ICompanyCreditService  
30 -{  
31 - @Autowired  
32 - private CompanyCreditMapper companyCreditMapper;  
33 -  
34 -  
35 - @Autowired  
36 - private ITruckCreditService truckService;;  
37 -  
38 - /**  
39 - * 查询企业失信  
40 - *  
41 - * @param id 企业失信ID  
42 - * @return 企业失信  
43 - */  
44 - @Override  
45 - public CompanyCredit selectCompanyCreditById(Long id)  
46 - {  
47 - return companyCreditMapper.selectCompanyCreditById(id);  
48 - }  
49 -  
50 - /**  
51 - * 查询企业失信列表  
52 - *  
53 - * @param companyCredit 企业失信  
54 - * @return 企业失信  
55 - */  
56 - @Override  
57 - public List<CompanyCredit> selectCompanyCreditList(CompanyCredit companyCredit)  
58 - {  
59 - List<CompanyCredit> list = new ArrayList<>();  
60 -  
61 - if (SecurityUtils.getLoginUser().getUser().getCompanyIds().size() > 0) {  
62 - companyCredit.setIds(SecurityUtils.getLoginUser().getUser().getCompanyIds());  
63 - list = companyCreditMapper.selectCompanyCreditList(companyCredit);  
64 - } 31 +public class CompanyCreditServiceImpl implements ICompanyCreditService {
  32 + @Autowired
  33 + private CompanyCreditMapper companyCreditMapper;
  34 +
  35 + @Autowired
  36 + private ITruckCreditService truckService;;
  37 +
  38 + @Autowired
  39 + RedisCache redisCache;
  40 + /**
  41 + * 查询企业失信
  42 + *
  43 + * @param id 企业失信ID
  44 + * @return 企业失信
  45 + */
  46 + @Override
  47 + public CompanyCredit selectCompanyCreditById(Long id) {
  48 + return companyCreditMapper.selectCompanyCreditById(id);
  49 + }
65 50
  51 + /**
  52 + * 查询企业失信列表
  53 + *
  54 + * @param companyCredit 企业失信
  55 + * @return 企业失信
  56 + */
  57 + @Override
  58 + public List<CompanyCredit> selectCompanyCreditList(CompanyCredit companyCredit) {
  59 + List<CompanyCredit> list = new ArrayList<>();
  60 +
  61 + List<String> areas = SecurityUtils.getLoginUser().getUser().getCompanyAreas();
  62 + List<String> ids = SecurityUtils.getLoginUser().getUser().getCompanyIds();
66 63
67 - return list;  
68 - }  
69 -  
70 - /**  
71 - * 新增企业失信  
72 - *  
73 - * @param companyCredit 企业失信  
74 - * @return 结果  
75 - */  
76 - @SuppressWarnings("unchecked") 64 + if(areas.size() > 0) {
  65 + JSONArray array = redisCache.getCacheObject("companyList");
  66 + if(array != null) {
  67 + for(Object obj:array) {
  68 + JSONObject json = (JSONObject)obj;
  69 + if(areas.indexOf(json.getString("areaCode")) > -1) {
  70 + ids.add(json.getString("id"));
  71 + }
  72 + }
  73 + }
  74 + }
  75 +
  76 + if ( ids.size()> 0) {
  77 + companyCredit.setIds(SecurityUtils.getLoginUser().getUser().getCompanyIds());
  78 + list = companyCreditMapper.selectCompanyCreditList(companyCredit);
  79 + }
  80 +
  81 + return list;
  82 + }
  83 +
  84 + /**
  85 + * 新增企业失信
  86 + *
  87 + * @param companyCredit 企业失信
  88 + * @return 结果
  89 + */
  90 + @SuppressWarnings("unchecked")
77 @Override 91 @Override
78 - public int insertCompanyCredit(CompanyCredit companyCredit)  
79 - {  
80 - int i = 0;  
81 - companyCredit.setCreateBy(SecurityUtils.getUsername());  
82 - companyCredit.setTime(new Date());  
83 -  
84 -  
85 - CompanyCredit cc = new CompanyCredit();  
86 -  
87 - cc.setStatus(0L);  
88 - cc.setLostCredit(companyCredit.getLostCredit());  
89 - cc.setObjectId(companyCredit.getObjectId());  
90 -  
91 -  
92 - List old = selectCompanyCreditList(cc);  
93 -  
94 - if(old.size() > 0){  
95 - i = 1;  
96 - }else{  
97 - i = companyCreditMapper.insertCompanyCredit(companyCredit);  
98 - }  
99 -  
100 - updateRemoteCompanyAndTruck(companyCredit,null);  
101 -  
102 - return i;  
103 - }  
104 -  
105 -  
106 -  
107 - public void insertCompanyCredit(CompanyCredit companyCredit, String token){  
108 - companyCredit.setTime(new Date());  
109 -  
110 - int i = companyCreditMapper.insertCompanyCredit(companyCredit);  
111 -  
112 - updateRemoteCompanyAndTruck(companyCredit,token);  
113 -  
114 - return; 92 + public int insertCompanyCredit(CompanyCredit companyCredit) {
  93 + int i = 0;
  94 + companyCredit.setCreateBy(SecurityUtils.getUsername());
  95 + companyCredit.setTime(new Date());
  96 +
  97 + CompanyCredit cc = new CompanyCredit();
  98 +
  99 + cc.setStatus(0L);
  100 + cc.setLostCredit(companyCredit.getLostCredit());
  101 + cc.setObjectId(companyCredit.getObjectId());
  102 +
  103 + List old = selectCompanyCreditList(cc);
  104 +
  105 + if (old.size() > 0) {
  106 + i = 1;
  107 + } else {
  108 + i = companyCreditMapper.insertCompanyCredit(companyCredit);
  109 + }
  110 +
  111 + updateRemoteCompanyAndTruck(companyCredit, null);
  112 +
  113 + return i;
  114 + }
  115 +
  116 + public void insertCompanyCredit(CompanyCredit companyCredit, String token) {
  117 + companyCredit.setTime(new Date());
  118 +
  119 + int i = companyCreditMapper.insertCompanyCredit(companyCredit);
  120 +
  121 + updateRemoteCompanyAndTruck(companyCredit, token);
  122 +
  123 + return;
115 } 124 }
116 -  
117 -  
118 - @Override  
119 - public void updateRemoteCompanyAndTruck(CompanyCredit companyCredit,String token){  
120 - long credit = companyCredit.getLostCredit();  
121 - String companyId = companyCredit.getObjectId();  
122 -  
123 -  
124 - List<Map> cpcList = new ArrayList<>();  
125 - Map cpc = new HashedMap<>();  
126 - cpc.put("dishonestState", credit);  
127 - cpc.put("id", companyId);  
128 -  
129 - cpcList.add(cpc);  
130 -  
131 -  
132 -  
133 - Map map = new HashedMap<>();  
134 -  
135 - map.put("companyID",companyId);  
136 - map.put("valid",0);  
137 - JSONArray turckList = null;  
138 - if(token == null){  
139 - RemoteServerUtils.updateCompanyList(cpcList);  
140 - turckList = RemoteServerUtils.getTruckList(map);  
141 - }else{  
142 - RemoteServerUtils.updateCompanyList(cpcList, token);  
143 - turckList = RemoteServerUtils.getTruckList(map,token);  
144 - }  
145 -  
146 -  
147 - if(turckList != null){  
148 - for(Object objec:turckList){  
149 -  
150 - List<Map> updateList = new ArrayList();  
151 - JSONObject truck = (JSONObject)objec;  
152 -  
153 - String truckId = truck.getString("id");  
154 -  
155 - TruckCredit tredit = new TruckCredit();  
156 -  
157 - tredit.setStatus(0L);  
158 - tredit.setObjectId(truckId);  
159 -  
160 - List<TruckCredit> oldData = truckService.selectTruckCreditList(tredit);  
161 - TruckCredit data;  
162 - if(oldData.size() > 0){  
163 - data = oldData.get(0);  
164 - if(data.getLostCredit() != credit){  
165 - if(credit == 0 && (data.getCreateType() != null && data.getCreateType() == 1)){  
166 - data.setLostCredit(credit);  
167 - data.setReason("公司失信恢复");  
168 - truckService.updateTruckCredit(data);  
169 - Map upParam = new HashedMap<>();  
170 - upParam.put("creditStatus", credit);  
171 - upParam.put("id", truckId);  
172 - updateList.add(upParam);  
173 -  
174 - if(token != null)  
175 - RemoteServerUtils.updateTruckList(updateList,token);  
176 - else  
177 - RemoteServerUtils.updateTruckList(updateList);  
178 -  
179 - continue;  
180 - }  
181 - }  
182 - }else{  
183 - if(credit==0)  
184 - continue;  
185 -  
186 - data = new TruckCredit();  
187 -  
188 - data.setLostCredit(credit);  
189 -  
190 - data.setCompanyId(companyCredit.getName());  
191 -  
192 - data.setLicensePlate(truck.getString("licenseplateNo"));  
193 -  
194 - data.setTime(new Date());  
195 - 125 +
  126 + @Override
  127 + public void updateRemoteCompanyAndTruck(CompanyCredit companyCredit, String token) {
  128 + long credit = companyCredit.getLostCredit();
  129 + String companyId = companyCredit.getObjectId();
  130 +
  131 + List<Map> cpcList = new ArrayList<>();
  132 + Map cpc = new HashedMap<>();
  133 + cpc.put("dishonestState", credit);
  134 + cpc.put("id", companyId);
  135 +
  136 + cpcList.add(cpc);
  137 +
  138 + Map map = new HashedMap<>();
  139 +
  140 + map.put("companyID", companyId);
  141 + map.put("valid", 0);
  142 + JSONArray turckList = null;
  143 + if (token == null) {
  144 + RemoteServerUtils.updateCompanyList(cpcList);
  145 + turckList = RemoteServerUtils.getTruckList(map);
  146 + } else {
  147 + RemoteServerUtils.updateCompanyList(cpcList, token);
  148 + turckList = RemoteServerUtils.getTruckList(map, token);
  149 + }
  150 +
  151 + if (turckList != null) {
  152 + for (Object objec : turckList) {
  153 +
  154 + List<Map> updateList = new ArrayList();
  155 + JSONObject truck = (JSONObject) objec;
  156 +
  157 + String truckId = truck.getString("id");
  158 +
  159 + TruckCredit tredit = new TruckCredit();
  160 +
  161 + tredit.setStatus(0L);
  162 + tredit.setObjectId(truckId);
  163 +
  164 + List<TruckCredit> oldData = truckService.selectTruckCreditList(tredit);
  165 + TruckCredit data;
  166 + if (oldData.size() > 0) {
  167 + data = oldData.get(0);
  168 + if (data.getLostCredit() != credit) {
  169 + if (credit == 0 && (data.getCreateType() != null && data.getCreateType() == 1)) {
  170 + data.setLostCredit(credit);
  171 + data.setReason("公司失信恢复");
  172 + truckService.updateTruckCredit(data);
  173 + Map upParam = new HashedMap<>();
  174 + upParam.put("creditStatus", credit);
  175 + upParam.put("id", truckId);
  176 + updateList.add(upParam);
  177 +
  178 + if (token != null)
  179 + RemoteServerUtils.updateTruckList(updateList, token);
  180 + else
  181 + RemoteServerUtils.updateTruckList(updateList);
  182 +
  183 + continue;
  184 + }
  185 + }
  186 + } else {
  187 + if (credit == 0)
  188 + continue;
  189 +
  190 + data = new TruckCredit();
  191 +
  192 + data.setLostCredit(credit);
  193 +
  194 + data.setCompanyId(companyCredit.getName());
  195 +
  196 + data.setLicensePlate(truck.getString("licenseplateNo"));
  197 +
  198 + data.setTime(new Date());
  199 +
196 // data.setCreateBy(SecurityUtils.getUsername()); 200 // data.setCreateBy(SecurityUtils.getUsername());
197 - data.setCreateBy("");  
198 -  
199 - data.setReason("公司失信");  
200 -  
201 - data.setCreateType(1L);  
202 -  
203 - data.setObjectId(truckId);  
204 -  
205 - truckService.insertTruckCredit(data);  
206 -  
207 - Map upParam = new HashedMap<>();  
208 - upParam.put("creditStatus", credit);  
209 - upParam.put("id", truckId);  
210 - updateList.add(upParam);  
211 - if(token != null)  
212 - RemoteServerUtils.updateTruckList(updateList,token);  
213 - else  
214 - RemoteServerUtils.updateTruckList(updateList);  
215 -  
216 - }  
217 - }  
218 - }  
219 -  
220 - }  
221 -  
222 - /**  
223 - * 修改企业失信  
224 - *  
225 - * @param companyCredit 企业失信  
226 - * @return 结果  
227 - */  
228 - @Override  
229 - @Transactional  
230 - public int updateCompanyCredit(CompanyCredit companyCredit)  
231 - {  
232 -  
233 - CompanyCredit cc = companyCreditMapper.selectCompanyCreditById(companyCredit.getId());  
234 -  
235 - cc.setStatus(1L);  
236 -  
237 - try {  
238 - companyCreditMapper.updateCompanyCredit(cc);  
239 -  
240 - cc.setReason(companyCredit.getReason());  
241 - cc.setLostCredit(0L);  
242 -  
243 - return insertCompanyCredit(cc);  
244 -  
245 - } catch (Exception e) {  
246 - e.printStackTrace();  
247 -  
248 - }  
249 -  
250 - return 0;  
251 - }  
252 -  
253 - /**  
254 - * 批量删除企业失信  
255 - *  
256 - * @param ids 需要删除的企业失信ID  
257 - * @return 结果  
258 - */  
259 - @Override  
260 - public int deleteCompanyCreditByIds(Long[] ids)  
261 - {  
262 - return companyCreditMapper.deleteCompanyCreditByIds(ids);  
263 - }  
264 -  
265 - public List<String> getNames(CompanyCredit companyCredit){  
266 - return companyCreditMapper.getNames(companyCredit);  
267 - }  
268 -  
269 - public List<String> getPlaces(CompanyCredit companyCredit){  
270 - return companyCreditMapper.getPlaces(companyCredit);  
271 - }  
272 -  
273 -  
274 - @Override  
275 - public List<CompanyCredit> selectCompanyCreditHistory(CompanyCredit companyCredit)  
276 - {  
277 - List<CompanyCredit> list = new ArrayList<>();  
278 -  
279 - if (SecurityUtils.getLoginUser().getUser().getCompanyIds().size() > 0) {  
280 - companyCredit.setIds(SecurityUtils.getLoginUser().getUser().getCompanyIds());  
281 - list = companyCreditMapper.selectCompanyCreditHistory(companyCredit); 201 + data.setCreateBy("");
  202 +
  203 + data.setReason("公司失信");
  204 +
  205 + data.setCreateType(1L);
  206 +
  207 + data.setObjectId(truckId);
  208 +
  209 + truckService.insertTruckCredit(data);
  210 +
  211 + Map upParam = new HashedMap<>();
  212 + upParam.put("creditStatus", credit);
  213 + upParam.put("id", truckId);
  214 + updateList.add(upParam);
  215 + if (token != null)
  216 + RemoteServerUtils.updateTruckList(updateList, token);
  217 + else
  218 + RemoteServerUtils.updateTruckList(updateList);
  219 +
  220 + }
282 } 221 }
  222 + }
  223 +
  224 + }
  225 +
  226 + /**
  227 + * 修改企业失信
  228 + *
  229 + * @param companyCredit 企业失信
  230 + * @return 结果
  231 + */
  232 + @Override
  233 + @Transactional
  234 + public int updateCompanyCredit(CompanyCredit companyCredit) {
  235 +
  236 + CompanyCredit cc = companyCreditMapper.selectCompanyCreditById(companyCredit.getId());
  237 +
  238 + cc.setStatus(1L);
  239 +
  240 + try {
  241 + companyCreditMapper.updateCompanyCredit(cc);
  242 +
  243 + cc.setReason(companyCredit.getReason());
  244 + cc.setLostCredit(0L);
283 245
  246 + return insertCompanyCredit(cc);
  247 +
  248 + } catch (Exception e) {
  249 + e.printStackTrace();
  250 +
  251 + }
  252 +
  253 + return 0;
  254 + }
  255 +
  256 + /**
  257 + * 批量删除企业失信
  258 + *
  259 + * @param ids 需要删除的企业失信ID
  260 + * @return 结果
  261 + */
  262 + @Override
  263 + public int deleteCompanyCreditByIds(Long[] ids) {
  264 + return companyCreditMapper.deleteCompanyCreditByIds(ids);
  265 + }
  266 +
  267 + public List<String> getNames(CompanyCredit companyCredit) {
  268 + return companyCreditMapper.getNames(companyCredit);
  269 + }
  270 +
  271 + public List<String> getPlaces(CompanyCredit companyCredit) {
  272 + return companyCreditMapper.getPlaces(companyCredit);
  273 + }
  274 +
  275 + @Override
  276 + public List<CompanyCredit> selectCompanyCreditHistory(CompanyCredit companyCredit) {
  277 + List<CompanyCredit> list = new ArrayList<>();
  278 + List<String> areas = SecurityUtils.getLoginUser().getUser().getCompanyAreas();
  279 + List<String> ids = SecurityUtils.getLoginUser().getUser().getCompanyIds();
284 280
285 - return list;  
286 - }  
287 -  
288 - /**  
289 - * 删除企业失信信息  
290 - *  
291 - * @param id 企业失信ID  
292 - * @return 结果  
293 - */  
294 - @Override  
295 - public int deleteCompanyCreditById(Long id)  
296 - {  
297 - return companyCreditMapper.deleteCompanyCreditById(id);  
298 - } 281 + if(areas.size() > 0) {
  282 + JSONArray array = redisCache.getCacheObject("companyList");
  283 + if(array != null) {
  284 + for(Object obj:array) {
  285 + JSONObject json = (JSONObject)obj;
  286 + if(areas.indexOf(json.getString("areaCode")) > -1) {
  287 + ids.add(json.getString("id"));
  288 + }
  289 + }
  290 + }
  291 + }
  292 + if (SecurityUtils.getLoginUser().getUser().getCompanyIds().size() > 0) {
  293 + companyCredit.setIds(SecurityUtils.getLoginUser().getUser().getCompanyIds());
  294 + list = companyCreditMapper.selectCompanyCreditHistory(companyCredit);
  295 + }
  296 +
  297 + return list;
  298 + }
  299 +
  300 + /**
  301 + * 删除企业失信信息
  302 + *
  303 + * @param id 企业失信ID
  304 + * @return 结果
  305 + */
  306 + @Override
  307 + public int deleteCompanyCreditById(Long id) {
  308 + return companyCreditMapper.deleteCompanyCreditById(id);
  309 + }
299 } 310 }
300 \ No newline at end of file 311 \ No newline at end of file
trash-workFlow/src/main/java/com/trash/business/service/impl/SupervisionThreestepServiceImpl.java
@@ -83,6 +83,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer @@ -83,6 +83,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer
83 String start, end; 83 String start, end;
84 84
85 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd"); 85 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd");
  86 + SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
86 Date date = new Date(); 87 Date date = new Date();
87 88
88 if (new Date().getHours() < 8) { 89 if (new Date().getHours() < 8) {
@@ -182,6 +183,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer @@ -182,6 +183,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer
182 String start, end; 183 String start, end;
183 184
184 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd"); 185 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd");
  186 + SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
185 Date date = new Date(); 187 Date date = new Date();
186 188
187 if (new Date().getHours() < 8) { 189 if (new Date().getHours() < 8) {
@@ -224,7 +226,6 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer @@ -224,7 +226,6 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer
224 return supervisionThreestepMapper.getNames(supervisionThreestep); 226 return supervisionThreestepMapper.getNames(supervisionThreestep);
225 } 227 }
226 228
227 - SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
228 229
229 String[] outside = { "长沙县", "望城区", "浏阳市", "宁乡市", "株洲市", "湘潭市", "汩罗市", "湘阴县" }; 230 String[] outside = { "长沙县", "望城区", "浏阳市", "宁乡市", "株洲市", "湘潭市", "汩罗市", "湘阴县" };
230 231
@@ -233,6 +234,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer @@ -233,6 +234,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer
233 public List<Map<String, String>> selectDayWorkList(SupervisionThreestep supervisionThreestep) { 234 public List<Map<String, String>> selectDayWorkList(SupervisionThreestep supervisionThreestep) {
234 235
235 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd"); 236 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd");
  237 + SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
236 if (supervisionThreestep.getWorkStartTime() == null) { 238 if (supervisionThreestep.getWorkStartTime() == null) {
237 String start, end; 239 String start, end;
238 240
@@ -520,33 +522,36 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer @@ -520,33 +522,36 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer
520 522
521 @Override 523 @Override
522 public List<Map> selectDayWorkListByType(SupervisionThreestep supervisionThreestep) { 524 public List<Map> selectDayWorkListByType(SupervisionThreestep supervisionThreestep) {
523 -  
524 - SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd");  
525 - String start, end; 525 +
526 526
527 Date date = new Date(); 527 Date date = new Date();
528 -  
529 - if (new Date().getHours() < 8) {  
530 - end = yearFomat.format(date);  
531 - date.setDate(date.getDate() - 1);  
532 - start = yearFomat.format(date);  
533 - } else {  
534 - start = yearFomat.format(date);  
535 - date.setDate(date.getDate() + 1);  
536 - end = yearFomat.format(date);  
537 - }  
538 -  
539 - end += " 4:00:00";  
540 - start += " 8:00:00";  
541 -  
542 - try {  
543 - supervisionThreestep.setWorkStartTime(dateTime.parse(start));  
544 - supervisionThreestep.setWorkEndTime(dateTime.parse(end));  
545 - } catch (Exception e) {  
546 - // TODO Auto-generated catch block  
547 - e.printStackTrace(); 528 + SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd");
  529 + SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  530 + if(supervisionThreestep.getWorkStartTime() == null){
  531 + String start, end;
  532 +
  533 +
  534 + if (new Date().getHours() < 8) {
  535 + end = yearFomat.format(date);
  536 + date.setDate(date.getDate() - 1);
  537 + start = yearFomat.format(date);
  538 + } else {
  539 + start = yearFomat.format(date);
  540 + date.setDate(date.getDate() + 1);
  541 + end = yearFomat.format(date);
  542 + }
  543 +
  544 + end += " 4:00:00";
  545 + start += " 8:00:00";
  546 +
  547 + try {
  548 + supervisionThreestep.setWorkStartTime(dateTime.parse(start));
  549 + supervisionThreestep.setWorkEndTime(dateTime.parse(end));
  550 + } catch (Exception e) {
  551 + // TODO Auto-generated catch block
  552 + e.printStackTrace();
  553 + }
548 } 554 }
549 -  
550 List<Map> map = supervisionThreestepMapper.selectDayWorkListByType(supervisionThreestep); 555 List<Map> map = supervisionThreestepMapper.selectDayWorkListByType(supervisionThreestep);
551 556
552 List<Map> list = new ArrayList<>(); 557 List<Map> list = new ArrayList<>();
@@ -583,6 +588,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer @@ -583,6 +588,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer
583 public List<SupervisionThreestep> selectTodayDataList(SupervisionThreestep supervisionThreestep) { 588 public List<SupervisionThreestep> selectTodayDataList(SupervisionThreestep supervisionThreestep) {
584 589
585 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd"); 590 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd");
  591 + SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
586 if (supervisionThreestep.getWorkStartTime() == null) { 592 if (supervisionThreestep.getWorkStartTime() == null) {
587 String start, end; 593 String start, end;
588 594
@@ -656,6 +662,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer @@ -656,6 +662,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer
656 } 662 }
657 663
658 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd"); 664 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd");
  665 + SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
659 if (supervisionThreestep.getId() != null) { 666 if (supervisionThreestep.getId() != null) {
660 supervisionThreestepMapper.deleteSupervisionThreestepById(supervisionThreestep.getId()); 667 supervisionThreestepMapper.deleteSupervisionThreestepById(supervisionThreestep.getId());
661 } 668 }
@@ -728,6 +735,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer @@ -728,6 +735,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer
728 int j = supervisionThreestepMapper.updateSupervisionThreestep(supervisionThreestep); 735 int j = supervisionThreestepMapper.updateSupervisionThreestep(supervisionThreestep);
729 736
730 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd"); 737 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd");
  738 + SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
731 739
732 supervisionThreestep = supervisionThreestepMapper.selectSupervisionThreestepById(supervisionThreestep.getId()); 740 supervisionThreestep = supervisionThreestepMapper.selectSupervisionThreestepById(supervisionThreestep.getId());
733 741
@@ -934,6 +942,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer @@ -934,6 +942,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer
934 public void updateTodayData(String token) { 942 public void updateTodayData(String token) {
935 943
936 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd"); 944 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd");
  945 + SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
937 946
938 SupervisionThreestep supervisionThreestep = new SupervisionThreestep(); 947 SupervisionThreestep supervisionThreestep = new SupervisionThreestep();
939 948
@@ -1023,6 +1032,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer @@ -1023,6 +1032,7 @@ public class SupervisionThreestepServiceImpl implements ISupervisionThreestepSer
1023 if (supervisionThreestep.getWorkStartTime() == null) { 1032 if (supervisionThreestep.getWorkStartTime() == null) {
1024 1033
1025 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd"); 1034 SimpleDateFormat yearFomat = new SimpleDateFormat("yyyy-MM-dd");
  1035 + SimpleDateFormat dateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
1026 1036
1027 String start, end; 1037 String start, end;
1028 1038
trash-workFlow/src/main/java/com/trash/business/service/impl/TruckActivateServiceImpl.java
@@ -90,7 +90,20 @@ public class TruckActivateServiceImpl implements ITruckActivateService { @@ -90,7 +90,20 @@ public class TruckActivateServiceImpl implements ITruckActivateService {
90 90
91 List<String> companys = SecurityUtils.getLoginUser().getUser().getCompanyIds(); 91 List<String> companys = SecurityUtils.getLoginUser().getUser().getCompanyIds();
92 List<String> tList = SecurityUtils.getLoginUser().getUser().getTruckList(); 92 List<String> tList = SecurityUtils.getLoginUser().getUser().getTruckList();
93 - 93 + List<String> areas = SecurityUtils.getLoginUser().getUser().getCompanyAreas();
  94 +
  95 +
  96 + if(areas.size() > 0) {
  97 + JSONArray array = redis.getCacheObject("companyList");
  98 + if(array != null) {
  99 + for(Object obj:array) {
  100 + JSONObject json = (JSONObject)obj;
  101 + if(areas.indexOf(json.getString("areaCode")) > -1) {
  102 + companys.add(json.getString("id"));
  103 + }
  104 + }
  105 + }
  106 + }
94 if (tList.size() > 0 || companys.size() > 0 || cList.size() > 0) { 107 if (tList.size() > 0 || companys.size() > 0 || cList.size() > 0) {
95 List<String> ids = new ArrayList<>(); 108 List<String> ids = new ArrayList<>();
96 for (String str : tList) { 109 for (String str : tList) {
@@ -99,12 +112,7 @@ public class TruckActivateServiceImpl implements ITruckActivateService { @@ -99,12 +112,7 @@ public class TruckActivateServiceImpl implements ITruckActivateService {
99 112
100 if (companys.size() > 0) { 113 if (companys.size() > 0) {
101 114
102 - Map map = new HashMap<>();  
103 - map.put("size", 99999);  
104 - map.put("valid", 0);  
105 - map.put("page", 1);  
106 -  
107 - JSONArray jsonArray = RemoteServerUtils.getTruckList(map); 115 + JSONArray jsonArray = redis.getCacheObject("truckList");
108 116
109 for (Object obj : jsonArray) { 117 for (Object obj : jsonArray) {
110 JSONObject json = (JSONObject) obj; 118 JSONObject json = (JSONObject) obj;
trash-workFlow/src/main/java/com/trash/business/service/impl/TruckCreditServiceImpl.java
@@ -17,6 +17,7 @@ import com.trash.business.domain.EarthsitesCredit; @@ -17,6 +17,7 @@ import com.trash.business.domain.EarthsitesCredit;
17 import com.trash.business.domain.TruckCredit; 17 import com.trash.business.domain.TruckCredit;
18 import com.trash.business.mapper.TruckCreditMapper; 18 import com.trash.business.mapper.TruckCreditMapper;
19 import com.trash.business.service.ITruckCreditService; 19 import com.trash.business.service.ITruckCreditService;
  20 +import com.trash.common.core.redis.RedisCache;
20 import com.trash.common.utils.RemoteServerUtils; 21 import com.trash.common.utils.RemoteServerUtils;
21 import com.trash.common.utils.SecurityUtils; 22 import com.trash.common.utils.SecurityUtils;
22 23
@@ -32,6 +33,8 @@ public class TruckCreditServiceImpl implements ITruckCreditService @@ -32,6 +33,8 @@ public class TruckCreditServiceImpl implements ITruckCreditService
32 @Autowired 33 @Autowired
33 private TruckCreditMapper truckCreditMapper; 34 private TruckCreditMapper truckCreditMapper;
34 35
  36 + @Autowired
  37 + RedisCache redisCache;
35 /** 38 /**
36 * 查询车辆失信 39 * 查询车辆失信
37 * 40 *
@@ -58,6 +61,21 @@ public class TruckCreditServiceImpl implements ITruckCreditService @@ -58,6 +61,21 @@ public class TruckCreditServiceImpl implements ITruckCreditService
58 61
59 List<String> companys = SecurityUtils.getLoginUser().getUser().getCompanyIds(); 62 List<String> companys = SecurityUtils.getLoginUser().getUser().getCompanyIds();
60 List<String> tList = SecurityUtils.getLoginUser().getUser().getTruckList(); 63 List<String> tList = SecurityUtils.getLoginUser().getUser().getTruckList();
  64 + List<String> areas = SecurityUtils.getLoginUser().getUser().getCompanyAreas();
  65 +
  66 +
  67 + if(areas.size() > 0) {
  68 + JSONArray array = redisCache.getCacheObject("companyList");
  69 + if(array != null) {
  70 + for(Object obj:array) {
  71 + JSONObject json = (JSONObject)obj;
  72 + if(areas.indexOf(json.getString("areaCode")) > -1) {
  73 + companys.add(json.getString("id"));
  74 + }
  75 + }
  76 + }
  77 + }
  78 +
61 79
62 if (tList.size() > 0 || companys.size() > 0) { 80 if (tList.size() > 0 || companys.size() > 0) {
63 List<String> ids = new ArrayList<>(); 81 List<String> ids = new ArrayList<>();
@@ -68,13 +86,7 @@ public class TruckCreditServiceImpl implements ITruckCreditService @@ -68,13 +86,7 @@ public class TruckCreditServiceImpl implements ITruckCreditService
68 86
69 if(companys.size() > 0){ 87 if(companys.size() > 0){
70 88
71 - Map map = new HashMap<>();  
72 - map.put("size",99999);  
73 - map.put("valid",0);  
74 - map.put("page",1);  
75 -  
76 - JSONArray jsonArray = RemoteServerUtils.getTruckList(map);  
77 - 89 + JSONArray jsonArray = redisCache.getCacheObject("truckList");
78 90
79 for(Object obj:jsonArray){ 91 for(Object obj:jsonArray){
80 JSONObject json = (JSONObject) obj; 92 JSONObject json = (JSONObject) obj;
@@ -175,7 +187,20 @@ public class TruckCreditServiceImpl implements ITruckCreditService @@ -175,7 +187,20 @@ public class TruckCreditServiceImpl implements ITruckCreditService
175 List<TruckCredit> list = new ArrayList<>(); 187 List<TruckCredit> list = new ArrayList<>();
176 List<String> companys = SecurityUtils.getLoginUser().getUser().getCompanyIds(); 188 List<String> companys = SecurityUtils.getLoginUser().getUser().getCompanyIds();
177 List<String> tList = SecurityUtils.getLoginUser().getUser().getTruckList(); 189 List<String> tList = SecurityUtils.getLoginUser().getUser().getTruckList();
  190 + List<String> areas = SecurityUtils.getLoginUser().getUser().getCompanyAreas();
178 191
  192 +
  193 + if(areas.size() > 0) {
  194 + JSONArray array = redisCache.getCacheObject("companyList");
  195 + if(array != null) {
  196 + for(Object obj:array) {
  197 + JSONObject json = (JSONObject)obj;
  198 + if(areas.indexOf(json.getString("areaCode")) > -1) {
  199 + companys.add(json.getString("id"));
  200 + }
  201 + }
  202 + }
  203 + }
179 if (tList.size() > 0 || companys.size() > 0) { 204 if (tList.size() > 0 || companys.size() > 0) {
180 List<String> ids = new ArrayList<>(); 205 List<String> ids = new ArrayList<>();
181 for(String str:tList){ 206 for(String str:tList){
@@ -185,12 +210,7 @@ public class TruckCreditServiceImpl implements ITruckCreditService @@ -185,12 +210,7 @@ public class TruckCreditServiceImpl implements ITruckCreditService
185 210
186 if(companys.size() > 0){ 211 if(companys.size() > 0){
187 212
188 - Map map = new HashMap<>();  
189 - map.put("size",99999);  
190 - map.put("valid",0);  
191 - map.put("page",1);  
192 -  
193 - JSONArray jsonArray = RemoteServerUtils.getTruckList(map); 213 + JSONArray jsonArray = redisCache.getCacheObject("truckList");
194 214
195 215
196 for(Object obj:jsonArray){ 216 for(Object obj:jsonArray){
trash-workFlow/src/main/java/com/trash/casefile/kafka/Consumer.java
1 -//package com.trash.casefile.kafka;  
2 -//  
3 -//import com.alibaba.fastjson.JSONArray;  
4 -//import com.alibaba.fastjson.JSONObject;  
5 -//import com.trash.casefile.domain.KafkaCompensation;  
6 -//import com.trash.casefile.domain.ViolationWarningInformation;  
7 -//import com.trash.casefile.mapper.KafkaCompensationMapper;  
8 -//import com.trash.casefile.mapper.ViolationWarningInformationMapper;  
9 -//import com.trash.casefile.service.IViolationWarningInformationService;  
10 -//import com.trash.common.config.trashConfig;  
11 -//import com.trash.common.core.redis.RedisCache;  
12 -//import com.trash.common.utils.DateUtils;  
13 -//import com.trash.common.utils.RemoteServerUtils;  
14 -//import com.trash.common.utils.StringUtils;  
15 -//import com.trash.common.utils.spring.SpringUtils;  
16 -//import com.trash.framework.web.service.SysLoginService;  
17 -//import org.apache.commons.lang3.time.DateFormatUtils;  
18 -//import org.apache.kafka.clients.consumer.ConsumerRecord;  
19 -//import org.slf4j.Logger;  
20 -//import org.slf4j.LoggerFactory;  
21 -//import org.springframework.beans.factory.annotation.Autowired;  
22 -//import org.springframework.kafka.annotation.KafkaListener;  
23 -//import org.springframework.kafka.support.Acknowledgment;  
24 -//import org.springframework.kafka.support.KafkaHeaders;  
25 -//import org.springframework.messaging.handler.annotation.Header;  
26 -//import org.springframework.messaging.handler.annotation.Payload;  
27 -//import org.springframework.stereotype.Component;  
28 -//import org.springframework.transaction.annotation.Transactional;  
29 -//  
30 -//import java.io.IOException;  
31 -//import java.time.LocalTime;  
32 -//import java.time.format.DateTimeFormatter;  
33 -//import java.util.*;  
34 -//import java.util.concurrent.TimeUnit;  
35 -//  
36 -//@Component  
37 -//public class Consumer {  
38 -// private static final Logger log = LoggerFactory.getLogger(Consumer.class);  
39 -//  
40 -// @Autowired  
41 -// private IViolationWarningInformationService violationWarningInformationService;  
42 -//  
43 -// @KafkaListener(topics = "record_process_alarm")  
44 -// public void consume(ConsumerRecord<?, ?> record, Acknowledgment ack) throws InterruptedException, IOException {  
45 -// log.info("kafka消费数据成功,offset:"+ record.offset() +",data:" + record.value());  
46 -// String id = insertKafkaCompensation(record.value().toString());  
47 -// autoViolationWarning(record.value().toString(),id);  
48 -// //手动提交offset  
49 -// ack.acknowledge();  
50 -// }  
51 -//  
52 -// @Autowired  
53 -// trashConfig trashConfig;  
54 -//  
55 -// @Autowired  
56 -// SysLoginService loginService;  
57 -//  
58 -// @Autowired  
59 -// RedisCache redisCache;  
60 -//  
61 -// public void autoViolationWarning(String data,String id) throws InterruptedException, IOException {  
62 -//  
63 -// String[] code = {"44030020=工地预警-未报开工作业", "44030021=工地预警-视频设备离线超时报警", "44030022=工地预警-三无车辆进入工地", "44030023=工地预警-未按时间作业",  
64 -// "44030024=处理场所预警-未报开工作业", "44030025=处理场所预警-视频设备离线超时报警", "44030026=处理场所预警-三无车辆进入处理场所", "44030027=处理场所预警-未到指定的处理场所作业",  
65 -// "44030028=离线运输报警(工)", "44030029=离线运输报警(消)", "44030030=未激活车辆作业", "44030031=未核准作业车辆作业", "44030032=未按线路行驶",  
66 -// "44030033=闯禁行驶", "44030034=失信车辆作业", "44030035=卫星定位异常"};  
67 -//  
68 -//  
69 -// JSONObject jsonObject = JSONObject.parseObject(data);  
70 -// //报警时间  
71 -// Date alarmTime = new Date(jsonObject.getLong("alarmTime")*1000L);  
72 -//  
73 -// //这一块是一天内同一工地,同一类型的报警,只报有一条数据,不重复报工,只累加  
74 -// String nowHour = DateFormatUtils.format(alarmTime, "HH");  
75 -// String nowDate = null;  
76 -// String tomorrowDate = null;  
77 -// if(Integer.valueOf(nowHour)<8){  
78 -// nowDate = DateFormatUtils.format(DateUtils.addDays(alarmTime, -1), "yyyy-MM-dd");  
79 -// tomorrowDate = DateFormatUtils.format(alarmTime, "yyyy-MM-dd");  
80 -// }else{  
81 -// nowDate = DateFormatUtils.format(alarmTime, "yyyy-MM-dd");  
82 -// tomorrowDate = DateFormatUtils.format(DateUtils.addDays(alarmTime, 1), "yyyy-MM-dd");  
83 -// }  
84 -//  
85 -//  
86 -//  
87 -//  
88 -// //违规类型code  
89 -// String violationTypeCode = jsonObject.getString("alarmType");  
90 -// //违规类型  
91 -// String violationType = jsonObject.getString("alarmName");  
92 -// if(RemoteServerUtils.remote==null){  
93 -// //登录  
94 -// RemoteServerUtils.remote = trashConfig.getRemotePath();  
95 -// loginService.loginByRemote(trashConfig.getToken());  
96 -// }  
97 -// ViolationWarningInformation violationWarningInformation1 = null;  
98 -// JSONArray company1 = null;  
99 -// JSONObject basevehicleInfo = null;  
100 -// //这些类型无需累加  
101 -// if(violationTypeCode.equals("44030021") || violationTypeCode.equals("44030025")||violationTypeCode.equals("44030023")){  
102 -// violationWarningInformation1 = null;  
103 -// }else if(violationTypeCode.equals("44030033")||violationTypeCode.equals("44030034")){//这两种类型根据公司累加  
104 -// company1 = redisCache.getCacheObject("companyList");  
105 -// basevehicleInfo = RemoteServerUtils.getBasevehicleInfo(jsonObject.getString("vehicleId"),trashConfig.getToken());  
106 -// if(company1==null){  
107 -// throw new RuntimeException("获取公司列表失败!!!");  
108 -// }  
109 -//  
110 -// if(basevehicleInfo==null){  
111 -// throw new RuntimeException("获取公司详情失败!vehicleId:"+jsonObject.getString("vehicleId"));  
112 -// }  
113 -// }else{//其他都是根据工地/消纳站累加  
114 -// String project = jsonObject.getString("siteName");  
115 -// violationWarningInformation1 = SpringUtils.getBean(ViolationWarningInformationMapper.class).selectViolationWarningInformation(null,project, violationType, nowDate, tomorrowDate);  
116 -// }  
117 -// String siteName = jsonObject.getString("siteName");  
118 -// //判断该类型,该工地,该时间段是否已经存在报警信息,如果存在则不再新增,如果不存在则新增  
119 -// if (violationWarningInformation1 == null) {  
120 -// ViolationWarningInformation violationWarningInformation = new ViolationWarningInformation();  
121 -// String siteType = jsonObject.getString("siteType");  
122 -// if ("2".equals(siteType)) {//消纳场  
123 -// violationWarningInformation.setViolationObjectType("1");  
124 -// }  
125 -// //所属区域  
126 -// violationWarningInformation.setOwningRegion(jsonObject.getString("areaName"));  
127 -// //案卷编码  
128 -// String number = DateFormatUtils.format(alarmTime, "yyyyMMddHHmmssSSS");  
129 -// violationWarningInformation.setNumber(number.substring(2));  
130 -// //公司名称  
131 -// violationWarningInformation.setCompanyName(jsonObject.getString("enterpriseName"));  
132 -// //违规类型  
133 -// violationWarningInformation.setViolationType(jsonObject.getString("alarmName"));  
134 -// //发送人  
135 -// violationWarningInformation.setCreateBy("长沙市建筑垃圾智慧监管平台");  
136 -// //推送对象  
137 -// violationWarningInformation.setViolationGrade("一般类");  
138 -// //项目名称(工地名称,处理场所名称)  
139 -//  
140 -// violationWarningInformation.setSendObject("区管理部门");  
141 -// String describe = "";  
142 -// String alarmTimeString = DateFormatUtils.format(alarmTime,"HH:mm");  
143 -// //根据不同违规类型,走不同流程  
144 -// switch (violationTypeCode) {  
145 -// case "44030020"://工地预警-未报开工作业  
146 -// //获取报警次数  
147 -// int count44030020 = redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030020")==null?1:Integer.parseInt(redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030020").toString())+1;  
148 -// //获取累计报警描述  
149 -// String describe44030020 = redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030020describe")==null?"":redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030020describe").toString();  
150 -// if(!StringUtils.isEmpty(describe44030020)){  
151 -// describe44030020 = describe44030020 + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
152 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
153 -// jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
154 -// }else{  
155 -// describe44030020 = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
156 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
157 -// jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
158 -// }  
159 -// //报警次数等于5推送案卷  
160 -// if(count44030020==5){  
161 -// violationWarningInformation.setViolationObjectType("0");  
162 -// violationWarningInformation.setSendObject("区管理部门");  
163 -// violationWarningInformation.setProjectName(jsonObject.getString("siteName"));  
164 -// violationWarningInformation.setCreateTime(alarmTime);  
165 -// violationWarningInformation.setDescribe(describe44030020);  
166 -// // 业务逻辑  
167 -// violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);  
168 -// }  
169 -// //次数+1  
170 -// redisCache.setCacheObject(nowDate+jsonObject.getString("siteId")+"44030020",count44030020,24, TimeUnit.HOURS);  
171 -// //累计描述  
172 -// redisCache.setCacheObject(nowDate+jsonObject.getString("siteId")+"44030020describe",describe44030020,24, TimeUnit.HOURS);  
173 -// break;  
174 -// case "44030023"://工地预警-未按时间作业  
175 -// try{  
176 -// //获取工地信息  
177 -// JSONObject object = RemoteServerUtils.getConstructionLicenseById(jsonObject.getString("siteId"), trashConfig.getToken());  
178 -// String transportEndTime = object.getString("transportEndTime");  
179 -// String transportStartTime = object.getString("transportStartTime");  
180 -// String endTime = manipulateTime(transportEndTime,30);  
181 -// String startTime = manipulateTime(transportStartTime,-30);  
182 -// //获取结束运输报警次数  
183 -// String countKey = nowDate+jsonObject.getString("siteId")+"44030023"+transportEndTime;  
184 -// int count44030023 = redisCache.getCacheObject(countKey)==null?1:Integer.parseInt(redisCache.getCacheObject(countKey).toString())+1;  
185 -// //获取结束运输累计报警描述  
186 -// String describeKey = nowDate+jsonObject.getString("siteId")+"44030023describe"+transportEndTime;  
187 -// String describe44030023 = redisCache.getCacheObject(describeKey)==null?"":redisCache.getCacheObject(describeKey).toString();  
188 -// //获取结束运输报警次数  
189 -// String countEKey = nowDate+jsonObject.getString("siteId")+"44030023"+transportStartTime;  
190 -// int countE = redisCache.getCacheObject(countEKey)==null?1:Integer.parseInt(redisCache.getCacheObject(countEKey).toString())+1;  
191 -// //获取结束运输累计报警描述  
192 -// String describeEKey = nowDate+jsonObject.getString("siteId")+"44030023describe"+transportStartTime;  
193 -// String describeE = redisCache.getCacheObject(describeEKey)==null?"":redisCache.getCacheObject(describeEKey).toString();  
194 -//  
195 -// if(!StringUtils.isEmpty(describe44030023)){  
196 -// describe44030023 = describe44030023 + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
197 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
198 -// jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
199 -// }else{  
200 -// describe44030023 = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
201 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
202 -// jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
203 -// }  
204 -// //报警次数等于5推送案卷  
205 -// if(count44030023==5){  
206 -// violationWarningInformation.setViolationObjectType("0");  
207 -// violationWarningInformation.setSendObject("区管理部门");  
208 -// violationWarningInformation.setProjectName(jsonObject.getString("siteName"));  
209 -//  
210 -// violationWarningInformation.setCreateTime(alarmTime);  
211 -// violationWarningInformation.setDescribe(describe44030023);  
212 -// // 业务逻辑  
213 -// violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);  
214 -// }  
215 -//  
216 -// if(!StringUtils.isEmpty(describeE)){  
217 -// describeE = describeE + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
218 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
219 -// jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
220 -// }else{  
221 -// describeE = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
222 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
223 -// jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
224 -// }  
225 -// //报警次数等于5推送案卷  
226 -// if(countE==5){  
227 -// violationWarningInformation.setViolationObjectType("0");  
228 -// violationWarningInformation.setSendObject("区管理部门");  
229 -// violationWarningInformation.setProjectName(jsonObject.getString("siteName"));  
230 -//  
231 -// violationWarningInformation.setCreateTime(alarmTime);  
232 -// violationWarningInformation.setDescribe(describeE);  
233 -// // 业务逻辑  
234 -// violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);  
235 -// }  
236 -//  
237 -//  
238 -// //判断结束运输  
239 -// if(isTimeWithinRange(alarmTimeString,transportEndTime,endTime)){  
240 -// //次数+1  
241 -// redisCache.setCacheObject(countKey,count44030023,12, TimeUnit.HOURS);  
242 -// //累计描述  
243 -// redisCache.setCacheObject(describeKey,describe44030023,12, TimeUnit.HOURS);  
244 -// }else if(isTimeWithinRange(alarmTimeString,startTime,transportStartTime)){  
245 -// //次数+1  
246 -// redisCache.setCacheObject(countEKey,countE,12, TimeUnit.HOURS);  
247 -// //累计描述  
248 -// redisCache.setCacheObject(describeEKey,describeE,12, TimeUnit.HOURS);  
249 -// }  
250 -// }catch (NullPointerException e){  
251 -// throw e;  
252 -// }  
253 -// break;  
254 -//  
255 -// case "44030030"://未激活车辆作业  
256 -// case "44030031"://未核准作业车辆作业  
257 -// case "44030022"://工地预警-三无车辆进入工地  
258 -// case "44030021"://工地预警-视频设备离线超时报警  
259 -// case "44030028"://离线运输报警(工)  
260 -//  
261 -// violationWarningInformation.setViolationObjectType("0");  
262 -// violationWarningInformation.setSendObject("区管理部门");  
263 -// violationWarningInformation.setProjectName(jsonObject.getString("siteName"));  
264 -// describe = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
265 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
266 -// jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
267 -// violationWarningInformation.setCreateTime(alarmTime);  
268 -// violationWarningInformation.setDescribe(describe);  
269 -// // 业务逻辑  
270 -// violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);  
271 -// break;  
272 -//  
273 -// case "44030024"://处理场所预警-未报开工作业  
274 -// //获取报警次数  
275 -// int count44030024 = redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030024")==null?1:Integer.parseInt(redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030024").toString())+1;  
276 -// //获取累计报警描述  
277 -// String describe44030024 = redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030024describe")==null?"":redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030024describe").toString();  
278 -// if(!StringUtils.isEmpty(describe44030024)){  
279 -// describe44030024 = describe44030024 + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
280 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
281 -// jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
282 -// }else{  
283 -// describe44030024 = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
284 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
285 -// jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
286 -// }  
287 -// //报警次数等于5推送案卷  
288 -// if(count44030024==5){  
289 -// violationWarningInformation.setViolationObjectType("1");  
290 -// violationWarningInformation.setSendObject("区管理部门");  
291 -// violationWarningInformation.setProjectName(jsonObject.getString("siteName"));  
292 -//  
293 -// violationWarningInformation.setCreateTime(alarmTime);  
294 -// violationWarningInformation.setDescribe(describe44030024);  
295 -// // 业务逻辑  
296 -// violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);  
297 -// }  
298 -//  
299 -//  
300 -// //次数+1  
301 -// redisCache.setCacheObject(nowDate+jsonObject.getString("siteId")+"44030024",count44030024,24, TimeUnit.HOURS);  
302 -// //累计描述  
303 -// redisCache.setCacheObject(nowDate+jsonObject.getString("siteId")+"44030024describe",describe44030024,24, TimeUnit.HOURS);  
304 -// break;  
305 -// case "44030027"://处理场所预警-未到指定的处理场所作业  
306 -// case "44030026"://处理场所预警-三无车辆进入处理场所  
307 -// case "44030029"://离线运输报警(消)  
308 -// case "44030025"://处理场所预警-视频设备离线超时报警  
309 -// violationWarningInformation.setViolationObjectType("1");  
310 -// violationWarningInformation.setSendObject("区管理部门");  
311 -// violationWarningInformation.setProjectName(jsonObject.getString("siteName"));  
312 -// describe = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
313 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
314 -// jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
315 -// violationWarningInformation.setCreateTime(alarmTime);  
316 -// violationWarningInformation.setDescribe(describe);  
317 -// // 业务逻辑  
318 -// violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);  
319 -// break;  
320 -// case "44030032"://未按线路行驶  
321 -// violationWarningInformation.setViolationObjectType("0");  
322 -// violationWarningInformation.setViolationGrade("重点类");  
323 -// violationWarningInformation.setSendObject("区管理部门");  
324 -// describe = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
325 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +  
326 -// jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();  
327 -// violationWarningInformation.setCreateTime(alarmTime);  
328 -// violationWarningInformation.setDescribe(describe);  
329 -// // 业务逻辑  
330 -// violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);  
331 -// break;  
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 -//  
350 -// case "44030034"://失信车辆作业  
351 -// violationWarningInformation.setViolationObjectType("2");  
352 -// violationWarningInformation.setSendObject("运输企业");  
353 -// describe = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
354 -// + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "出现" + violationWarningInformation.getViolationType();  
355 -// //设置公司简称  
356 -// for(Object o:company1){  
357 -// JSONObject jo = (JSONObject) o;  
358 -// if(basevehicleInfo.getString("companyID").equals(jo.getString("id"))){  
359 -// violationWarningInformation.setAbbreviation(jo.getString("abbreviation"));  
360 -// }  
361 -// }  
362 -// violationWarningInformation.setCreateTime(alarmTime);  
363 -// violationWarningInformation.setDescribe(describe);  
364 -// // 业务逻辑  
365 -// violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);  
366 -// break;  
367 -// }  
368 -//  
369 -//  
370 -//  
371 -//  
372 -// } else {  
373 -// String describe = "";  
374 -// if(violationTypeCode.equals("44030033")||violationTypeCode.equals("44030034")){  
375 -// describe = violationWarningInformation1.getDescribe() + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
376 -// + jsonObject.getString("enterpriseName") + " " + jsonObject.get("licenseplateNo") + "出现" + jsonObject.getString("alarmName");  
377 -// }else{  
378 -// describe = violationWarningInformation1.getDescribe() + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "  
379 -// + jsonObject.getString("enterpriseName") + " " + jsonObject.get("licenseplateNo") + "在" +  
380 -// jsonObject.get("siteName") + "出现" + jsonObject.getString("alarmName");  
381 -// }  
382 -//  
383 -// violationWarningInformation1.setDescribe(describe);  
384 -// SpringUtils.getBean(ViolationWarningInformationMapper.class).updateViolationWarningInformation(violationWarningInformation1);  
385 -// }  
386 -// //kafka消费成功  
387 -// KafkaCompensation kafkaCompensation = new KafkaCompensation();  
388 -// kafkaCompensation.setId(Long.valueOf(id));  
389 -// kafkaCompensation.setStatus(1);  
390 -// SpringUtils.getBean(KafkaCompensationMapper.class).updateKafkaCompensation(kafkaCompensation);  
391 -//  
392 -// }  
393 -//  
394 -// public String insertKafkaCompensation(String data){  
395 -// KafkaCompensation kafkaCompensation = new KafkaCompensation();  
396 -// kafkaCompensation.setData(data);  
397 -// kafkaCompensation.setCreateTime(DateUtils.getNowDate());  
398 -// kafkaCompensation.setStatus(0);  
399 -// SpringUtils.getBean(KafkaCompensationMapper.class).insertKafkaCompensation(kafkaCompensation);  
400 -// return kafkaCompensation.getId().toString();  
401 -// }  
402 -//  
403 -// /**  
404 -// * 对HH:mm格式时间进行分钟的加减  
405 -// * @param timeStr  
406 -// * @param minutesToAddOrSubtract  
407 -// * @return  
408 -// */  
409 -// public String manipulateTime(String timeStr, int minutesToAddOrSubtract) {  
410 -// // 定义输入时间格式的日期时间格式器  
411 -// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");  
412 -//  
413 -// // 解析输入的时间字符串为 LocalTime 对象  
414 -// LocalTime time = LocalTime.parse(timeStr, formatter);  
415 -//  
416 -// // 执行加减分钟的操作  
417 -// LocalTime modifiedTime = time.plusMinutes(minutesToAddOrSubtract);  
418 -//  
419 -// // 将修改后的时间格式化为 HH:mm 格式  
420 -// String formattedModifiedTime = modifiedTime.format(formatter);  
421 -//  
422 -// return formattedModifiedTime;  
423 -// }  
424 -//  
425 -// /**  
426 -// * 判断timeStr是否在startTimeStr-endTimeStr区间  
427 -// * @param timeStr  
428 -// * @param startTimeStr  
429 -// * @param endTimeStr  
430 -// * @return  
431 -// */  
432 -// public boolean isTimeWithinRange(String timeStr, String startTimeStr, String endTimeStr) {  
433 -// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");  
434 -// LocalTime time = LocalTime.parse(timeStr, formatter);  
435 -// LocalTime startTime = LocalTime.parse(startTimeStr, formatter);  
436 -// LocalTime endTime = LocalTime.parse(endTimeStr, formatter);  
437 -//  
438 -// return !time.isBefore(startTime) && !time.isAfter(endTime);  
439 -//  
440 -// }  
441 -//} 1 +package com.trash.casefile.kafka;
  2 +
  3 +import com.alibaba.fastjson.JSONArray;
  4 +import com.alibaba.fastjson.JSONObject;
  5 +import com.trash.casefile.domain.KafkaCompensation;
  6 +import com.trash.casefile.domain.ViolationWarningInformation;
  7 +import com.trash.casefile.mapper.KafkaCompensationMapper;
  8 +import com.trash.casefile.mapper.ViolationWarningInformationMapper;
  9 +import com.trash.casefile.service.IViolationWarningInformationService;
  10 +import com.trash.common.config.trashConfig;
  11 +import com.trash.common.core.redis.RedisCache;
  12 +import com.trash.common.utils.DateUtils;
  13 +import com.trash.common.utils.RemoteServerUtils;
  14 +import com.trash.common.utils.StringUtils;
  15 +import com.trash.common.utils.spring.SpringUtils;
  16 +import com.trash.framework.web.service.SysLoginService;
  17 +import org.apache.commons.lang3.time.DateFormatUtils;
  18 +import org.apache.kafka.clients.consumer.ConsumerRecord;
  19 +import org.slf4j.Logger;
  20 +import org.slf4j.LoggerFactory;
  21 +import org.springframework.beans.factory.annotation.Autowired;
  22 +import org.springframework.kafka.annotation.KafkaListener;
  23 +import org.springframework.kafka.support.Acknowledgment;
  24 +import org.springframework.kafka.support.KafkaHeaders;
  25 +import org.springframework.messaging.handler.annotation.Header;
  26 +import org.springframework.messaging.handler.annotation.Payload;
  27 +import org.springframework.stereotype.Component;
  28 +import org.springframework.transaction.annotation.Transactional;
  29 +
  30 +import java.io.IOException;
  31 +import java.time.LocalTime;
  32 +import java.time.format.DateTimeFormatter;
  33 +import java.util.*;
  34 +import java.util.concurrent.TimeUnit;
  35 +
  36 +@Component
  37 +public class Consumer {
  38 + private static final Logger log = LoggerFactory.getLogger(Consumer.class);
  39 +
  40 + @Autowired
  41 + private IViolationWarningInformationService violationWarningInformationService;
  42 +
  43 + @KafkaListener(topics = "record_process_alarm")
  44 + public void consume(ConsumerRecord<?, ?> record, Acknowledgment ack) throws InterruptedException, IOException {
  45 + log.info("kafka消费数据成功,offset:"+ record.offset() +",data:" + record.value());
  46 + String id = insertKafkaCompensation(record.value().toString());
  47 + autoViolationWarning(record.value().toString(),id);
  48 + //手动提交offset
  49 + ack.acknowledge();
  50 + }
  51 +
  52 + @Autowired
  53 + trashConfig trashConfig;
  54 +
  55 + @Autowired
  56 + SysLoginService loginService;
  57 +
  58 + @Autowired
  59 + RedisCache redisCache;
  60 +
  61 + public void autoViolationWarning(String data,String id) throws InterruptedException, IOException {
  62 +
  63 + String[] code = {"44030020=工地预警-未报开工作业", "44030021=工地预警-视频设备离线超时报警", "44030022=工地预警-三无车辆进入工地", "44030023=工地预警-未按时间作业",
  64 + "44030024=处理场所预警-未报开工作业", "44030025=处理场所预警-视频设备离线超时报警", "44030026=处理场所预警-三无车辆进入处理场所", "44030027=处理场所预警-未到指定的处理场所作业",
  65 + "44030028=离线运输报警(工)", "44030029=离线运输报警(消)", "44030030=未激活车辆作业", "44030031=未核准作业车辆作业", "44030032=未按线路行驶",
  66 + "44030033=闯禁行驶", "44030034=失信车辆作业", "44030035=卫星定位异常"};
  67 +
  68 +
  69 + JSONObject jsonObject = JSONObject.parseObject(data);
  70 + //报警时间
  71 + Date alarmTime = new Date(jsonObject.getLong("alarmTime")*1000L);
  72 +
  73 + //这一块是一天内同一工地,同一类型的报警,只报有一条数据,不重复报工,只累加
  74 + String nowHour = DateFormatUtils.format(alarmTime, "HH");
  75 + String nowDate = null;
  76 + String tomorrowDate = null;
  77 + if(Integer.valueOf(nowHour)<8){
  78 + nowDate = DateFormatUtils.format(DateUtils.addDays(alarmTime, -1), "yyyy-MM-dd");
  79 + tomorrowDate = DateFormatUtils.format(alarmTime, "yyyy-MM-dd");
  80 + }else{
  81 + nowDate = DateFormatUtils.format(alarmTime, "yyyy-MM-dd");
  82 + tomorrowDate = DateFormatUtils.format(DateUtils.addDays(alarmTime, 1), "yyyy-MM-dd");
  83 + }
  84 +
  85 +
  86 +
  87 +
  88 + //违规类型code
  89 + String violationTypeCode = jsonObject.getString("alarmType");
  90 + //违规类型
  91 + String violationType = jsonObject.getString("alarmName");
  92 + if(RemoteServerUtils.remote==null){
  93 + //登录
  94 + RemoteServerUtils.remote = trashConfig.getRemotePath();
  95 + loginService.loginByRemote(trashConfig.getToken());
  96 + }
  97 + ViolationWarningInformation violationWarningInformation1 = null;
  98 + JSONArray company1 = null;
  99 + JSONObject basevehicleInfo = null;
  100 + //这些类型无需累加
  101 + if(violationTypeCode.equals("44030021") || violationTypeCode.equals("44030025")||violationTypeCode.equals("44030023")){
  102 + violationWarningInformation1 = null;
  103 + }else if(violationTypeCode.equals("44030033")||violationTypeCode.equals("44030034")){//这两种类型根据公司累加
  104 + company1 = redisCache.getCacheObject("companyList");
  105 + basevehicleInfo = RemoteServerUtils.getBasevehicleInfo(jsonObject.getString("vehicleId"),trashConfig.getToken());
  106 + if(company1==null){
  107 + throw new RuntimeException("获取公司列表失败!!!");
  108 + }
  109 +
  110 + if(basevehicleInfo==null){
  111 + throw new RuntimeException("获取公司详情失败!vehicleId:"+jsonObject.getString("vehicleId"));
  112 + }
  113 + }else{//其他都是根据工地/消纳站累加
  114 + String project = jsonObject.getString("siteName");
  115 + violationWarningInformation1 = SpringUtils.getBean(ViolationWarningInformationMapper.class).selectViolationWarningInformation(null,project, violationType, nowDate, tomorrowDate);
  116 + }
  117 + String siteName = jsonObject.getString("siteName");
  118 + //判断该类型,该工地,该时间段是否已经存在报警信息,如果存在则不再新增,如果不存在则新增
  119 + if (violationWarningInformation1 == null) {
  120 + ViolationWarningInformation violationWarningInformation = new ViolationWarningInformation();
  121 + String siteType = jsonObject.getString("siteType");
  122 + if ("2".equals(siteType)) {//消纳场
  123 + violationWarningInformation.setViolationObjectType("1");
  124 + }
  125 + //所属区域
  126 + violationWarningInformation.setOwningRegion(jsonObject.getString("areaName"));
  127 + //案卷编码
  128 + String number = DateFormatUtils.format(alarmTime, "yyyyMMddHHmmssSSS");
  129 + violationWarningInformation.setNumber(number.substring(2));
  130 + //公司名称
  131 + violationWarningInformation.setCompanyName(jsonObject.getString("enterpriseName"));
  132 + //违规类型
  133 + violationWarningInformation.setViolationType(jsonObject.getString("alarmName"));
  134 + //发送人
  135 + violationWarningInformation.setCreateBy("长沙市建筑垃圾智慧监管平台");
  136 + //推送对象
  137 + violationWarningInformation.setViolationGrade("一般类");
  138 + //项目名称(工地名称,处理场所名称)
  139 +
  140 + violationWarningInformation.setSendObject("区管理部门");
  141 + String describe = "";
  142 + String alarmTimeString = DateFormatUtils.format(alarmTime,"HH:mm");
  143 + //根据不同违规类型,走不同流程
  144 + switch (violationTypeCode) {
  145 + case "44030020"://工地预警-未报开工作业
  146 + //获取报警次数
  147 + int count44030020 = redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030020")==null?1:Integer.parseInt(redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030020").toString())+1;
  148 + //获取累计报警描述
  149 + String describe44030020 = redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030020describe")==null?"":redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030020describe").toString();
  150 + if(!StringUtils.isEmpty(describe44030020)){
  151 + describe44030020 = describe44030020 + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  152 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  153 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  154 + }else{
  155 + describe44030020 = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  156 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  157 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  158 + }
  159 + //报警次数等于5推送案卷
  160 + if(count44030020==5){
  161 + violationWarningInformation.setViolationObjectType("0");
  162 + violationWarningInformation.setSendObject("区管理部门");
  163 + violationWarningInformation.setProjectName(jsonObject.getString("siteName"));
  164 + violationWarningInformation.setCreateTime(alarmTime);
  165 + violationWarningInformation.setDescribe(describe44030020);
  166 + // 业务逻辑
  167 + violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);
  168 + }
  169 + //次数+1
  170 + redisCache.setCacheObject(nowDate+jsonObject.getString("siteId")+"44030020",count44030020,24, TimeUnit.HOURS);
  171 + //累计描述
  172 + redisCache.setCacheObject(nowDate+jsonObject.getString("siteId")+"44030020describe",describe44030020,24, TimeUnit.HOURS);
  173 + break;
  174 + case "44030023"://工地预警-未按时间作业
  175 + try{
  176 + //获取工地信息
  177 + JSONObject object = RemoteServerUtils.getConstructionLicenseById(jsonObject.getString("siteId"), trashConfig.getToken());
  178 + String transportEndTime = object.getString("transportEndTime");
  179 + String transportStartTime = object.getString("transportStartTime");
  180 + String endTime = manipulateTime(transportEndTime,30);
  181 + String startTime = manipulateTime(transportStartTime,-30);
  182 + //获取结束运输报警次数
  183 + String countKey = nowDate+jsonObject.getString("siteId")+"44030023"+transportEndTime;
  184 + int count44030023 = redisCache.getCacheObject(countKey)==null?1:Integer.parseInt(redisCache.getCacheObject(countKey).toString())+1;
  185 + //获取结束运输累计报警描述
  186 + String describeKey = nowDate+jsonObject.getString("siteId")+"44030023describe"+transportEndTime;
  187 + String describe44030023 = redisCache.getCacheObject(describeKey)==null?"":redisCache.getCacheObject(describeKey).toString();
  188 + //获取结束运输报警次数
  189 + String countEKey = nowDate+jsonObject.getString("siteId")+"44030023"+transportStartTime;
  190 + int countE = redisCache.getCacheObject(countEKey)==null?1:Integer.parseInt(redisCache.getCacheObject(countEKey).toString())+1;
  191 + //获取结束运输累计报警描述
  192 + String describeEKey = nowDate+jsonObject.getString("siteId")+"44030023describe"+transportStartTime;
  193 + String describeE = redisCache.getCacheObject(describeEKey)==null?"":redisCache.getCacheObject(describeEKey).toString();
  194 +
  195 + if(!StringUtils.isEmpty(describe44030023)){
  196 + describe44030023 = describe44030023 + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  197 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  198 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  199 + }else{
  200 + describe44030023 = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  201 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  202 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  203 + }
  204 + //报警次数等于5推送案卷
  205 + if(count44030023==5){
  206 + violationWarningInformation.setViolationObjectType("0");
  207 + violationWarningInformation.setSendObject("区管理部门");
  208 + violationWarningInformation.setProjectName(jsonObject.getString("siteName"));
  209 +
  210 + violationWarningInformation.setCreateTime(alarmTime);
  211 + violationWarningInformation.setDescribe(describe44030023);
  212 + // 业务逻辑
  213 + violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);
  214 + }
  215 +
  216 + if(!StringUtils.isEmpty(describeE)){
  217 + describeE = describeE + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  218 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  219 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  220 + }else{
  221 + describeE = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  222 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  223 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  224 + }
  225 + //报警次数等于5推送案卷
  226 + if(countE==5){
  227 + violationWarningInformation.setViolationObjectType("0");
  228 + violationWarningInformation.setSendObject("区管理部门");
  229 + violationWarningInformation.setProjectName(jsonObject.getString("siteName"));
  230 +
  231 + violationWarningInformation.setCreateTime(alarmTime);
  232 + violationWarningInformation.setDescribe(describeE);
  233 + // 业务逻辑
  234 + violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);
  235 + }
  236 +
  237 +
  238 + //判断结束运输
  239 + if(isTimeWithinRange(alarmTimeString,transportEndTime,endTime)){
  240 + //次数+1
  241 + redisCache.setCacheObject(countKey,count44030023,12, TimeUnit.HOURS);
  242 + //累计描述
  243 + redisCache.setCacheObject(describeKey,describe44030023,12, TimeUnit.HOURS);
  244 + }else if(isTimeWithinRange(alarmTimeString,startTime,transportStartTime)){
  245 + //次数+1
  246 + redisCache.setCacheObject(countEKey,countE,12, TimeUnit.HOURS);
  247 + //累计描述
  248 + redisCache.setCacheObject(describeEKey,describeE,12, TimeUnit.HOURS);
  249 + }
  250 + }catch (NullPointerException e){
  251 + throw e;
  252 + }
  253 + break;
  254 +
  255 + case "44030030"://未激活车辆作业
  256 + case "44030031"://未核准作业车辆作业
  257 + case "44030022"://工地预警-三无车辆进入工地
  258 + case "44030021"://工地预警-视频设备离线超时报警
  259 + case "44030028"://离线运输报警(工)
  260 +
  261 + violationWarningInformation.setViolationObjectType("0");
  262 + violationWarningInformation.setSendObject("区管理部门");
  263 + violationWarningInformation.setProjectName(jsonObject.getString("siteName"));
  264 + describe = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  265 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  266 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  267 + violationWarningInformation.setCreateTime(alarmTime);
  268 + violationWarningInformation.setDescribe(describe);
  269 + // 业务逻辑
  270 + violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);
  271 + break;
  272 +
  273 + case "44030024"://处理场所预警-未报开工作业
  274 + //获取报警次数
  275 + int count44030024 = redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030024")==null?1:Integer.parseInt(redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030024").toString())+1;
  276 + //获取累计报警描述
  277 + String describe44030024 = redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030024describe")==null?"":redisCache.getCacheObject(nowDate+jsonObject.getString("siteId")+"44030024describe").toString();
  278 + if(!StringUtils.isEmpty(describe44030024)){
  279 + describe44030024 = describe44030024 + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  280 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  281 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  282 + }else{
  283 + describe44030024 = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  284 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  285 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  286 + }
  287 + //报警次数等于5推送案卷
  288 + if(count44030024==5){
  289 + violationWarningInformation.setViolationObjectType("1");
  290 + violationWarningInformation.setSendObject("区管理部门");
  291 + violationWarningInformation.setProjectName(jsonObject.getString("siteName"));
  292 +
  293 + violationWarningInformation.setCreateTime(alarmTime);
  294 + violationWarningInformation.setDescribe(describe44030024);
  295 + // 业务逻辑
  296 + violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);
  297 + }
  298 +
  299 +
  300 + //次数+1
  301 + redisCache.setCacheObject(nowDate+jsonObject.getString("siteId")+"44030024",count44030024,24, TimeUnit.HOURS);
  302 + //累计描述
  303 + redisCache.setCacheObject(nowDate+jsonObject.getString("siteId")+"44030024describe",describe44030024,24, TimeUnit.HOURS);
  304 + break;
  305 + case "44030027"://处理场所预警-未到指定的处理场所作业
  306 + case "44030026"://处理场所预警-三无车辆进入处理场所
  307 + case "44030029"://离线运输报警(消)
  308 + case "44030025"://处理场所预警-视频设备离线超时报警
  309 + violationWarningInformation.setViolationObjectType("1");
  310 + violationWarningInformation.setSendObject("区管理部门");
  311 + violationWarningInformation.setProjectName(jsonObject.getString("siteName"));
  312 + describe = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  313 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  314 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  315 + violationWarningInformation.setCreateTime(alarmTime);
  316 + violationWarningInformation.setDescribe(describe);
  317 + // 业务逻辑
  318 + violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);
  319 + break;
  320 + case "44030032"://未按线路行驶
  321 + violationWarningInformation.setViolationObjectType("0");
  322 + violationWarningInformation.setViolationGrade("重点类");
  323 + violationWarningInformation.setSendObject("区管理部门");
  324 + describe = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  325 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "在" +
  326 + jsonObject.get("siteName") + "出现" + violationWarningInformation.getViolationType();
  327 + violationWarningInformation.setCreateTime(alarmTime);
  328 + violationWarningInformation.setDescribe(describe);
  329 + // 业务逻辑
  330 + violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);
  331 + break;
  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 +
  350 + case "44030034"://失信车辆作业
  351 + violationWarningInformation.setViolationObjectType("2");
  352 + violationWarningInformation.setSendObject("运输企业");
  353 + describe = DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  354 + + violationWarningInformation.getCompanyName() + " " + jsonObject.get("licenseplateNo") + "出现" + violationWarningInformation.getViolationType();
  355 + //设置公司简称
  356 + for(Object o:company1){
  357 + JSONObject jo = (JSONObject) o;
  358 + if(basevehicleInfo.getString("companyID").equals(jo.getString("id"))){
  359 + violationWarningInformation.setAbbreviation(jo.getString("abbreviation"));
  360 + }
  361 + }
  362 + violationWarningInformation.setCreateTime(alarmTime);
  363 + violationWarningInformation.setDescribe(describe);
  364 + // 业务逻辑
  365 + violationWarningInformationService.insertViolationWarningInformation(null, violationWarningInformation);
  366 + break;
  367 + }
  368 +
  369 +
  370 +
  371 +
  372 + } else {
  373 + String describe = "";
  374 + if(violationTypeCode.equals("44030033")||violationTypeCode.equals("44030034")){
  375 + describe = violationWarningInformation1.getDescribe() + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  376 + + jsonObject.getString("enterpriseName") + " " + jsonObject.get("licenseplateNo") + "出现" + jsonObject.getString("alarmName");
  377 + }else{
  378 + describe = violationWarningInformation1.getDescribe() + ";\n" + DateFormatUtils.format(alarmTime, "yyyy/MM/dd HH:mm:ss") + " "
  379 + + jsonObject.getString("enterpriseName") + " " + jsonObject.get("licenseplateNo") + "在" +
  380 + jsonObject.get("siteName") + "出现" + jsonObject.getString("alarmName");
  381 + }
  382 +
  383 + violationWarningInformation1.setDescribe(describe);
  384 + SpringUtils.getBean(ViolationWarningInformationMapper.class).updateViolationWarningInformation(violationWarningInformation1);
  385 + }
  386 + //kafka消费成功
  387 + KafkaCompensation kafkaCompensation = new KafkaCompensation();
  388 + kafkaCompensation.setId(Long.valueOf(id));
  389 + kafkaCompensation.setStatus(1);
  390 + SpringUtils.getBean(KafkaCompensationMapper.class).updateKafkaCompensation(kafkaCompensation);
  391 +
  392 + }
  393 +
  394 + public String insertKafkaCompensation(String data){
  395 + KafkaCompensation kafkaCompensation = new KafkaCompensation();
  396 + kafkaCompensation.setData(data);
  397 + kafkaCompensation.setCreateTime(DateUtils.getNowDate());
  398 + kafkaCompensation.setStatus(0);
  399 + SpringUtils.getBean(KafkaCompensationMapper.class).insertKafkaCompensation(kafkaCompensation);
  400 + return kafkaCompensation.getId().toString();
  401 + }
  402 +
  403 + /**
  404 + * 对HH:mm格式时间进行分钟的加减
  405 + * @param timeStr
  406 + * @param minutesToAddOrSubtract
  407 + * @return
  408 + */
  409 + public String manipulateTime(String timeStr, int minutesToAddOrSubtract) {
  410 + // 定义输入时间格式的日期时间格式器
  411 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
  412 +
  413 + // 解析输入的时间字符串为 LocalTime 对象
  414 + LocalTime time = LocalTime.parse(timeStr, formatter);
  415 +
  416 + // 执行加减分钟的操作
  417 + LocalTime modifiedTime = time.plusMinutes(minutesToAddOrSubtract);
  418 +
  419 + // 将修改后的时间格式化为 HH:mm 格式
  420 + String formattedModifiedTime = modifiedTime.format(formatter);
  421 +
  422 + return formattedModifiedTime;
  423 + }
  424 +
  425 + /**
  426 + * 判断timeStr是否在startTimeStr-endTimeStr区间
  427 + * @param timeStr
  428 + * @param startTimeStr
  429 + * @param endTimeStr
  430 + * @return
  431 + */
  432 + public boolean isTimeWithinRange(String timeStr, String startTimeStr, String endTimeStr) {
  433 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
  434 + LocalTime time = LocalTime.parse(timeStr, formatter);
  435 + LocalTime startTime = LocalTime.parse(startTimeStr, formatter);
  436 + LocalTime endTime = LocalTime.parse(endTimeStr, formatter);
  437 +
  438 + return !time.isBefore(startTime) && !time.isAfter(endTime);
  439 +
  440 + }
  441 +}