Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zhongtong-avi-service
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
中通客车项目
zhongtong-avi-service
Commits
5a5c3c1b
Commit
5a5c3c1b
authored
Nov 09, 2019
by
喻训浩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: avi修改
parent
c70e71d5
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
143 additions
and
44 deletions
+143
-44
PaintshopStation.java
...star/zhongtong/avi/equipment/domain/PaintshopStation.java
+6
-6
RedisConfig.java
...a/net/vtstar/zhongtong/avi/global/config/RedisConfig.java
+30
-0
Constant.java
...va/net/vtstar/zhongtong/avi/global/constant/Constant.java
+3
-0
AreaController.java
...r/zhongtong/avi/monitoring/controller/AreaController.java
+0
-1
StationState.java
...r/zhongtong/avi/monitoring/domain/enums/StationState.java
+1
-1
AVIMonitorJob.java
...et/vtstar/zhongtong/avi/monitoring/job/AVIMonitorJob.java
+34
-19
ReadStationToCacheRunner.java
...gtong/avi/monitoring/runner/ReadStationToCacheRunner.java
+4
-0
RfidMessageHandler.java
.../vtstar/zhongtong/avi/mqtt/handle/RfidMessageHandler.java
+12
-10
application-dev-yxh.properties
src/main/resources/config/application-dev-yxh.properties
+10
-4
application-quartz.properties
src/main/resources/config/application-quartz.properties
+3
-3
StationTest.java
src/test/java/net/vtstar/zhongtong/avi/StationTest.java
+40
-0
No files found.
src/main/java/net/vtstar/zhongtong/avi/equipment/domain/PaintshopStation.java
View file @
5a5c3c1b
...
...
@@ -6,7 +6,6 @@ import lombok.Data;
import
net.vtstar.user.search.JoinColumn
;
import
net.vtstar.user.search.Search
;
import
net.vtstar.zhongtong.avi.monitoring.domain.Skid
;
import
net.vtstar.zhongtong.avi.monitoring.domain.enums.BusType
;
import
net.vtstar.zhongtong.avi.monitoring.domain.enums.ProductionType
;
import
net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState
;
import
org.hibernate.validator.constraints.Length
;
...
...
@@ -15,6 +14,7 @@ import javax.persistence.Column;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @Author: xiadongwei
...
...
@@ -24,7 +24,7 @@ import javax.validation.constraints.NotNull;
@Data
@Search
(
code
=
"PAINTSHOP_STATION"
)
@Table
(
name
=
"paintshop_station"
)
public
class
PaintshopStation
{
public
class
PaintshopStation
implements
Serializable
{
@Id
private
Long
id
;
...
...
@@ -89,15 +89,15 @@ public class PaintshopStation {
@ApiModelProperty
(
value
=
"车体类型"
)
private
ProductionType
busType
;
@ApiModelProperty
(
notes
=
"旧状态"
,
hidden
=
true
)
@ApiModelProperty
(
notes
=
"旧状态"
,
hidden
=
true
)
private
StationState
oldState
;
@ApiModelProperty
(
notes
=
"平移车到位信号"
,
hidden
=
true
)
@ApiModelProperty
(
notes
=
"平移车到位信号"
,
hidden
=
true
)
private
Boolean
arrive
;
@ApiModelProperty
(
notes
=
"当前绑定滑撬"
,
hidden
=
true
)
@ApiModelProperty
(
notes
=
"当前绑定滑撬"
,
hidden
=
true
)
private
Skid
skid
;
@ApiModelProperty
(
notes
=
"工位正反转
"
,
hidden
=
true
)
@ApiModelProperty
(
notes
=
"工位正反转
,正转true,翻转false"
,
hidden
=
true
)
private
Boolean
turn
;
}
src/main/java/net/vtstar/zhongtong/avi/global/config/RedisConfig.java
0 → 100644
View file @
5a5c3c1b
package
net
.
vtstar
.
zhongtong
.
avi
.
global
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer
;
import
org.springframework.data.redis.serializer.JdkSerializationRedisSerializer
;
import
org.springframework.data.redis.serializer.RedisSerializer
;
import
org.springframework.data.redis.serializer.StringRedisSerializer
;
@Configuration
public
class
RedisConfig
{
@Bean
@Primary
public
RedisTemplate
<
Object
,
Object
>
redisTemplate
(
LettuceConnectionFactory
connectionFactory
)
{
RedisTemplate
<
Object
,
Object
>
redisTemplate
=
new
RedisTemplate
<>();
redisTemplate
.
setConnectionFactory
(
connectionFactory
);
redisTemplate
.
setKeySerializer
(
new
StringRedisSerializer
());
redisTemplate
.
setValueSerializer
(
new
GenericJackson2JsonRedisSerializer
());
redisTemplate
.
setHashKeySerializer
(
RedisSerializer
.
string
());
redisTemplate
.
setHashValueSerializer
(
RedisSerializer
.
string
());
redisTemplate
.
afterPropertiesSet
();
return
redisTemplate
;
}
}
src/main/java/net/vtstar/zhongtong/avi/global/constant/Constant.java
View file @
5a5c3c1b
...
...
@@ -13,4 +13,7 @@ public class Constant {
public
static
final
String
HANZHUANG_VEHICLE1_BUSNO_KEY
=
"HZC1"
;
public
static
final
String
HANZHUANG_VEHICLE2_BUSNO_KEY
=
"HZC2"
;
//redis平移车信号到位
public
static
final
String
VEHICLE_PREFIX
=
"VEHICLE:STATE"
;
}
src/main/java/net/vtstar/zhongtong/avi/monitoring/controller/AreaController.java
View file @
5a5c3c1b
...
...
@@ -142,7 +142,6 @@ public class AreaController {
station2
.
setCode
(
"HDG1-3"
);
stationMap
.
put
(
"HDG1-3"
,
station2
);
s
.
add
(
stationMap
);
return
Return
.
success
(
stationMap
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/domain/enums/StationState.java
View file @
5a5c3c1b
...
...
@@ -9,5 +9,5 @@ public enum StationState {
/**
* 空闲
*/
FREE
FREE
}
src/main/java/net/vtstar/zhongtong/avi/monitoring/job/AVIMonitorJob.java
View file @
5a5c3c1b
...
...
@@ -2,32 +2,27 @@ package net.vtstar.zhongtong.avi.monitoring.job;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.protocol.modbus.tcp.netty.packet.AbstractModbusResponse
;
import
net.vtstar.protocol.modbus.tcp.netty.packet.ReadCoilsResponse
;
import
net.vtstar.protocol.modbus.tcp.netty.packet.ReadMultipleRegistersResponse
;
import
net.vtstar.protocol.modbus.tcp.netty.utils.NettyUtils
;
import
net.vtstar.protocol.modbus.tcp.netty.utils.PoolKey
;
import
net.vtstar.scada.base.equipmgt.domain.*
;
import
net.vtstar.scada.base.equipmgt.service.EquipInfoService
;
import
net.vtstar.scada.base.gather.job.GatherJob
;
import
net.vtstar.scada.base.global.service.ModbusService
;
import
net.vtstar.user.mybatis.provider.Operation
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.zhongtong.avi.equipment.domain.PaintshopStation
;
import
net.vtstar.zhongtong.avi.equipment.mapper.PaintshopStationMapper
;
import
net.vtstar.zhongtong.avi.
monitoring.domain.Vehicle
;
import
net.vtstar.zhongtong.avi.
global.constant.Constant
;
import
net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.Cache
;
import
org.springframework.data.redis.core.HashOperations
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Slf4j
@Component
...
...
@@ -48,6 +43,9 @@ public class AVIMonitorJob extends GatherJob {
@Resource
(
name
=
"redisTemplate"
)
protected
HashOperations
hashOperations
;
@Resource
(
name
=
"redisTemplate"
)
private
ValueOperations
valueOperations
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
...
...
@@ -55,8 +53,8 @@ public class AVIMonitorJob extends GatherJob {
if
(
CollectionUtils
.
isEmpty
(
equipInfoList
))
{
return
;
}
Map
<
String
,
PaintshopStation
>
stationMap
=
hashOperations
.
entries
(
"station"
);
Map
<
String
,
Vehicle
>
vehicleMap
=
hashOperations
.
entries
(
"vehicle_signal"
);
//
Map<String, PaintshopStation> stationMap = hashOperations.entries("station");
//
Map<String, Vehicle> vehicleMap = hashOperations.entries("vehicle_signal");
equipInfoList
.
forEach
(
equipInfo
->
{
List
<
EquipCommunication
>
commList
=
equipInfoService
.
getCommunicationList
(
equipInfo
.
getEquipCode
(),
1
);
...
...
@@ -105,21 +103,38 @@ public class AVIMonitorJob extends GatherJob {
for
(
EquipDataTemplateItem
item
:
itemList
)
{
String
fieldName
=
item
.
getFieldName
();
if
(
fieldName
.
startsWith
(
"stationState"
))
{
String
stationCode
=
fieldName
.
split
(
"_"
)[
1
];
PaintshopStation
station
=
stationCache
.
get
(
stationCode
,
PaintshopStation
.
class
);
if
(
fieldName
.
startsWith
(
"station:ve"
))
{
String
stationCode
=
fieldName
.
split
(
":"
)[
2
];
PaintshopStation
station
=
(
PaintshopStation
)
valueOperations
.
get
(
Constant
.
STATION_PREFIX
+
stationCode
);
if
(
null
==
station
)
{
station
=
stationCache
.
get
(
stationCode
,
PaintshopStation
.
class
);
}
byte
state
=
response
.
getBody
().
readByte
();
if
((
state
&
0x01
)
==
0
)
{
state
=
0
;
}
else
{
state
=
1
;
}
station
.
setOldState
(
station
.
getState
());
station
.
setState
(
state
==
0
?
StationState
.
FREE
:
StationState
.
USE
);
// stationMap.put(
stationCode, station);
valueOperations
.
set
(
Constant
.
STATION_PREFIX
+
stationCode
,
station
);
}
if
(
fieldName
.
startsWith
(
"station_vehicle_signal"
))
{
String
[]
split
=
fieldName
.
split
(
"_"
);
String
stationCode
=
split
[
3
];
PaintshopStation
station
=
stationMap
.
get
(
stationCode
);
if
(
fieldName
.
startsWith
(
"station:turn"
))
{
String
stationCode
=
fieldName
.
split
(
":"
)[
3
];
PaintshopStation
station
=
(
PaintshopStation
)
valueOperations
.
get
(
Constant
.
STATION_PREFIX
+
stationCode
);
if
(
null
==
station
)
{
station
=
stationCache
.
get
(
stationCode
,
PaintshopStation
.
class
);
}
byte
state
=
response
.
getBody
().
readByte
();
station
.
setArrive
(
state
==
1
?
true
:
false
);
if
((
state
&
0x01
)
==
0
)
{
state
=
0
;
}
else
{
state
=
1
;
}
station
.
setOldState
(
station
.
getState
());
station
.
setTurn
(
state
==
0
?
true
:
false
);
valueOperations
.
set
(
Constant
.
STATION_PREFIX
+
stationCode
,
station
);
}
}
}
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/runner/ReadStationToCacheRunner.java
View file @
5a5c3c1b
...
...
@@ -49,6 +49,10 @@ public class ReadStationToCacheRunner implements CommandLineRunner {
addOrderBy
(
PaintshopStation
.
class
,
"sequence"
,
OrderBy
.
ASC
);
}},
PaintshopStation
.
class
);
for
(
PaintshopStation
station
:
stations
)
{
stationCache
.
put
(
station
.
getCode
(),
station
);
}
//
// Map<String, Skid> skidMap = hashOperations.entries("skid");
// if (null == skidMap) {
...
...
src/main/java/net/vtstar/zhongtong/avi/mqtt/handle/RfidMessageHandler.java
View file @
5a5c3c1b
package
net
.
vtstar
.
zhongtong
.
avi
.
mqtt
.
handle
;
import
com.alibaba.fastjson.JSONObject
;
import
com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.protocol.modbus.tcp.netty.service.ModbusTemplate
;
import
net.vtstar.scada.base.global.service.ModbusService
;
...
...
@@ -9,7 +8,6 @@ import net.vtstar.scada.base.mqtt.utils.MqttConstants;
import
net.vtstar.user.mybatis.provider.Operation
;
import
net.vtstar.user.mybatis.provider.OrderBy
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.zhongtong.avi.equipment.domain.EquipInfo
;
import
net.vtstar.zhongtong.avi.equipment.domain.PaintshopStation
;
import
net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord
;
import
net.vtstar.zhongtong.avi.equipment.mapper.PaintshopStationMapper
;
...
...
@@ -30,7 +28,6 @@ import org.springframework.stereotype.Component;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
javax.validation.constraints.NotNull
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -99,36 +96,41 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
}
if
(
CollectionUtils
.
isEmpty
(
stationList
))
{
log
.
error
(
"找不到对平移车到位信号! 平移车 id:{},滑撬 {}"
,
vehicle
.
getCode
(),
id
);
return
;
}
Map
<
String
,
List
<
PaintshopStation
>>
listMap
=
stationList
.
stream
().
filter
(
sta
->
sta
.
getTurn
()
!=
null
)
.
collect
(
Collectors
.
groupingBy
(
PaintshopStation:
:
getLaneCode
));
PaintshopStation
sourceStation
;
PaintshopStation
sourceStation
=
new
PaintshopStation
()
;
if
(
listMap
.
size
()
>
1
)
{
Set
<
String
>
veKeys
=
redisTemplate
.
keys
(
Constant
.
VEHICLE_PREFIX
);
if
(
CollectionUtils
.
isEmpty
(
veKeys
)
||
veKeys
.
size
()
!=
listMap
.
size
())
{
log
.
error
(
"平移车读写信号数量:{} 与 到位信号数量不一致!{}"
,
veKeys
.
size
(),
listMap
.
size
());
return
;
}
for
(
String
veKey
:
veKeys
)
{
Vehicle
v
=
(
Vehicle
)
valueOperations
.
get
(
veKey
);
}
}
else
{
List
<
PaintshopStation
>
stations
=
listMap
.
get
(
0
);
if
(
stations
.
size
()
==
1
)
{
sourceStation
=
stations
.
get
(
0
);
}
else
{
}
}
Long
laneId
=
sourceStation
.
getLaneId
();
vehicle
.
setCurrentRfid
(
id
);
StationState
oldState
=
null
;
String
oldSkidId
=
null
;
if
(
state
==
1
)
{
//获得正反转信息,得到平移车相邻工位信息
PaintshopStation
sta
=
new
PaintshopStation
();
List
<
PaintshopStation
>
stations
;
stations
=
stationMapper
.
findList
(
new
WhereFilter
()
{{
addFilter
(
PaintshopStation
.
class
,
"lane_id"
,
Operation
.
EQUAL
,
sta
.
getLaneId
()
);
addFilter
(
PaintshopStation
.
class
,
"lane_id"
,
Operation
.
EQUAL
,
laneId
);
addOrderBy
(
RuntimeRecord
.
class
,
"sequence"
,
OrderBy
.
DESC
);
}},
PaintshopStation
.
class
);
...
...
src/main/resources/config/application-dev-yxh.properties
View file @
5a5c3c1b
...
...
@@ -14,24 +14,30 @@ spring.datasource.password=123456
# sql server(试交车间--检测线192.168.1.200)
spring.test.sqlserver.driver-class-name
=
com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.test.sqlserver.jdbc-url
=
jdbc:sqlserver://127.0.0.1:1433;DatabaseName=CARTEST_ZTKC
spring.test.sqlserver.username
=
admin
spring.test.sqlserver.username
=
sa
spring.test.sqlserver.password
=
123456
# sql server(试交车间--限速值)
spring.speed.sqlserver.driver-class-name
=
com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.speed.sqlserver.jdbc-url
=
jdbc:sqlserver://127.0.0.1:1433;DatabaseName=localdb
spring.speed.sqlserver.username
=
admin
spring.speed.sqlserver.username
=
sa
spring.speed.sqlserver.password
=
123456
# sql server(总装车间--智能扭力扳手)
spring.torque.sqlserver.driver-class-name
=
com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.torque.sqlserver.jdbc-url
=
jdbc:sqlserver://127.0.0.1:1433;DatabaseName=AtlasCopco_ToolsNet_Database
spring.torque.sqlserver.username
=
admin
spring.torque.sqlserver.username
=
sa
spring.torque.sqlserver.password
=
123456
# sql server(MES)
spring.mes.sqlserver.driver-class-name
=
com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.mes.sqlserver.jdbc-url
=
jdbc:sqlserver://127.0.0.1:1433;DatabaseName=PaintingPlan
spring.mes.sqlserver.username
=
sa
spring.mes.sqlserver.password
=
123456
spring.resources.static-locations
=
classpath:/META-INF/resources/,file:///D:/productWeb/zhongtong/static
# redis
spring.redis.host
=
10.1
00.172.14
spring.redis.host
=
10.1
.25.249
spring.redis.port
=
6379
spring.redis.password
=
\ No newline at end of file
src/main/resources/config/application-quartz.properties
View file @
5a5c3c1b
...
...
@@ -31,7 +31,7 @@ quartz.job.taskInfos[1].jobGroup=CleanStatusDataJob
quartz.job.taskInfos[1]
.jobDescription
=
\u
6E05
\u
6D17
\u
8BBE
\u5907\u
72B6
\u6001
Job
#quartz.job.taskInfos[1].cronExpression=0 0 0 * * ?
quartz.job.taskInfos[1]
.cronExpression
=
0/10 * * * * ?
quartz.job.taskInfos[1]
.start
=
tru
e
quartz.job.taskInfos[1]
.start
=
fals
e
quartz.job.taskInfos[2]
.jobName
=
net.vtstar.zhongtong.avi.equipment.job.StatisticsTimeJob
quartz.job.taskInfos[2]
.jobGroup
=
StatisticsTimeJob
...
...
@@ -96,7 +96,7 @@ quartz.job.taskInfos[14].jobName=net.vtstar.zhongtong.avi.gateway.painting.job.P
quartz.job.taskInfos[14]
.jobGroup
=
PaintingRobotMachineJob
quartz.job.taskInfos[14]
.jobDescription
=
\u
55b7
\u
6d82
\u
673a
\u5668\u
4ebaJob
quartz.job.taskInfos[14]
.cronExpression
=
0/5 * * * * ?
quartz.job.taskInfos[14]
.start
=
tru
e
quartz.job.taskInfos[14]
.start
=
fals
e
#喷涂喷涂室
quartz.job.taskInfos[23]
.jobName
=
net.vtstar.zhongtong.avi.gateway.painting.job.SprayBoothStateMachineJob
...
...
@@ -204,7 +204,7 @@ quartz.job.taskInfos[24].jobName=net.vtstar.zhongtong.avi.monitoring.job.AVIMoni
quartz.job.taskInfos[24]
.jobGroup
=
AVIMonitorJob
quartz.job.taskInfos[24]
.jobDescription
=
\u
76d1
\u
63a7
\u0041\u0056\u0049
Job
quartz.job.taskInfos[24]
.cronExpression
=
0/10 * * * * ?
quartz.job.taskInfos[24]
.start
=
fals
e
quartz.job.taskInfos[24]
.start
=
tru
e
#mes 工单同步
quartz.job.taskInfos[26]
.jobName
=
net.vtstar.zhongtong.avi.sqlserver.job.MesWorkOrderJob
...
...
src/test/java/net/vtstar/zhongtong/avi/StationTest.java
0 → 100644
View file @
5a5c3c1b
package
net
.
vtstar
.
zhongtong
.
avi
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.scada.base.equipmgt.domain.EquipDataTemplateItem
;
import
net.vtstar.scada.base.equipmgt.mapper.EquipDataTemplateItemMapper
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.zhongtong.avi.equipment.domain.PaintshopStation
;
import
net.vtstar.zhongtong.avi.equipment.mapper.PaintshopStationMapper
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.ActiveProfiles
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
java.util.List
;
@Slf4j
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
(
classes
=
Application
.
class
)
@ActiveProfiles
(
"dev-yxh"
)
public
class
StationTest
{
@Autowired
private
PaintshopStationMapper
stationMapper
;
@Autowired
private
EquipDataTemplateItemMapper
itemMapper
;
@Test
public
void
test
(){
List
<
EquipDataTemplateItem
>
tem
=
itemMapper
.
findByTemplateId
(
1
);
EquipDataTemplateItem
item
=
tem
.
get
(
0
);
for
(
int
i
=
0
;
i
<
130
;
i
++)
{
item
.
setAddress
(
0
);
item
.
setId
(
null
);
itemMapper
.
insert
(
item
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment