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
a41aa6af
Commit
a41aa6af
authored
Dec 18, 2019
by
夏东伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
AVI调试
parent
beba65cf
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
529 additions
and
125 deletions
+529
-125
PaintshopStation.java
...star/zhongtong/avi/equipment/domain/PaintshopStation.java
+1
-1
RuntimeRecord.java
.../vtstar/zhongtong/avi/equipment/domain/RuntimeRecord.java
+3
-0
StatisticsTimeJob.java
...vtstar/zhongtong/avi/equipment/job/StatisticsTimeJob.java
+3
-0
EquipmentService.java
...tar/zhongtong/avi/equipment/service/EquipmentService.java
+10
-2
RunRecordService.java
...tar/zhongtong/avi/equipment/service/RunRecordService.java
+4
-0
ElectrophoresisMachine.java
...g/avi/gateway/painting/domain/ElectrophoresisMachine.java
+1
-0
PolishingRoomMachine.java
...ong/avi/gateway/painting/domain/PolishingRoomMachine.java
+14
-17
PolishingRoomStateMachine.java
...vi/gateway/painting/domain/PolishingRoomStateMachine.java
+0
-1
VocMachine.java
...tar/zhongtong/avi/gateway/painting/domain/VocMachine.java
+7
-2
ElectrophoresisMachineJob.java
...g/avi/gateway/painting/job/ElectrophoresisMachineJob.java
+80
-0
PolishingRoomStateJob.java
...gtong/avi/gateway/painting/job/PolishingRoomStateJob.java
+56
-0
RotaryRollerBedMachineJob.java
...g/avi/gateway/painting/job/RotaryRollerBedMachineJob.java
+1
-0
SprayBoothListener.java
...ong/avi/gateway/painting/listener/SprayBoothListener.java
+5
-5
ElectrophoresisMapper.java
...ng/avi/gateway/painting/mapper/ElectrophoresisMapper.java
+10
-0
WeldingRobotMachineJob.java
...ongtong/avi/gateway/parts/job/WeldingRobotMachineJob.java
+15
-1
RedisConfig.java
...a/net/vtstar/zhongtong/avi/global/config/RedisConfig.java
+2
-4
LedController.java
...tstar/zhongtong/avi/ledlamp/controller/LedController.java
+8
-1
LedService.java
.../net/vtstar/zhongtong/avi/ledlamp/service/LedService.java
+3
-3
Vehicle.java
...a/net/vtstar/zhongtong/avi/monitoring/domain/Vehicle.java
+1
-1
AVIMonitorJob.java
...et/vtstar/zhongtong/avi/monitoring/job/AVIMonitorJob.java
+58
-44
AviWarningJob.java
...et/vtstar/zhongtong/avi/monitoring/job/AviWarningJob.java
+147
-0
RedisToCacheJob.java
.../vtstar/zhongtong/avi/monitoring/job/RedisToCacheJob.java
+4
-1
ReadDataToCacheRunner.java
...hongtong/avi/monitoring/runner/ReadDataToCacheRunner.java
+8
-18
StationPassInfoService.java
...ngtong/avi/monitoring/service/StationPassInfoService.java
+5
-10
RfidMessageHandler.java
.../vtstar/zhongtong/avi/mqtt/handle/RfidMessageHandler.java
+38
-13
MesWorkOrderJob.java
...t/vtstar/zhongtong/avi/sqlserver/job/MesWorkOrderJob.java
+1
-0
EquipDataUtil.java
...in/java/net/vtstar/zhongtong/avi/utils/EquipDataUtil.java
+12
-0
application-quartz.properties
src/main/resources/config/application-quartz.properties
+22
-1
ElectrophoresisMapper.xml
src/main/resources/mapper/mysql/ElectrophoresisMapper.xml
+5
-0
RotaryRollerBedMapper.xml
src/main/resources/mapper/mysql/RotaryRollerBedMapper.xml
+5
-0
No files found.
src/main/java/net/vtstar/zhongtong/avi/equipment/domain/PaintshopStation.java
View file @
a41aa6af
...
...
@@ -27,7 +27,7 @@ import java.util.Date;
@Data
@Search
(
code
=
"PAINTSHOP_STATION"
)
@Table
(
name
=
"paintshop_station"
)
public
class
PaintshopStation
implements
Serializable
{
public
class
PaintshopStation
{
@Id
private
Long
id
;
...
...
src/main/java/net/vtstar/zhongtong/avi/equipment/domain/RuntimeRecord.java
View file @
a41aa6af
...
...
@@ -54,4 +54,7 @@ public class RuntimeRecord {
@ApiModelProperty
(
notes
=
"创建时间"
)
@Column
(
name
=
"create_time"
)
private
Date
createTime
;
@Column
(
name
=
"group_code"
)
private
String
groupCode
;
}
src/main/java/net/vtstar/zhongtong/avi/equipment/job/StatisticsTimeJob.java
View file @
a41aa6af
...
...
@@ -81,6 +81,9 @@ public class StatisticsTimeJob extends QuartzJobBean {
runtimeRecord
.
setTotalRuntime
(
total
.
add
(
hours
));
runtimeRecord
.
setMachineId
(
info
.
getId
());
runtimeRecord
.
setWorkshopCode
(
info
.
getWorkshopCode
());
if
(
"POLISHING_ROOM"
.
equals
(
info
.
getEquipType
())){
runtimeRecord
.
setGroupCode
(
"1"
);
}
runtimeRecordMapper
.
insert
(
runtimeRecord
);
}
}
...
...
src/main/java/net/vtstar/zhongtong/avi/equipment/service/EquipmentService.java
View file @
a41aa6af
...
...
@@ -66,13 +66,21 @@ public class EquipmentService {
public
List
<
Map
<
String
,
Object
>>
findRealTimeData
(
JSONObject
pageFilter
)
{
PageHelper
.
startPage
(
pageFilter
.
getIntValue
(
"pageNum"
),
pageFilter
.
getIntValue
(
"pageSize"
));
Class
searchCode
=
classNameCache
.
get
(
pageFilter
.
getString
(
"searchCode"
),
Class
.
class
);
String
searchCode
=
pageFilter
.
getString
(
"searchCode"
);
Class
searchCodeClazz
=
classNameCache
.
get
(
searchCode
,
Class
.
class
);
if
(
searchCode
==
null
){
return
new
ArrayList
<>();
}
if
(
"POLISHING_ROOM"
.
equals
(
searchCode
)){
return
dataMapper
.
findJoin
(
searchService
.
pageFilter2Filter
(
pageFilter
,
new
WhereFilter
(){{
addFilter
(
"status"
,
Operation
.
IS
,
"null"
);
addFilter
(
"group_code"
,
Operation
.
EQUAL
,
"1"
);
}}),
searchCodeClazz
);
}
return
dataMapper
.
findJoin
(
searchService
.
pageFilter2Filter
(
pageFilter
,
new
WhereFilter
(){{
addFilter
(
"status"
,
Operation
.
EQUAL_GREATER_THAN
,
1
);
}}),
searchCode
);
}}),
searchCode
Clazz
);
}
public
void
orderExport
(
JSONObject
pageFilter
,
HttpServletResponse
response
)
throws
IOException
{
...
...
src/main/java/net/vtstar/zhongtong/avi/equipment/service/RunRecordService.java
View file @
a41aa6af
...
...
@@ -58,6 +58,7 @@ public class RunRecordService {
PageHelper
.
startPage
(
pageFilter
.
getIntValue
(
"pageNum"
),
pageFilter
.
getIntValue
(
"pageSize"
));
List
<
RuntimeRecord
>
list
=
runtimeRecordMapper
.
findList
(
searchService
.
pageFilter2Filter
(
pageFilter
,
new
WhereFilter
()
{{
addJoin
(
RuntimeRecord
.
class
,
"machine_id"
,
EquipInfo
.
class
,
"id"
);
addFilter
(
RuntimeRecord
.
class
,
"group_code"
,
Operation
.
IS
,
"null"
);
}}),
RuntimeRecord
.
class
);
list
.
stream
().
forEach
(
runtimeRecord
->
{
switch
(
runtimeRecord
.
getWorkshopCode
()){
...
...
@@ -173,6 +174,9 @@ public class RunRecordService {
if
(
null
==
warningMap
.
get
(
faultString
)){
faultRecord
.
setEndTime
(
new
Date
());
faultRecordMapper
.
update
(
faultRecord
);
}
else
{
faultRecord
.
setBeginTime
(
new
Date
());
faultRecordMapper
.
update
(
faultRecord
);
}
}
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/domain/ElectrophoresisMachine.java
View file @
a41aa6af
...
...
@@ -20,6 +20,7 @@ import java.util.Date;
@Table
(
name
=
"eqp_data_rectification_out"
)
public
class
ElectrophoresisMachine
extends
EquipmentData
{
@Show
(
label
=
"设备编号"
)
@Column
(
name
=
"eqp_code"
)
@ApiModelProperty
(
notes
=
"设备编号"
)
private
String
equipCode
;
...
...
src/main/java/net/vtstar/zhongtong/avi/
equipment/domain/EquipmentWarningRecord
.java
→
src/main/java/net/vtstar/zhongtong/avi/
gateway/painting/domain/PolishingRoomMachine
.java
View file @
a41aa6af
package
net
.
vtstar
.
zhongtong
.
avi
.
equipment
.
domain
;
package
net
.
vtstar
.
zhongtong
.
avi
.
gateway
.
painting
.
domain
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
net.vtstar.scada.base.gather.domain.EquipmentData
;
import
net.vtstar.user.search.JoinColumn
;
import
net.vtstar.user.search.Search
;
import
net.vtstar.zhongtong.avi.equipment.domain.EquipInfo
;
import
net.vtstar.zhongtong.avi.global.web.Show
;
import
net.vtstar.zhongtong.avi.global.web.domain.enums.FieldType
;
import
javax.persistence.Column
;
import
javax.persistence.Id
;
...
...
@@ -12,46 +16,39 @@ import javax.persistence.Table;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @Author: xiadongwei
* @Date: 2019/9/20 17:29
*/
@ApiModel
(
"设备报警"
)
@Data
@Search
(
code
=
"MACHINE_RUNTIME_RECORD"
)
@Table
(
name
=
"equip_warning_record"
)
public
class
EquipmentWarningRecord
{
@Search
(
code
=
"POLISHING_ROOM"
)
@ApiModel
(
"涂装-打磨室风机运行时间"
)
@Table
(
name
=
"machine_runtime_record"
)
public
class
PolishingRoomMachine
{
@Id
private
Long
id
;
@ApiModelProperty
(
notes
=
"车间"
)
@Column
(
name
=
"workshop_code"
)
@Search
private
String
workshopCode
;
@ApiModelProperty
(
notes
=
"设备ID"
)
@Column
(
name
=
"machine_id"
)
private
Long
machineId
;
@Show
(
label
=
"设备编号"
)
@ApiModelProperty
(
notes
=
"设备编号"
)
@JoinColumn
(
tableName
=
EquipInfo
.
class
,
name
=
"equip_code"
)
private
String
equipCode
;
@Show
(
label
=
"设备编号"
)
@ApiModelProperty
(
notes
=
"设备名称"
)
@JoinColumn
(
tableName
=
EquipInfo
.
class
,
name
=
"alias"
)
@Search
private
String
alias
;
@Show
(
label
=
"当班运行时间(h)"
)
@ApiModelProperty
(
notes
=
"当前运行时间"
)
@Column
(
name
=
"current_runtime"
)
private
BigDecimal
currentRuntime
;
@ApiModelProperty
(
notes
=
"累计运行时间"
)
@Column
(
name
=
"total_runtime"
)
private
BigDecimal
totalRuntime
;
@Show
(
label
=
"更新时间"
)
@ApiModelProperty
(
notes
=
"创建时间"
)
@Column
(
name
=
"create_time"
)
private
Date
createTime
;
}
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/domain/PolishingRoomStateMachine.java
View file @
a41aa6af
...
...
@@ -14,7 +14,6 @@ import javax.persistence.Table;
import
java.util.Date
;
@Data
@Search
(
code
=
"POLISHING_ROOM"
)
@ApiModel
(
"涂装-打磨室风机状态及报警信息"
)
@Table
(
name
=
"eqp_data_polishing_booth_state"
)
public
class
PolishingRoomStateMachine
extends
EquipmentData
{
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/domain/VocMachine.java
View file @
a41aa6af
...
...
@@ -25,16 +25,21 @@ public class VocMachine extends EquipmentData {
@Search
private
String
equipCode
;
@Show
(
label
=
"北
侧
VOC浓度"
)
@Show
(
label
=
"北
进口
VOC浓度"
)
@Column
(
name
=
"concentration1"
)
@ApiModelProperty
(
notes
=
"VOC浓度"
)
private
Float
concentration1
;
@Show
(
label
=
"南
侧
VOC浓度"
)
@Show
(
label
=
"南
进口
VOC浓度"
)
@Column
(
name
=
"concentration2"
)
@ApiModelProperty
(
notes
=
"VOC浓度"
)
private
Float
concentration2
;
@Show
(
label
=
"出口VOC浓度"
)
@Column
(
name
=
"concentration3"
)
@ApiModelProperty
(
notes
=
"VOC浓度"
)
private
Float
concentration3
;
@Search
@Show
(
label
=
"采集时间"
,
dataType
=
FieldType
.
DATETIME
)
@ApiModelProperty
(
"时间"
)
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/job/ElectrophoresisMachineJob.java
0 → 100644
View file @
a41aa6af
package
net
.
vtstar
.
zhongtong
.
avi
.
gateway
.
painting
.
job
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.user.mybatis.provider.Operation
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.utils.CollecUtils
;
import
net.vtstar.utils.DateUtils
;
import
net.vtstar.zhongtong.avi.gateway.painting.domain.ElectrophoresisMachine
;
import
net.vtstar.zhongtong.avi.gateway.painting.mapper.ElectrophoresisMapper
;
import
net.vtstar.zhongtong.avi.global.constant.Constant
;
import
org.quartz.DisallowConcurrentExecution
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.scheduling.quartz.QuartzJobBean
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
/**
* 电泳空中行车时间数据采集JOB
*/
@Slf4j
@Component
public
class
ElectrophoresisMachineJob
extends
QuartzJobBean
{
private
static
final
String
NAME
=
"VEHICLE_ELECTROPHORESIS_OUTPUT"
;
public
static
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyy:MM:dd"
);
public
static
final
List
<
String
>
eqpNoList
=
Arrays
.
asList
(
"预脱脂"
,
"脱脂"
,
"水洗1"
,
"水洗2"
,
"表调"
,
"磷化"
,
"水洗3"
,
"水洗4"
,
"纯水洗1"
,
"电泳转移槽"
,
"电泳槽"
,
"UF1"
,
"UF2"
,
"纯水洗2"
);
@Resource
(
name
=
"redisTemplate"
)
protected
ValueOperations
valueOperations
;
@Autowired
private
ElectrophoresisMapper
mapper
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
String
today
=
dateFormat
.
format
(
new
Date
());
String
areaKey
=
Constant
.
BUS_SIZE_OUT
+
"2"
+
":"
+
today
;
Integer
size
=
(
Integer
)
valueOperations
.
get
(
areaKey
);
if
(
null
==
size
)
{
size
=
1
;
}
String
eqpNo
=
eqpNoList
.
get
((
int
)(
Math
.
random
()
*
14
));
String
startOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getStartOfDay
(
0
,
new
Date
()),
"yyyy-MM-dd HH:mm:ss"
);
String
endOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getEndOfDay
(
0
,
new
Date
()),
"yyyy-MM-dd HH:mm:ss"
);
List
<
ElectrophoresisMachine
>
list
=
mapper
.
findList
(
new
WhereFilter
()
{{
addFilter
(
"eqp_code"
,
Operation
.
EQUAL
,
eqpNo
);
addFilter
(
"create_time"
,
Operation
.
EQUAL_GREATER_THAN
,
startOfDay
);
addFilter
(
"create_time"
,
Operation
.
EQUAL_LESS_THAN
,
endOfDay
);
}},
ElectrophoresisMachine
.
class
);
if
(
CollecUtils
.
isEmpty
(
list
)){
ElectrophoresisMachine
machine
=
new
ElectrophoresisMachine
();
machine
.
setEquipCode
(
eqpNo
);
machine
.
setUpTime
(
new
BigDecimal
(
size
*
2
));
machine
.
setDownTime
(
new
BigDecimal
(
size
*
2.5
));
machine
.
setEntryTime
(
new
BigDecimal
(
size
*
1.5
));
machine
.
setTranslationTime
(
new
BigDecimal
(
size
*
2
));
machine
.
setCreateTime
(
new
Date
());
mapper
.
insert
(
machine
);
}
else
{
ElectrophoresisMachine
machine
=
list
.
get
(
0
);
machine
.
setUpTime
(
machine
.
getUpTime
().
add
(
new
BigDecimal
(
0.5
)));
machine
.
setDownTime
(
machine
.
getDownTime
().
add
(
new
BigDecimal
(
1
)));
machine
.
setEntryTime
(
machine
.
getEntryTime
().
add
(
new
BigDecimal
(
0.4
)));
machine
.
setTranslationTime
(
machine
.
getTranslationTime
().
add
(
new
BigDecimal
(
0.8
)));
machine
.
setCreateTime
(
new
Date
());
mapper
.
update
(
machine
);
}
}
}
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/job/PolishingRoomStateJob.java
0 → 100644
View file @
a41aa6af
package
net
.
vtstar
.
zhongtong
.
avi
.
gateway
.
painting
.
job
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.scada.base.equipmgt.domain.Enum.EquipStatusEnum
;
import
net.vtstar.scada.base.gather.domain.EquipmentData
;
import
net.vtstar.scada.base.gather.job.GatherJob
;
import
net.vtstar.zhongtong.avi.gateway.painting.domain.PolishingRoomStateMachine
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
/**
* 打磨室风机数据采集JOB
*/
@Slf4j
@Component
public
class
PolishingRoomStateJob
extends
GatherJob
{
private
static
final
String
NAME
=
"POLISHING_ROOM"
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
PolishingRoomStateMachine
.
class
);
}
@Override
public
boolean
handleObject
(
EquipmentData
equipmentData
)
{
PolishingRoomStateMachine
data
=
(
PolishingRoomStateMachine
)
equipmentData
;
String
state
=
data
.
getStatus
();
if
(
state
==
null
||
"0"
.
equals
(
state
))
{
return
false
;
}
if
(
null
!=
data
.
getState
()
&&
data
.
getState
()
==
1
){
equipmentData
.
setEquipStatus
(
EquipStatusEnum
.
RUN
);
}
else
{
equipmentData
.
setEquipStatus
(
EquipStatusEnum
.
ALARM
);
}
return
true
;
}
@Override
public
Object
handleValue
(
String
fieldName
,
Object
value
)
{
Integer
valueInt
=
Integer
.
valueOf
(
value
.
toString
());
return
(
valueInt
&
0x01
);
}
@Override
protected
void
postHandle
(
EquipmentData
equipmentData
)
{
((
PolishingRoomStateMachine
)
equipmentData
).
setCreateTime
(
new
Date
());
}
}
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/job/RotaryRollerBedMachineJob.java
View file @
a41aa6af
...
...
@@ -74,6 +74,7 @@ public class RotaryRollerBedMachineJob extends QuartzJobBean {
machine
.
setRunNumPainting1
(
Integer
.
valueOf
(
testValueOperations
.
get
(
keyP1
).
toString
()));
machine
.
setRunNumPainting2
(
Integer
.
valueOf
(
testValueOperations
.
get
(
keyP2
).
toString
()));
machine
.
setRunNumChassis
(
Integer
.
valueOf
(
testValueOperations
.
get
(
keyC
).
toString
()));
machine
.
setCreateTime
(
new
Date
());
mapper
.
update
(
machine
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/listener/SprayBoothListener.java
View file @
a41aa6af
...
...
@@ -3,11 +3,10 @@ package net.vtstar.zhongtong.avi.gateway.painting.listener;
import
com.jnrsmcu.sdk.netdevice.NodeData
;
import
com.jnrsmcu.sdk.netdevice.RSServer
;
import
com.jnrsmcu.sdk.netdevice.RealTimeData
;
import
net.vtstar.user.mybatis.provider.Operation
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.utils.CollecUtils
;
import
net.vtstar.zhongtong.avi.gateway.painting.domain.SprayBoothMachine
;
import
net.vtstar.zhongtong.avi.gateway.painting.mapper.SprayBoothMapper
;
import
net.vtstar.zhongtong.avi.utils.EquipDataUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.core.annotation.Order
;
...
...
@@ -105,14 +104,15 @@ public class SprayBoothListener implements CommandLineRunner {
return
;
}
SprayBoothMachine
sprayBoothMachine
=
list
.
get
(
0
);
Object
value
=
valueOperations
.
get
(
"喷涂室:"
+
sprayBoothMachine
.
getEquipCode
());
String
key
=
EquipDataUtil
.
getSprayValueKey
(
sprayBoothMachine
.
getEquipCode
());
Object
value
=
valueOperations
.
get
(
key
);
if
(
value
==
null
){
valueOperations
.
set
(
"喷涂室:"
+
sprayBoothMachine
.
getEquipCode
()
,
sprayBoothMachine
.
getCreateTime
().
getTime
());
valueOperations
.
set
(
key
,
sprayBoothMachine
.
getCreateTime
().
getTime
());
}
else
{
long
time
=
sprayBoothMachine
.
getCreateTime
().
getTime
()
-
Long
.
valueOf
(
value
.
toString
());
if
(
time
>
5
*
60
*
1000
){
mapper
.
insertList
(
list
);
valueOperations
.
set
(
"喷涂室:"
+
sprayBoothMachine
.
getEquipCode
()
,
sprayBoothMachine
.
getCreateTime
().
getTime
());
valueOperations
.
set
(
key
,
sprayBoothMachine
.
getCreateTime
().
getTime
());
}
}
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/mapper/ElectrophoresisMapper.java
0 → 100644
View file @
a41aa6af
package
net
.
vtstar
.
zhongtong
.
avi
.
gateway
.
painting
.
mapper
;
import
net.vtstar.user.mybatis.BaseMapper
;
import
net.vtstar.zhongtong.avi.gateway.painting.domain.ElectrophoresisMachine
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
ElectrophoresisMapper
extends
BaseMapper
<
ElectrophoresisMachine
>
{
}
src/main/java/net/vtstar/zhongtong/avi/gateway/parts/job/WeldingRobotMachineJob.java
View file @
a41aa6af
...
...
@@ -79,7 +79,21 @@ public class WeldingRobotMachineJob extends QuartzJobBean {
String
weldingTime
=
Integer
.
valueOf
(
hourWelding
.
toString
())
+
"小时"
+
Integer
.
valueOf
(
minuteWelding
.
toString
())
+
"分"
+
Integer
.
valueOf
(
secondWelding
.
toString
())
+
"秒"
;
WeldingRobotMachine
machine
=
new
WeldingRobotMachine
();
machine
.
setEquipCode
(
"焊接机器人"
+
ipAddress
.
split
(
"\\."
)[
3
]);
machine
.
setEquipCode
(
"焊接机器人"
);
switch
(
ipAddress
){
case
"10.1.25.186"
:
machine
.
setAlias
(
"1203438"
);
break
;
case
"10.1.25.187"
:
machine
.
setAlias
(
"1203440"
);
break
;
case
"10.1.25.188"
:
machine
.
setAlias
(
"1203441"
);
break
;
case
"10.1.25.189"
:
machine
.
setAlias
(
"1203439"
);
break
;
}
machine
.
setTurnOnTime
(
turnOnTime
);
machine
.
setWeldingTime
(
weldingTime
);
machine
.
setCreateTime
(
new
Date
());
...
...
src/main/java/net/vtstar/zhongtong/avi/global/config/RedisConfig.java
View file @
a41aa6af
...
...
@@ -6,8 +6,6 @@ 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
...
...
@@ -21,8 +19,8 @@ public class RedisConfig {
redisTemplate
.
setKeySerializer
(
new
StringRedisSerializer
());
redisTemplate
.
setValueSerializer
(
new
GenericJackson2JsonRedisSerializer
());
redisTemplate
.
setHashKeySerializer
(
RedisSerializer
.
string
());
redisTemplate
.
setHashValueSerializer
(
RedisSerializer
.
string
());
redisTemplate
.
setHashKeySerializer
(
new
StringRedisSerializer
());
redisTemplate
.
setHashValueSerializer
(
new
GenericJackson2JsonRedisSerializer
());
redisTemplate
.
afterPropertiesSet
();
return
redisTemplate
;
...
...
src/main/java/net/vtstar/zhongtong/avi/ledlamp/controller/LedController.java
View file @
a41aa6af
...
...
@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.bind.annotation.RestController
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -91,10 +92,16 @@ public class LedController {
Map
<
String
,
Object
>
map
=
datas
.
get
(
0
);
vocVO
.
setSouthCONC
(
new
BigDecimal
(
map
.
get
(
"concentration2"
).
toString
()));
vocVO
.
setNorthCONC
(
new
BigDecimal
(
map
.
get
(
"concentration1"
).
toString
()));
vocVO
.
setExitCONC
(
new
BigDecimal
(
5
));
vocVO
.
setExitCONC
(
new
BigDecimal
(
map
.
get
(
"concentration3"
).
toString
()
));
}
//TODO: voc进出口浓度 真实数据
return
Return
.
success
(
vocVO
);
}
@ApiOperation
(
value
=
"当前本地时间请求"
)
@GetMapping
(
value
=
"/currentTime"
)
private
Return
getCurrentTime
()
{
return
Return
.
success
(
new
Date
());
}
}
src/main/java/net/vtstar/zhongtong/avi/ledlamp/service/LedService.java
View file @
a41aa6af
...
...
@@ -89,13 +89,13 @@ public class LedService {
List
<
WorkRoom
>
room
=
new
ArrayList
<>();
List
<
String
>
eqpCodeList
=
new
ArrayList
<>();
if
(
ledNo
.
equals
(
"5"
))
{
eqpCodeList
=
Arrays
.
asList
(
"中涂喷漆室349"
,
"中涂喷漆室350"
);
eqpCodeList
=
Arrays
.
asList
(
"中涂喷漆室349"
,
"中涂喷漆室350"
,
"中途烘干室351"
,
"中途烘干室352"
,
"工位电泳烘干室302"
,
"工位电泳烘干室303"
,
"腻子烘干室336"
,
"腻子烘干室335"
,
"腻子烘干室377"
);
}
if
(
ledNo
.
equals
(
"6"
))
{
eqpCodeList
=
Arrays
.
asList
(
"彩条喷漆室365"
,
"彩条喷漆室367"
,
"彩条喷漆室369"
,
"彩条喷漆室371"
);
eqpCodeList
=
Arrays
.
asList
(
"彩条喷漆室365"
,
"彩条喷漆室367"
,
"彩条喷漆室369"
,
"彩条喷漆室371"
,
"彩条烘干室366"
,
"彩条烘干室368"
,
"彩条烘干室370"
,
"彩条烘干室372"
);
}
if
(
ledNo
.
equals
(
"7"
))
{
eqpCodeList
=
Arrays
.
asList
(
"罩光喷漆室374"
,
"面漆喷漆室359"
,
"面漆喷漆室361"
,
"面漆喷漆室363"
);
eqpCodeList
=
Arrays
.
asList
(
"罩光喷漆室374"
,
"面漆喷漆室359"
,
"面漆喷漆室361"
,
"面漆喷漆室363"
,
"面漆烘干室360"
,
"面漆烘干室362"
,
"面漆烘干室364"
,
"罩光漆烘干室373"
);
}
String
startOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getStartOfDay
(
0
),
"yyyy-MM-dd HH:mm:ss"
);
String
endOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getEndOfDay
(
0
),
"yyyy-MM-dd HH:mm:ss"
);
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/domain/Vehicle.java
View file @
a41aa6af
...
...
@@ -57,7 +57,7 @@ public class Vehicle {
@Column
(
name
=
"sequence"
)
@ApiModelProperty
(
notes
=
"上下顺序"
)
private
Date
sequence
;
private
Integer
sequence
;
@ApiModelProperty
(
"当前绑定滑撬"
)
private
Skid
skid
;
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/job/AVIMonitorJob.java
View file @
a41aa6af
This diff is collapsed.
Click to expand it.
src/main/java/net/vtstar/zhongtong/avi/monitoring/job/AviWarningJob.java
0 → 100644
View file @
a41aa6af
package
net
.
vtstar
.
zhongtong
.
avi
.
monitoring
.
job
;
import
io.netty.buffer.ByteBuf
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.protocol.modbus.tcp.netty.packet.ModbusResponse
;
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.zhongtong.avi.equipment.domain.PaintshopStation
;
import
net.vtstar.zhongtong.avi.global.constant.Constant
;
import
org.quartz.DisallowConcurrentExecution
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Map
;
@Slf4j
@Component
public
class
AviWarningJob
extends
GatherJob
{
private
static
final
String
EQUIPMENT_TYPE
=
"PLC"
;
@Autowired
private
EquipInfoService
equipInfoService
;
@Autowired
private
ModbusService
modbusService
;
@Resource
(
name
=
"redisTemplate"
)
private
ValueOperations
valueOperations
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"-------------------------------"
);
log
.
info
(
"AVIMonitorJob start"
);
List
<
EquipInfo
>
equipInfoList
=
equipInfoService
.
getEquipInfoList
(
EQUIPMENT_TYPE
);
if
(
CollectionUtils
.
isEmpty
(
equipInfoList
))
{
return
;
}
//处理工位正反转用
List
<
PaintshopStation
>
stations
=
new
ArrayList
<>();
for
(
EquipInfo
equipInfo
:
equipInfoList
)
{
List
<
EquipCommunication
>
commList
=
equipInfoService
.
getCommunicationListByEquipType
(
equipInfo
.
getEquipCode
(),
1
);
if
(
CollectionUtils
.
isEmpty
(
commList
))
{
return
;
}
for
(
EquipCommunication
communication
:
commList
)
{
EquipDataChannel
dataChannel
=
communication
.
getDataChannel
();
if
(
null
!=
dataChannel
.
getEquipCode
()
&&
dataChannel
.
getEquipCode
().
startsWith
(
EQUIPMENT_TYPE
))
{
continue
;
}
String
ip
=
dataChannel
.
getIp
();
Integer
port
=
dataChannel
.
getPort
();
PoolKey
poolKey
=
NettyUtils
.
wrapPoolKey
(
ip
,
port
);
Integer
slaveId
=
dataChannel
.
getNo
();
EquipDataTemplate
template
=
communication
.
getDataTemplate
();
if
(
template
==
null
)
{
log
.
info
(
"无法获取设备的数据模板,设备编号:{}"
,
dataChannel
.
getEquipCode
());
continue
;
}
List
<
EquipDataTemplateItem
>
templateItemList
=
template
.
getTemplateItemList
();
if
(
CollectionUtils
.
isEmpty
(
templateItemList
))
{
log
.
info
(
"无法获取数据模板的条目,设备编号:{},模板名称:{}"
,
dataChannel
.
getEquipCode
(),
template
.
getName
());
continue
;
}
Map
<
Integer
,
List
<
EquipDataTemplateItem
>>
listMap
=
modbusService
.
groupByFuntionCode
(
templateItemList
);
for
(
Map
.
Entry
<
Integer
,
List
<
EquipDataTemplateItem
>>
entry
:
listMap
.
entrySet
())
{
List
<
EquipDataTemplateItem
>
value
=
entry
.
getValue
();
if
(
CollectionUtils
.
isEmpty
(
value
))
{
continue
;
}
Integer
start
=
value
.
get
(
0
).
getAddress
();
Integer
end
=
value
.
get
(
value
.
size
()
-
1
).
getAddress
();
Integer
size
=
value
.
get
(
value
.
size
()
-
1
).
getLength
();
Integer
quantity
=
end
+
size
-
start
;
ModbusResponse
response
=
null
;
Integer
functionCode
=
entry
.
getKey
();
try
{
if
(
1
==
functionCode
)
{
response
=
modbusService
.
readCoilRegister
(
slaveId
,
poolKey
,
start
,
quantity
);
}
else
if
(
2
==
functionCode
)
{
response
=
modbusService
.
readInputDiscretes
(
slaveId
,
poolKey
,
start
,
quantity
);
}
else
if
(
3
==
functionCode
)
{
response
=
modbusService
.
readMultipleRegister
(
slaveId
,
poolKey
,
start
,
quantity
);
}
else
if
(
4
==
functionCode
)
{
response
=
modbusService
.
readInputRegister
(
slaveId
,
poolKey
,
start
,
quantity
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"读取失败。ip{}, 端口{}, slave{}, start{}, size{}"
,
poolKey
.
getHost
(),
poolKey
.
getPort
(),
slaveId
,
start
,
quantity
);
continue
;
}
if
(
null
==
response
)
{
log
.
error
(
"读取失败! response 为空!"
);
continue
;
}
ByteBuf
body
=
response
.
getBody
();
if
(
null
==
body
)
{
log
.
error
(
"response.body is null!!"
);
continue
;
}
int
length
=
body
.
readableBytes
();
byte
[]
bytes
=
new
byte
[
length
];
body
.
getBytes
(
body
.
readerIndex
(),
bytes
);
log
.
info
(
"读取读取数据。ip{}, 端口{}, slave{}, start{}, size{}"
,
poolKey
.
getHost
(),
poolKey
.
getPort
(),
slaveId
,
start
,
quantity
);
log
.
info
(
"data:{}"
,
Arrays
.
toString
(
bytes
));
for
(
EquipDataTemplateItem
templateItem
:
value
)
{
Integer
address
=
templateItem
.
getAddress
();
int
quality
=
address
-
start
;
int
register
=
quality
/
8
;
int
offset
=
quality
%
8
;
byte
state
=
bytes
[
register
];
String
fieldName
=
templateItem
.
getFieldName
();
if
(
fieldName
.
startsWith
(
"warning"
))
{
String
[]
split
=
fieldName
.
split
(
":"
);
String
areaNo
=
split
[
1
];
String
warningCode
=
split
[
2
];
if
((
state
&
(
0x01
<<
offset
))
==
0
)
{
state
=
0
;
}
else
{
state
=
1
;
}
valueOperations
.
set
(
Constant
.
WARNING_PREFIX
+
areaNo
+
":"
+
warningCode
,
state
);
}
}
}
}
}
}
}
\ No newline at end of file
src/main/java/net/vtstar/zhongtong/avi/monitoring/job/RedisToCacheJob.java
View file @
a41aa6af
...
...
@@ -66,13 +66,16 @@ public class RedisToCacheJob extends GatherJob {
String
[]
split
=
s
.
split
(
":"
);
String
warningCode
=
split
[
2
];
Warning
warning
=
warningCache
.
get
(
warningCode
,
Warning
.
class
);
warning
.
setEquipName
(
warning
.
getName
().
split
(
" "
)[
0
]);
warning
.
setTime
(
new
SimpleDateFormat
(
"HH:mm"
).
format
(
new
Date
()));
warnings
.
add
(
warning
);
}
}
warningCache
.
put
(
Constant
.
LED_PREFIX
+
key
,
warnings
);
list
.
addAll
(
warnings
);
warningCache
.
put
(
Constant
.
LED_PREFIX
+
"ALL"
,
warnings
);
}
log
.
error
(
"当前检测到异常报警: {}条"
,
list
.
size
());
warningCache
.
put
(
Constant
.
LED_PREFIX
+
"ALL"
,
list
);
runRecordService
.
refreshWarning
(
list
);
//处理进出车信息
Set
<
String
>
keys
=
redisTemplate
.
keys
(
Constant
.
STATION_PREFIX
+
"*"
);
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/runner/ReadDataToCacheRunner.java
View file @
a41aa6af
...
...
@@ -73,11 +73,9 @@ public class ReadDataToCacheRunner implements CommandLineRunner {
@Override
public
void
run
(
String
...
args
)
throws
Exception
{
List
<
Warning
>
warnings
=
warningMapper
.
findList
(
new
WhereFilter
()
{
{
addOrderBy
(
"warning"
,
"id"
,
OrderBy
.
ASC
);
}
},
Warning
.
class
);
List
<
Warning
>
warnings
=
warningMapper
.
findList
(
new
WhereFilter
()
{{
addOrderBy
(
"warning"
,
"id"
,
OrderBy
.
ASC
);
}},
Warning
.
class
);
for
(
Warning
warning
:
warnings
)
{
warningCache
.
put
(
warning
.
getCode
(),
warning
);
}
...
...
@@ -97,7 +95,7 @@ public class ReadDataToCacheRunner implements CommandLineRunner {
}},
PaintshopStation
.
class
);
//todo: 初始化工位信息
for
(
int
i
=
0
;
i
<
stations
.
size
();
i
++)
{
/*
for (int i = 0; i < stations.size(); i++) {
PaintshopStation station = stations.get(i);
if (i % 5 == 0) {
station.setBusType(ProductionType.OWN);
...
...
@@ -108,10 +106,8 @@ public class ReadDataToCacheRunner implements CommandLineRunner {
station.setState(StationState.FREE);
}
station.setState(StationState.FREE);
valueOperations
.
set
(
Constant
.
STATION_PREFIX
+
station
.
getCode
(),
station
);
}
valueOperations.set(Constant.STATION_PREFIX + station.getCode(), station);
}*/
for
(
PaintshopStation
station
:
stations
)
{
...
...
@@ -135,10 +131,7 @@ public class ReadDataToCacheRunner implements CommandLineRunner {
}
List
<
Vehicle
>
vehicles
=
vehicleMapper
.
findList
(
new
WhereFilter
(),
Vehicle
.
class
);
for
(
Vehicle
vehicle
:
vehicles
)
{
for
(
Vehicle
vehicle
:
vehicles
)
{
vehicleCache
.
put
(
vehicle
.
getMqttPrefix
(),
vehicle
);
}
...
...
@@ -156,10 +149,7 @@ public class ReadDataToCacheRunner implements CommandLineRunner {
List
<
PaintshopArea
>
list
=
areaMapper
.
findList
(
new
WhereFilter
(),
PaintshopArea
.
class
);
webStationCache
.
put
(
"stationList"
,
list
);
for
(
PaintshopArea
area
:
list
)
{
for
(
PaintshopArea
area
:
list
)
{
stationCache
.
put
(
Constant
.
AREA_PREFIX
+
area
.
getCode
(),
area
);
}
}
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/service/StationPassInfoService.java
View file @
a41aa6af
package
net
.
vtstar
.
zhongtong
.
avi
.
monitoring
.
service
;
import
net.vtstar.utils.DateUtils
;
import
net.vtstar.zhongtong.avi.equipment.domain.PaintshopStation
;
import
net.vtstar.zhongtong.avi.monitoring.domain.StationPassInfo
;
import
net.vtstar.zhongtong.avi.monitoring.mapper.StationPassInfoMapper
;
...
...
@@ -45,15 +46,9 @@ public class StationPassInfoService {
}
passInfo
.
setOutTime
(
new
Date
());
passInfoMapper
.
update
(
passInfo
);
String
sql
=
"INSERT INTO 'VEHICLE_PASSING_INFO' ('WONo', 'RFID', 'StationNo', 'AreaNo', 'InTime', 'OutTime', 'Status') VALUES ('"
+
passInfo
.
getVIN
()
+
"', '"
+
passInfo
.
getRfid
()
+
"', '"
+
passInfo
.
getStationNo
()
+
"', '"
+
passInfo
.
getAreaNo
()
+
"', '"
+
passInfo
.
getInTime
()
+
"', '"
+
passInfo
.
getOutTime
()
+
"', '"
+
1
+
"', '"
+
"');"
;
mesSqlServerJdbcTemplate
.
update
(
sql
);
String
sql
=
"INSERT INTO VEHICLE_PASSING_INFO VALUES (?,?,?,?,?,?,?)"
;
mesSqlServerJdbcTemplate
.
update
(
sql
,
new
Object
[]{
passInfo
.
getVIN
(),
passInfo
.
getRfid
(),
passInfo
.
getAreaNo
(),
passInfo
.
getStationNo
(),
DateUtils
.
parseDateToString
(
passInfo
.
getInTime
(),
"yyyy-MM-dd HH:mm:ss"
),
DateUtils
.
parseDateToString
(
passInfo
.
getOutTime
(),
"yyyy-MM-dd HH:mm:ss"
),
1
});
}
}
src/main/java/net/vtstar/zhongtong/avi/mqtt/handle/RfidMessageHandler.java
View file @
a41aa6af
...
...
@@ -92,6 +92,9 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
JSONObject
json
=
JSONObject
.
parseObject
(
payload
.
toString
());
String
id
=
json
.
getString
(
"ID"
);
if
(
null
==
id
){
id
=
json
.
getString
(
"TID"
);
}
Integer
state
=
json
.
getIntValue
(
"State"
);
if
(
StringUtil
.
isNullOrEmpty
(
id
))
{
return
;
...
...
@@ -107,7 +110,6 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
String
vehicleCode
=
headers
.
get
(
MqttConstants
.
MSG_HEADER_KEY_EQUIPMENTNUMBER
,
String
.
class
);
log
.
info
(
vehicleCode
+
"______"
+
json
.
toJSONString
()
+
" code:"
+
vehicleCode
);
listOperations
.
rightPush
(
"rfid:log:"
+
vehicleCode
,
messageBO
);
if
(
id
.
startsWith
(
"A61A"
))
{
log
.
error
(
"过滤掉乱发信息!:{},平移车:{}"
,
id
,
vehicleCode
);
...
...
@@ -117,6 +119,9 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
Skid
skid
=
(
Skid
)
valueOperations
.
get
(
Constant
.
SKID_PREFIX
+
id
);
//若是焊装车间进车,绑定滑撬与车身关系
if
(
state
==
1
&&
(
vehicleCode
.
equals
(
Constant
.
HANZHUANG_VEHICLE1_RFID
)
||
vehicleCode
.
equals
(
Constant
.
HANZHUANG_VEHICLE2_RFID
)))
{
//记录焊装上车的信息
listOperations
.
rightPush
(
"rfid:log:"
+
vehicleCode
,
messageBO
);
String
busNo
=
(
String
)
valueOperations
.
get
(
Constant
.
HANZHUANG_VEHICLE_BUSNO_KEY
+
vehicleCode
);
String
workOrderNo
=
(
String
)
valueOperations
.
get
(
Constant
.
HANZHUANG_VEHICLE_WORKNO_KEY
+
vehicleCode
);
if
(
null
==
busNo
)
{
...
...
@@ -136,15 +141,20 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
Integer
size
=
(
Integer
)
valueOperations
.
get
(
key
);
if
(
null
==
size
)
{
size
=
1
;
}
else
{
size
++;
}
//TODO: size是否需要++
valueOperations
.
set
(
key
,
size
);
String
keyW
=
EquipDataUtil
.
getTestValueKey
(
"ROTARY_ROLLER_BED_C"
);
testValueOperations
.
set
(
keyW
,
null
==
testValueOperations
.
get
(
keyW
)
?
0
:
((
int
)
testValueOperations
.
get
(
keyW
))
+
1
);
return
;
}
if
(
null
==
skid
)
{
//todo: 因PDA未使用, 暂不做此逻辑判断
/*if (null == skid) {
log.error("无滑撬信息! :" + vehicleCode);
return;
}
}
*/
Vehicle
vehicle
=
(
Vehicle
)
valueOperations
.
get
(
Constant
.
VEHICLE_PREFIX
+
vehicleCode
);
if
(
null
==
vehicle
)
{
...
...
@@ -160,18 +170,31 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
long
l
=
(
date
.
getTime
()
-
occurTime
.
getTime
())
/
1000
;
if
(
l
<
60
)
{
log
.
error
(
"{} 平移车发生重发现象 ,滑撬id {}"
,
vehicleCode
,
id
);
vehicle
.
setOccurTime
(
date
);
valueOperations
.
set
(
Constant
.
VEHICLE_PREFIX
+
vehicleCode
,
vehicle
);
return
;
}
}
}
}
//平移车过车信息
listOperations
.
rightPush
(
"rfid:log:"
+
vehicleCode
,
messageBO
);
if
(
state
==
0
)
{
vehicle
.
setState
(
false
);
vehicle
.
setOccurTime
(
new
Date
());
valueOperations
.
set
(
Constant
.
VEHICLE_PREFIX
+
vehicleCode
,
vehicle
);
return
;
}
//TODO: 若上车时, 发现此滑撬号未被绑定过, 则有两种情况: 漏读/系统启动前就上线的
if
(
null
==
skid
){
skid
=
new
Skid
();
skid
.
setRfid
(
id
);
skid
.
setBusNo
(
"123456"
);
skid
.
setWorkOrderNo
(
"TZ0010051107_0011"
);
skid
.
setBusType
(
ProductionType
.
OWN
);
valueOperations
.
set
(
Constant
.
SKID_PREFIX
+
id
,
skid
);
}
vehicle
.
setState
(
true
);
vehicle
.
setOccurTime
(
date
);
vehicle
.
setCurrentRfid
(
id
);
...
...
@@ -192,6 +215,10 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
if
(
StationState
.
FREE
.
equals
(
value
.
getState
()))
{
continue
;
}
//TODO: 因当前环境中存在未上线的滑撬, 所以skid有可能为空
if
(
null
==
value
.
getSkid
()){
continue
;
}
if
(
id
.
equals
(
value
.
getSkid
().
getRfid
()))
{
List
<
PaintshopStation
>
lands
=
new
ArrayList
<>();
List
<
PaintshopStation
>
temStation
=
laneStationCache
.
get
(
value
.
getLaneId
(),
ArrayList
.
class
);
...
...
@@ -209,7 +236,7 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
vehicle
.
setSkid
(
start
.
getSkid
());
vehicle
.
setCurrentRfid
(
start
.
getSkid
().
getRfid
());
for
(
int
j
=
1
;
j
<
lands
.
size
()
-
1
;
j
++)
{
for
(
int
j
=
1
;
j
<
lands
.
size
()
-
2
;
j
++)
{
PaintshopStation
tem
=
lands
.
get
(
j
);
PaintshopStation
tem2
=
lands
.
get
(
j
-
1
);
if
(
tem
.
getSkid
()
!=
null
)
{
...
...
@@ -225,7 +252,7 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
}
}
else
if
(
end
.
getCode
().
equals
(
value
.
getCode
()))
{
vehicle
.
setSkid
(
end
.
getSkid
());
vehicle
.
setCurrentRfid
(
start
.
getSkid
().
getRfid
());
vehicle
.
setCurrentRfid
(
end
.
getSkid
().
getRfid
());
for
(
int
j
=
lands
.
size
()
-
2
;
j
>=
0
;
j
--)
{
PaintshopStation
tem
=
lands
.
get
(
j
);
...
...
@@ -245,7 +272,7 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
//TODO: 记录过站信息
String
areaCode
=
value
.
getAreaId
().
toString
();
String
areaKey
=
Constant
.
BUS_SIZE_
IN
+
areaCode
+
":"
+
today
;
String
areaKey
=
Constant
.
BUS_SIZE_
OUT
+
areaCode
+
":"
+
today
;
Integer
size
=
(
Integer
)
valueOperations
.
get
(
areaKey
);
if
(
null
==
size
)
{
size
=
1
;
...
...
@@ -257,13 +284,15 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
for
(
PaintshopStation
land
:
lands
)
{
valueOperations
.
set
(
Constant
.
STATION_PREFIX
+
land
.
getCode
(),
land
);
}
valueOperations
.
set
(
Constant
.
VEHICLE_PREFIX
+
vehicle
.
getCode
(),
vehicle
);
valueOperations
.
set
(
Constant
.
VEHICLE_PREFIX
+
vehicleCode
,
vehicle
);
return
;
}
}
}
valueOperations
.
set
(
Constant
.
VEHICLE_PREFIX
+
vehicleCode
,
vehicle
);
//若为涂装首工位上车, 且为焊装刚刚过来的, 此时无法从工位列表中找到滑撬信息, 所以单独处理
if
(
vehicleCode
.
equals
(
Constant
.
TUZHUANG_VEHICLE1_RFID
)){
valueOperations
.
set
(
Constant
.
VEHICLE_PREFIX
+
vehicle
.
getCode
()
,
vehicle
);
valueOperations
.
set
(
Constant
.
VEHICLE_PREFIX
+
vehicle
Code
,
vehicle
);
String
keyW
=
EquipDataUtil
.
getTestValueKey
(
"ROTARY_ROLLER_BED_P1"
);
testValueOperations
.
set
(
keyW
,
null
==
testValueOperations
.
get
(
keyW
)
?
0
:
((
int
)
testValueOperations
.
get
(
keyW
))
+
1
);
}
...
...
@@ -271,10 +300,6 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
String
keyW
=
EquipDataUtil
.
getTestValueKey
(
"ROTARY_ROLLER_BED_P2"
);
testValueOperations
.
set
(
keyW
,
null
==
testValueOperations
.
get
(
keyW
)
?
0
:
((
int
)
testValueOperations
.
get
(
keyW
))
+
1
);
}
if
(
vehicleCode
.
equals
(
"rfid68"
)
||
vehicleCode
.
equals
(
"rfid69"
)){
String
keyW
=
EquipDataUtil
.
getTestValueKey
(
"ROTARY_ROLLER_BED_C"
);
testValueOperations
.
set
(
keyW
,
null
==
testValueOperations
.
get
(
keyW
)
?
0
:
((
int
)
testValueOperations
.
get
(
keyW
))
+
1
);
}
// // TODO: 2019-11-02 获得正反转信息,以及相邻的工位
// Integer land = vehicle.getLane();
...
...
src/main/java/net/vtstar/zhongtong/avi/sqlserver/job/MesWorkOrderJob.java
View file @
a41aa6af
...
...
@@ -86,6 +86,7 @@ public class MesWorkOrderJob extends QuartzJobBean {
for
(
MesWorkOrderInfo
info
:
query
){
List
<
MesWorkOrderInfo
>
orderNo
=
mapper
.
findList
(
new
WhereFilter
()
{{
addFilter
(
"work_order_no"
,
Operation
.
EQUAL
,
info
.
getWorkOrderNo
());
addFilter
(
"status"
,
Operation
.
EQUAL
,
4
);
}},
MesWorkOrderInfo
.
class
);
if
(
CollecUtils
.
isEmpty
(
orderNo
)){
mapper
.
insert
(
info
);
...
...
src/main/java/net/vtstar/zhongtong/avi/utils/EquipDataUtil.java
View file @
a41aa6af
...
...
@@ -16,4 +16,16 @@ public class EquipDataUtil {
.
append
(
equipCode
)
.
toString
();
}
/**
* 喷涂室数据
* @param equipCode
* @return
*/
public
static
String
getSprayValueKey
(
String
equipCode
)
{
return
new
StringBuilder
()
.
append
(
"spray:tem:"
)
.
append
(
equipCode
)
.
toString
();
}
}
src/main/resources/config/application-quartz.properties
View file @
a41aa6af
...
...
@@ -127,6 +127,13 @@ quartz.job.taskInfos[28].jobDescription=\u70d8\u5e72\u5ba4Job
quartz.job.taskInfos[28]
.cronExpression
=
0 0/1 * * * ?
quartz.job.taskInfos[28]
.start
=
true
#打磨室
quartz.job.taskInfos[38]
.jobName
=
net.vtstar.zhongtong.avi.gateway.painting.job.PolishingRoomStateJob
quartz.job.taskInfos[38]
.jobGroup
=
PolishingRoomStateJob
quartz.job.taskInfos[38]
.jobDescription
=
\u6253\u
78e8
\u
5ba4Job
quartz.job.taskInfos[38]
.cronExpression
=
0 0/1 * * * ?
quartz.job.taskInfos[38]
.start
=
true
#VOC处理平台
quartz.job.taskInfos[27]
.jobName
=
net.vtstar.zhongtong.avi.gateway.painting.job.VocMachineJob
quartz.job.taskInfos[27]
.jobGroup
=
VocMachineJob
...
...
@@ -155,6 +162,13 @@ quartz.job.taskInfos[31].jobDescription=\u7535\u6cf3\u6574\u6d41Job
quartz.job.taskInfos[31]
.cronExpression
=
0 0/5 * * * ?
quartz.job.taskInfos[31]
.start
=
true
#电泳
quartz.job.taskInfos[39]
.jobName
=
net.vtstar.zhongtong.avi.gateway.painting.job.ElectrophoresisMachineJob
quartz.job.taskInfos[39]
.jobGroup
=
ElectrophoresisMachineJob
quartz.job.taskInfos[39]
.jobDescription
=
\u7535\u
6cf3
\u6574\u
6d41Job
quartz.job.taskInfos[39]
.cronExpression
=
0 0/1 * * * ?
quartz.job.taskInfos[39]
.start
=
true
#底盘车间(CHASSIS)
#底盘智能扭力扳手
quartz.job.taskInfos[15]
.jobName
=
net.vtstar.zhongtong.avi.gateway.chassis.job.ChassisTorqueMachineJob
...
...
@@ -270,11 +284,18 @@ quartz.job.taskInfos[24].jobDescription=\u76d1\u63a7\u0041\u0056\u0049Job
quartz.job.taskInfos[24]
.cronExpression
=
0/10 * * * * ?
quartz.job.taskInfos[24]
.start
=
true
#avi 刷新报警信号
quartz.job.taskInfos[37]
.jobName
=
net.vtstar.zhongtong.avi.monitoring.job.AviWarningJob
quartz.job.taskInfos[37]
.jobGroup
=
AviWarningJob
quartz.job.taskInfos[37]
.jobDescription
=
\u
62a5
\u
8b66
\u
4fe1
\u
53f7Job
quartz.job.taskInfos[37]
.cronExpression
=
0/30 * * * * ?
quartz.job.taskInfos[37]
.start
=
true
#mes 工单同步
quartz.job.taskInfos[26]
.jobName
=
net.vtstar.zhongtong.avi.sqlserver.job.MesWorkOrderJob
quartz.job.taskInfos[26]
.jobGroup
=
MesWorkOrderJob
quartz.job.taskInfos[26]
.jobDescription
=
\u
004d
\u0045\u0053\u
5de5
\u5355\u
540c
\u
6b65Job
quartz.job.taskInfos[26]
.cronExpression
=
0 0/
15
* * * ?
quartz.job.taskInfos[26]
.cronExpression
=
0 0/
30
* * * ?
quartz.job.taskInfos[26]
.start
=
true
...
...
src/main/resources/mapper/mysql/ElectrophoresisMapper.xml
0 → 100644
View file @
a41aa6af
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"net.vtstar.zhongtong.avi.gateway.painting.mapper.ElectrophoresisMapper"
>
</mapper>
\ No newline at end of file
src/main/resources/mapper/mysql/RotaryRollerBedMapper.xml
0 → 100644
View file @
a41aa6af
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"net.vtstar.zhongtong.avi.gateway.painting.mapper.RotaryRollerBedMapper"
>
</mapper>
\ No newline at end of file
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