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
2c2436e2
Commit
2c2436e2
authored
Apr 26, 2020
by
夏东伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增喷涂机器人采集, mes过程扫码数据接入;
parent
492c84b8
Hide whitespace changes
Inline
Side-by-side
Showing
56 changed files
with
1039 additions
and
208 deletions
+1039
-208
WheelAlignmentJob.java
...et/vtstar/zhongtong/avi/access/job/WheelAlignmentJob.java
+5
-4
EquipStatusRecord.java
...tar/zhongtong/avi/equipment/domain/EquipStatusRecord.java
+1
-1
CleanMachineStatusDataJob.java
...hongtong/avi/equipment/job/CleanMachineStatusDataJob.java
+82
-0
CleanStatusDataJob.java
...tstar/zhongtong/avi/equipment/job/CleanStatusDataJob.java
+7
-45
DryingRoomTempService.java
...hongtong/avi/equipment/service/DryingRoomTempService.java
+21
-12
EquipmentService.java
...tar/zhongtong/avi/equipment/service/EquipmentService.java
+26
-27
RunRecordService.java
...tar/zhongtong/avi/equipment/service/RunRecordService.java
+32
-13
CentralizedFillingClutchMachineJob.java
...eway/assembly/job/CentralizedFillingClutchMachineJob.java
+0
-1
FloorLeatherHotMachineJob.java
...g/avi/gateway/assembly/job/FloorLeatherHotMachineJob.java
+0
-1
FocusAddingRefrigerantMachineJob.java
...ateway/assembly/job/FocusAddingRefrigerantMachineJob.java
+0
-1
PlateChainStateMachineJob.java
...g/avi/gateway/assembly/job/PlateChainStateMachineJob.java
+0
-1
ChassisTorqueMachineJob.java
...tong/avi/gateway/chassis/job/ChassisTorqueMachineJob.java
+0
-1
PaintingRobotMachine.java
...ong/avi/gateway/painting/domain/PaintingRobotMachine.java
+10
-5
DryingRoomTempMachineJob.java
...ng/avi/gateway/painting/job/DryingRoomTempMachineJob.java
+0
-1
ElectrophoresisRectificationMachineJob.java
.../painting/job/ElectrophoresisRectificationMachineJob.java
+0
-1
PaintPretreatmentMachineJob.java
...avi/gateway/painting/job/PaintPretreatmentMachineJob.java
+0
-1
PaintingRobotMachineJob.java
...ong/avi/gateway/painting/job/PaintingRobotMachineJob.java
+11
-5
PolishingRoomStateJob.java
...gtong/avi/gateway/painting/job/PolishingRoomStateJob.java
+0
-1
SprayBoothStateMachineJob.java
...g/avi/gateway/painting/job/SprayBoothStateMachineJob.java
+0
-1
VocMachineJob.java
...tar/zhongtong/avi/gateway/painting/job/VocMachineJob.java
+0
-1
DustingLineMachineJob.java
...hongtong/avi/gateway/parts/job/DustingLineMachineJob.java
+0
-1
PretreamentMachineJob.java
...hongtong/avi/gateway/parts/job/PretreamentMachineJob.java
+0
-1
SteelCncCuttingMachineJob.java
...tong/avi/gateway/parts/job/SteelCncCuttingMachineJob.java
+0
-1
SteelCncCuttingMachineStateJob.java
...avi/gateway/parts/job/SteelCncCuttingMachineStateJob.java
+23
-0
PlasmaCuttingMachine.java
...ong/avi/gateway/stamping/domain/PlasmaCuttingMachine.java
+12
-0
FlatLaserCuttingMachineJob.java
.../avi/gateway/stamping/job/FlatLaserCuttingMachineJob.java
+40
-22
LaserCutting3DMachineJob.java
...ng/avi/gateway/stamping/job/LaserCutting3DMachineJob.java
+29
-7
LaserCuttingMachineJob.java
...tong/avi/gateway/stamping/job/LaserCuttingMachineJob.java
+33
-13
ClientSocketUtil.java
...hongtong/avi/gateway/stamping/utils/ClientSocketUtil.java
+5
-1
ChargingPileMachineJob.java
...ongtong/avi/gateway/trial/job/ChargingPileMachineJob.java
+0
-1
HydrogenStationVocMachineJob.java
...g/avi/gateway/trial/job/HydrogenStationVocMachineJob.java
+0
-1
AutomaticSpotWeldingMachineJob.java
...i/gateway/welding/job/AutomaticSpotWeldingMachineJob.java
+0
-1
PlateChainMachineJob.java
...ongtong/avi/gateway/welding/job/PlateChainMachineJob.java
+0
-1
PlcControlTireMachine1Job.java
...ng/avi/gateway/welding/job/PlcControlTireMachine1Job.java
+0
-1
PlcControlTireMachine2Job.java
...ng/avi/gateway/welding/job/PlcControlTireMachine2Job.java
+0
-1
PDAController.java
...ar/zhongtong/avi/monitoring/controller/PDAController.java
+4
-2
PaintingRobotErrorJob.java
...r/zhongtong/avi/monitoring/job/PaintingRobotErrorJob.java
+144
-0
RedisToCacheJob.java
.../vtstar/zhongtong/avi/monitoring/job/RedisToCacheJob.java
+1
-1
PDAService.java
...t/vtstar/zhongtong/avi/monitoring/service/PDAService.java
+4
-5
RfidMessageHandler.java
.../vtstar/zhongtong/avi/mqtt/handle/RfidMessageHandler.java
+3
-0
MesScanCodeDpInfo.java
...tar/zhongtong/avi/sqlserver/domain/MesScanCodeDpInfo.java
+124
-0
MesScanCodeZpInfo.java
...tar/zhongtong/avi/sqlserver/domain/MesScanCodeZpInfo.java
+125
-0
MesScanCodeDpJob.java
.../vtstar/zhongtong/avi/sqlserver/job/MesScanCodeDpJob.java
+91
-0
MesScanCodeZpJob.java
.../vtstar/zhongtong/avi/sqlserver/job/MesScanCodeZpJob.java
+92
-0
MesWorkOrderJob.java
...t/vtstar/zhongtong/avi/sqlserver/job/MesWorkOrderJob.java
+5
-11
MesScanCodeDpMapper.java
...r/zhongtong/avi/sqlserver/mapper/MesScanCodeDpMapper.java
+13
-0
MesScanCodeZpMapper.java
...r/zhongtong/avi/sqlserver/mapper/MesScanCodeZpMapper.java
+13
-0
SmbFileUtil.java
...main/java/net/vtstar/zhongtong/avi/utils/SmbFileUtil.java
+12
-7
application-dev.properties
src/main/resources/config/application-dev.properties
+1
-1
application-quartz2.properties
src/main/resources/config/application-quartz2.properties
+36
-1
application-xdw.properties
src/main/resources/config/application-xdw.properties
+1
-1
application-ztip.properties
src/main/resources/config/application-ztip.properties
+2
-2
MesScanCodeDpMapper.xml
src/main/resources/mapper/mysql/MesScanCodeDpMapper.xml
+5
-0
MesScanCodeZpMapper.xml
src/main/resources/mapper/mysql/MesScanCodeZpMapper.xml
+5
-0
ApplicationTests.java
src/test/java/net/vtstar/zhongtong/avi/ApplicationTests.java
+10
-1
ModbusTest.java
src/test/java/net/vtstar/zhongtong/avi/ModbusTest.java
+11
-1
No files found.
src/main/java/net/vtstar/zhongtong/avi/access/job/WheelAlignmentJob.java
View file @
2c2436e2
...
...
@@ -12,7 +12,6 @@ import net.vtstar.utils.DateUtils;
import
net.vtstar.zhongtong.avi.access.domain.WheelAlignment
;
import
net.vtstar.zhongtong.avi.access.mapper.WheelAlignmentMapper
;
import
net.vtstar.zhongtong.avi.equipment.service.EquipStatusRealTimeService
;
import
net.vtstar.zhongtong.avi.sqlserver.domain.TestLineResult
;
import
net.vtstar.zhongtong.avi.utils.PingIpUtils
;
import
net.vtstar.zhongtong.avi.utils.SmbFileUtil
;
import
org.quartz.DisallowConcurrentExecution
;
...
...
@@ -26,6 +25,7 @@ import org.springframework.stereotype.Component;
import
java.io.File
;
import
java.io.IOException
;
import
java.math.BigDecimal
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
...
...
@@ -39,6 +39,7 @@ import java.util.*;
@DisallowConcurrentExecution
public
class
WheelAlignmentJob
extends
QuartzJobBean
{
private
static
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"EEE, MMM dd, yyyy HH:mm aa"
,
Locale
.
UK
);
@Autowired
private
WheelAlignmentMapper
mapper
;
...
...
@@ -134,13 +135,13 @@ public class WheelAlignmentJob extends QuartzJobBean {
log
.
info
(
"--------同步底盘车间四轮定位数据结束--------"
);
}
private
void
saveData
(
String
ipAddress
,
Database
db
,
List
<
WheelAlignment
>
list
,
String
tableName
)
throws
IOException
{
private
void
saveData
(
String
ipAddress
,
Database
db
,
List
<
WheelAlignment
>
list
,
String
tableName
)
throws
IOException
,
ParseException
{
Table
table
=
db
.
getTable
(
tableName
);
for
(
Row
row
:
table
)
{
WheelAlignment
map
=
new
WheelAlignment
();
map
.
setWorkOrderID
(
row
.
getString
(
"WorkOrderID"
));
map
.
setStartDateTime
(
row
.
getString
(
"StartDateTime
"
));
map
.
setEndDateTime
(
row
.
getString
(
"EndDateTime
"
));
map
.
setStartDateTime
(
DateUtils
.
parseDateToString
(
dateFormat
.
parse
(
row
.
getString
(
"StartDateTime"
)),
"yyyy-MM-dd HH:mm:ss
"
));
map
.
setEndDateTime
(
DateUtils
.
parseDateToString
(
dateFormat
.
parse
(
row
.
getString
(
"EndDateTime"
)),
"yyyy-MM-dd HH:mm:ss
"
));
map
.
setMake
(
row
.
getString
(
"Make"
));
map
.
setModel
(
row
.
getString
(
"Model"
));
map
.
setVIN
(
row
.
getString
(
"VIN"
));
...
...
src/main/java/net/vtstar/zhongtong/avi/equipment/domain/EquipStatusRecord.java
View file @
2c2436e2
...
...
@@ -24,7 +24,7 @@ public class EquipStatusRecord {
@Column
(
name
=
"equip_type"
)
private
String
equipType
;
@ApiModelProperty
(
notes
=
"设备
编号
"
)
@ApiModelProperty
(
notes
=
"设备
名称
"
)
@Column
(
name
=
"equip_code"
)
private
String
equipCode
;
...
...
src/main/java/net/vtstar/zhongtong/avi/equipment/job/CleanMachineStatusDataJob.java
0 → 100644
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
equipment
.
job
;
import
com.alibaba.fastjson.JSON
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.scada.base.equipmgt.service.EquipDataService
;
import
net.vtstar.scada.base.gather.domain.EquipmentData
;
import
net.vtstar.scada.base.redis.service.SimpleRedisService
;
import
net.vtstar.scada.base.redis.util.EquipDataUtil
;
import
net.vtstar.zhongtong.avi.equipment.domain.EquipInfo
;
import
net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper
;
import
net.vtstar.zhongtong.avi.equipment.service.BasicInfoService
;
import
net.vtstar.zhongtong.avi.equipment.service.EquipStatusRealTimeService
;
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.RedisTemplate
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.scheduling.quartz.QuartzJobBean
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.List
;
@Slf4j
@Component
@DisallowConcurrentExecution
public
class
CleanMachineStatusDataJob
extends
QuartzJobBean
{
@Resource
(
name
=
"redisTemplate"
)
protected
ValueOperations
valueOperations
;
@Autowired
private
BasicInfoService
basicInfoService
;
@Autowired
private
EquipStatusRealTimeService
realTimeService
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"_______________________________________________________________"
);
List
<
EquipInfo
>
allEquip
=
basicInfoService
.
findAllEquip
();
log
.
info
(
"开始清洗设备实时状态数据 allEquip.size: {}"
,
allEquip
.
size
());
for
(
EquipInfo
info
:
allEquip
)
{
if
(
"PLC"
.
equals
(
info
.
getEquipType
())
||
"PAINTING_ROBOT_ERROR"
.
equals
(
info
.
getEquipType
()))
{
continue
;
}
if
(
null
!=
info
.
getRemarks
())
{
continue
;
}
EquipmentData
data
;
data
=
(
EquipmentData
)
valueOperations
.
get
(
EquipDataUtil
.
getLastStatusKey
(
info
.
getAlias
()));
if
(
null
==
data
||
null
==
data
.
getEquipStatus
())
{
realTimeService
.
saveEquip
(
info
.
getWorkshopName
(),
info
.
getEquipCode
(),
info
.
getAlias
(),
"关机"
);
continue
;
}
String
state
=
""
;
switch
(
data
.
getEquipStatus
().
name
())
{
case
"RUN"
:
state
=
"运行"
;
break
;
case
"IDLE"
:
state
=
"待机"
;
break
;
case
"PAUSE"
:
state
=
"暂停"
;
break
;
case
"ALARM"
:
state
=
"报警"
;
break
;
case
"SHUTDOWN"
:
state
=
"关机"
;
break
;
default
:
state
=
"关机"
;
break
;
}
realTimeService
.
saveEquip
(
info
.
getWorkshopName
(),
info
.
getEquipCode
(),
info
.
getAlias
(),
state
);
}
log
.
info
(
"_______________________________________________________________"
);
}
}
src/main/java/net/vtstar/zhongtong/avi/equipment/job/CleanStatusDataJob.java
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
equipment
.
job
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.scada.base.equipmgt.domain.Enum.EquipStatusEnum
;
import
net.vtstar.scada.base.equipmgt.service.EquipDataService
;
import
net.vtstar.scada.base.gather.domain.EquipmentData
;
import
net.vtstar.scada.base.redis.service.SimpleRedisService
;
import
net.vtstar.scada.base.redis.util.EquipDataUtil
;
import
net.vtstar.zhongtong.avi.equipment.domain.EquipInfo
;
import
net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper
;
import
net.vtstar.zhongtong.avi.equipment.service.BasicInfoService
;
import
net.vtstar.zhongtong.avi.equipment.service.EquipStatusRealTimeService
;
...
...
@@ -22,6 +22,7 @@ import org.springframework.util.CollectionUtils;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
@Slf4j
@Component
...
...
@@ -58,14 +59,15 @@ public class CleanStatusDataJob extends QuartzJobBean {
if
(
CollectionUtils
.
isEmpty
(
dataList
))
{
continue
;
}
if
(
key
.
contains
(
"DRYING_ROOM_TEMP"
)){
if
(
key
.
contains
(
"DRYING_ROOM_TEMP"
))
{
//插入设备监控数据
equipmentDataMapper
.
insert
(
dataList
.
get
(
0
));
}
else
{
}
else
{
//插入设备监控数据
equipmentDataMapper
.
insertList
(
dataList
);
List
<
EquipmentData
>
collect
=
dataList
.
stream
().
filter
(
item
->
!
EquipStatusEnum
.
SHUTDOWN
.
equals
(
item
.
getEquipStatus
())).
collect
(
Collectors
.
toList
());
equipmentDataMapper
.
insertList
(
collect
);
}
if
(
key
.
contains
(
"DRYING_ROOM_TEMP"
)
||
key
.
contains
(
"SPRAY_BOOTH"
)){
if
(
key
.
contains
(
"DRYING_ROOM_TEMP"
)
||
key
.
contains
(
"SPRAY_BOOTH"
))
{
continue
;
}
equipDataService
.
updateLastStatus
(
dataList
.
get
(
dataList
.
size
()
-
1
));
...
...
@@ -109,45 +111,5 @@ public class CleanStatusDataJob extends QuartzJobBean {
}
}
}
log
.
info
(
"_______________________________________________________________"
);
List
<
EquipInfo
>
allEquip
=
basicInfoService
.
findAllEquip
();
log
.
info
(
"开始清洗设备实时状态数据 allEquip.size: {}"
,
allEquip
.
size
());
for
(
EquipInfo
info
:
allEquip
)
{
if
(
"PLC"
.
equals
(
info
.
getEquipType
())){
continue
;
}
if
(
null
!=
info
.
getRemarks
()){
return
;
}
EquipmentData
data
=
(
EquipmentData
)
valueOperations
.
get
(
EquipDataUtil
.
getLastStatusKey
(
info
.
getAlias
()));
if
(
null
==
data
||
null
==
data
.
getEquipStatus
()){
realTimeService
.
saveEquip
(
info
.
getWorkshopName
(),
info
.
getEquipCode
(),
info
.
getAlias
(),
"关机"
);
continue
;
}
String
state
=
""
;
switch
(
data
.
getEquipStatus
().
name
()){
case
"RUN"
:
state
=
"运行"
;
break
;
case
"IDLE"
:
state
=
"待机"
;
break
;
case
"PAUSE"
:
state
=
"暂定"
;
break
;
case
"ALARM"
:
state
=
"报警"
;
break
;
case
"SHUTDOWN"
:
state
=
"关机"
;
break
;
default
:
state
=
"关机"
;
break
;
}
realTimeService
.
saveEquip
(
info
.
getWorkshopName
(),
info
.
getEquipCode
(),
info
.
getAlias
(),
state
);
}
log
.
info
(
"_______________________________________________________________"
);
}
}
src/main/java/net/vtstar/zhongtong/avi/equipment/service/DryingRoomTempService.java
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
equipment
.
service
;
import
com.alibaba.excel.util.StringUtils
;
import
com.github.pagehelper.PageHelper
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.scada.base.equipmgt.service.EquipDataService
;
import
net.vtstar.user.mybatis.provider.Operation
;
...
...
@@ -15,8 +14,8 @@ import net.vtstar.zhongtong.avi.gateway.painting.domain.DryingRoomTempMachine;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.
Date
;
import
java.util.
List
;
import
java.util.
*
;
import
java.util.
stream.Collectors
;
/**
* @Author: xiadongwei
...
...
@@ -39,28 +38,38 @@ public class DryingRoomTempService {
* 查询温度状态列表
*/
public
List
<
EquipStatusRecord
>
findPageEquip
(
Integer
pageNum
,
Integer
pageSize
,
String
equipCode
,
Date
beginTime
)
{
PageHelper
.
startPage
(
pageNum
,
pageSize
);
if
(
null
==
beginTime
){
beginTime
=
DateUtils
.
getStartOfDay
(
1
);
}
String
startOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getStartOfDay
(-
1
,
beginTime
),
"yyyy-MM-dd HH:mm:ss"
);
String
endOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getEndOfDay
(-
1
,
beginTime
),
"yyyy-MM-dd HH:mm:ss"
);
List
<
EquipStatusRecord
>
list
=
new
ArrayList
<>();
if
(
StringUtils
.
isEmpty
(
equipCode
)){
return
statusRecordMapper
.
findList
(
new
WhereFilter
()
{{
list
=
statusRecordMapper
.
findList
(
new
WhereFilter
()
{{
addFilter
(
"equip_type"
,
Operation
.
EQUAL
,
"DRYING_ROOM_TEMP"
);
addFilter
(
"begin_time"
,
Operation
.
GREATER_THAN
,
startOfDay
);
addFilter
(
"end_time"
,
Operation
.
LESS_THAN
,
endOfDay
);
addFilter
(
"equip_status"
,
Operation
.
EQUAL
,
"RUN"
);
addOrderBy
(
EquipStatusRecord
.
class
,
"begin_time"
,
OrderBy
.
DESC
);
}},
EquipStatusRecord
.
class
);
}
else
{
list
=
statusRecordMapper
.
findList
(
new
WhereFilter
(){{
addFilter
(
"equip_code"
,
Operation
.
EQUAL
,
equipCode
);
addFilter
(
"begin_time"
,
Operation
.
GREATER_THAN
,
startOfDay
);
addFilter
(
"end_time"
,
Operation
.
LESS_THAN
,
endOfDay
);
addFilter
(
"equip_status"
,
Operation
.
EQUAL
,
"RUN"
);
addOrderBy
(
EquipStatusRecord
.
class
,
"begin_time"
,
OrderBy
.
DESC
);
}},
EquipStatusRecord
.
class
);
}
List
<
EquipStatusRecord
>
records
=
new
ArrayList
<>();
Map
<
String
,
List
<
EquipStatusRecord
>>
collect
=
list
.
stream
().
collect
(
Collectors
.
groupingBy
(
EquipStatusRecord:
:
getEquipCode
));
for
(
Map
.
Entry
<
String
,
List
<
EquipStatusRecord
>>
entry
:
collect
.
entrySet
()){
List
<
EquipStatusRecord
>
compareList
=
entry
.
getValue
().
stream
().
sorted
(
Comparator
.
comparing
(
EquipStatusRecord:
:
getBeginTime
)).
collect
(
Collectors
.
toList
());
EquipStatusRecord
startRecord
=
compareList
.
get
(
0
);
startRecord
.
setEndTime
(
compareList
.
get
(
compareList
.
size
()
-
1
).
getEndTime
());
records
.
add
(
startRecord
);
}
return
statusRecordMapper
.
findList
(
new
WhereFilter
(){{
addFilter
(
"equip_code"
,
Operation
.
EQUAL
,
equipCode
);
addFilter
(
"begin_time"
,
Operation
.
GREATER_THAN
,
startOfDay
);
addFilter
(
"end_time"
,
Operation
.
LESS_THAN
,
endOfDay
);
addFilter
(
"equip_status"
,
Operation
.
EQUAL
,
"RUN"
);
addOrderBy
(
EquipStatusRecord
.
class
,
"begin_time"
,
OrderBy
.
DESC
);
}},
EquipStatusRecord
.
class
);
return
records
;
}
...
...
src/main/java/net/vtstar/zhongtong/avi/equipment/service/EquipmentService.java
View file @
2c2436e2
...
...
@@ -188,71 +188,70 @@ public class EquipmentService {
String
path
=
""
;
NtlmPasswordAuthentication
auth
=
null
;
switch
(
transferVO
.
getEquipCode
())
{
case
"07
61
03-19"
:
case
"07
16
03-19"
:
ip
=
"10.1.4.120"
;
path
=
"smb://"
+
ip
+
"
/数控下料/"
;
path
=
"smb://"
+
ip
+
"/数控下料/"
;
break
;
case
"076103-28"
:
case
"071603-28"
:
//PING不通
ip
=
"10.1.25.114"
;
path
=
"smb://"
+
ip
+
"
/数控下料/"
;
path
=
"smb://"
+
ip
+
"/数控下料/"
;
break
;
case
"07
61
03-14"
:
case
"07
16
03-14"
:
ip
=
"10.1.4.107"
;
path
=
"smb://"
+
ip
+
"
/数控下料/"
;
path
=
"smb://"
+
ip
+
"/数控下料/"
;
break
;
case
"07
61
03-25"
:
case
"07
16
03-25"
:
ip
=
"10.1.4.129"
;
path
=
"smb://
"
+
ip
+
"
/数控下料/"
;
path
=
"smb://
admin:123456@"
+
ip
+
"
/数控下料/"
;
break
;
//TODO: 网口不通
case
"07
61
03-13"
:
case
"07
16
03-13"
:
ip
=
"10.1.4.108"
;
path
=
"smb://"
+
ip
+
"
/数控下料/"
;
path
=
"smb://"
+
ip
+
"/数控下料/"
;
break
;
case
"07
61
03-17"
:
case
"07
16
03-17"
:
ip
=
"10.1.4.106"
;
path
=
"smb://"
+
ip
+
"
/数控下料/"
;
path
=
"smb://"
+
ip
+
"/数控下料/"
;
break
;
//三维激光切割机
case
"076707-1
6
5"
:
case
"076707-1
0
5"
:
ip
=
"10.1.25.175"
;
path
=
"smb://"
+
ip
+
"/NCPrg/"
;
break
;
//激光切管机
case
"076707-174"
:
//NCPrg, PA8000
ip
=
"10.1.25.176"
;
case
"076707-146"
:
ip
=
"10.1.25.177"
;
path
=
"smb://"
+
ip
+
" /NCPrg/"
;
break
;
//激光切管机
case
"076707-166"
:
ip
=
"10.1.25.177"
;
ip
=
"10.1.25.176"
;
path
=
"smb://"
+
ip
+
"/NCProg/"
;
break
;
//平板激光切割机
case
"076707-114"
:
//NCPrg, PA8000
ip
=
"10.1.25.178"
;
path
=
"smb://"
+
ip
+
"
/NCPrg/"
;
path
=
"smb://"
+
ip
+
"/NCPrg/"
;
break
;
//平板激光切割机
case
"076707-167"
:
ip
=
"10.1.25.179"
;
path
=
"smb://"
+
ip
+
" /NCPrg/"
;
break
;
//平板激光切割机
case
"076707-146"
:
ip
=
"10.1.25.180"
;
path
=
"smb://"
+
ip
+
"/NCPrg/"
;
break
;
//平板激光切割机
case
"076707-178"
:
ip
=
"10.1.25.181"
;
ip
=
"10.1.25.180"
;
path
=
"smb://"
+
ip
+
"/NcProg/"
;
break
;
//平板激光切割机
case
"076707-177"
:
ip
=
"10.1.25.182"
;
ip
=
"10.1.25.181"
;
path
=
"smb://"
+
ip
+
"/NCPrg/"
;
break
;
}
// SmbFileUtil.smbPut("smb://10.1.4.107/数控下料/", transferVO.getFilePath());
return
SmbFileUtil
.
smbPut
(
path
,
transferVO
.
getFilePath
());
return
SmbFileUtil
.
smbPut
(
path
,
transferVO
.
getFilePath
(),
auth
);
}
public
List
<
EquipInfo
>
findByShopCode
(
String
workshopCode
)
{
...
...
src/main/java/net/vtstar/zhongtong/avi/equipment/service/RunRecordService.java
View file @
2c2436e2
...
...
@@ -8,7 +8,7 @@ import net.vtstar.user.mybatis.provider.Operation;
import
net.vtstar.user.mybatis.provider.OrderBy
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.user.search.service.SearchService
;
import
net.vtstar.utils.
Collec
Utils
;
import
net.vtstar.utils.
Date
Utils
;
import
net.vtstar.zhongtong.avi.equipment.domain.EquipInfo
;
import
net.vtstar.zhongtong.avi.equipment.domain.FaultRecord
;
import
net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord
;
...
...
@@ -16,18 +16,15 @@ import net.vtstar.zhongtong.avi.equipment.mapper.BasicInfoMapper;
import
net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper
;
import
net.vtstar.zhongtong.avi.equipment.mapper.FaultRecordMapper
;
import
net.vtstar.zhongtong.avi.equipment.mapper.RuntimeRecordMapper
;
import
net.vtstar.zhongtong.avi.monitoring.domain.Warning
;
import
net.vtstar.zhongtong.avi.gateway.stamping.domain.LaserCutting3DMachine
;
import
net.vtstar.zhongtong.avi.monitoring.domain.Warning
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* @Author: xiadongwei
...
...
@@ -92,18 +89,16 @@ public class RunRecordService {
public
List
<
FaultRecord
>
findPageFault
(
JSONObject
pageFilter
)
{
PageHelper
.
startPage
(
pageFilter
.
getIntValue
(
"pageNum"
),
pageFilter
.
getIntValue
(
"pageSize"
));
List
<
FaultRecord
>
list
=
faultRecordMapper
.
findList
(
searchService
.
pageFilter2Filter
(
pageFilter
,
new
WhereFilter
()
{{
/*addJoin(PaintshopStation.class, "area_id", PaintshopArea.class, "id");
addJoin(PaintshopStation.class, "lane_id", PaintshopLane.class, "id");*/
addOrderBy
(
"begin_time"
,
OrderBy
.
DESC
);
}}),
FaultRecord
.
class
);
list
.
forEach
(
faultRecord
->
{
faultRecord
.
getEquipCode
();
/* list.forEach(faultRecord -> {
List<EquipInfo> equipInfos = basicInfoMapper.findList(new WhereFilter() {{
addFilter("equip_code", Operation.EQUAL, faultRecord.getEquipCode());
}}, EquipInfo.class);
if (!CollecUtils.isEmpty(equipInfos)){
faultRecord.setEquipCode(equipInfos.get(0).getEquipCode());
}
});
});
*/
return
list
;
}
...
...
@@ -142,7 +137,31 @@ public class RunRecordService {
* @param list
*/
public
void
refreshWarning
(
List
<
Warning
>
list
)
{
List
<
FaultRecord
>
faultRecords
=
faultRecordMapper
.
findList
(
new
WhereFilter
()
{{
String
startOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getStartOfDay
(
0
,
new
Date
()),
"yyyy-MM-dd HH:mm:ss"
);
if
(
CollectionUtils
.
isEmpty
(
list
)){
return
;
}
list
.
forEach
(
warning
->
{
String
equipName
=
warning
.
getName
().
split
(
" "
)[
0
];
List
<
FaultRecord
>
faultRecords
=
faultRecordMapper
.
findList
(
new
WhereFilter
()
{{
addFilter
(
"machine_code"
,
Operation
.
EQUAL
,
equipName
);
addFilter
(
"begin_time"
,
Operation
.
GREATER_THAN
,
startOfDay
);
addFilter
(
"warning_info"
,
Operation
.
EQUAL
,
warning
.
getInfo
());
}},
FaultRecord
.
class
);
if
(
CollectionUtils
.
isEmpty
(
faultRecords
)){
FaultRecord
faultRecord
=
new
FaultRecord
();
faultRecord
.
setEquipCode
(
equipName
);
faultRecord
.
setWarningInfo
(
warning
.
getInfo
());
faultRecord
.
setWorkshopCode
(
"涂装车间"
);
faultRecord
.
setBeginTime
(
new
Date
());
faultRecordMapper
.
insert
(
faultRecord
);
}
else
{
FaultRecord
faultRecord
=
faultRecords
.
get
(
0
);
faultRecord
.
setEndTime
(
new
Date
());
faultRecordMapper
.
update
(
faultRecord
);
}
});
/*List<FaultRecord> faultRecords = faultRecordMapper.findList(new WhereFilter() {{
addFilter("end_time", Operation.IS, "null");
}}, FaultRecord.class);
List<FaultRecord> records = new ArrayList<>();
...
...
@@ -187,8 +206,8 @@ public class RunRecordService {
faultRecordMapper.update(faultRecord);
}else{
faultRecord.setBeginTime(new Date());
faultRecordMapper
.
update
(
faultRecord
);
faultRecordMapper.
insert
(faultRecord);
}
}
}
*/
}
}
src/main/java/net/vtstar/zhongtong/avi/gateway/assembly/job/CentralizedFillingClutchMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class CentralizedFillingClutchMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
CentralizedFillingClutchMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/assembly/job/FloorLeatherHotMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class FloorLeatherHotMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
FloorLeatherHotMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/assembly/job/FocusAddingRefrigerantMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class FocusAddingRefrigerantMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
FocusAddingRefrigerantMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/assembly/job/PlateChainStateMachineJob.java
View file @
2c2436e2
...
...
@@ -29,7 +29,6 @@ public class PlateChainStateMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
PlateChainStateMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/chassis/job/ChassisTorqueMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class ChassisTorqueMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
ChassisTorqueWrench
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/domain/PaintingRobotMachine.java
View file @
2c2436e2
...
...
@@ -18,21 +18,26 @@ import java.util.Date;
@Table
(
name
=
"eqp_data_painting_robot"
)
public
class
PaintingRobotMachine
extends
EquipmentData
{
@Show
(
label
=
"设备名称"
)
@Column
(
name
=
"eqp_code"
)
@ApiModelProperty
(
notes
=
"设备名称"
)
@Search
private
String
equipCode
;
@Show
(
label
=
"系统是否运行"
)
@Column
(
name
=
"run_state"
)
@ApiModelProperty
(
notes
=
"系统是否运行"
)
private
String
runState
;
private
Integer
runState
;
@Show
(
label
=
"系统是否报警"
)
@Column
(
name
=
"error_state"
)
@ApiModelProperty
(
notes
=
"系统是否报警"
)
private
String
errorState
;
private
Integer
errorState
;
@Column
(
name
=
"run_status_r11"
)
@ApiModelProperty
(
notes
=
"R11机械臂运行中"
)
private
Integer
runStatusR11
;
@Column
(
name
=
"run_status_r21"
)
@ApiModelProperty
(
notes
=
"R21机械臂运行中"
)
private
Integer
runStatusR21
;
@Show
(
label
=
"采集时间"
,
dataType
=
FieldType
.
DATETIME
)
@ApiModelProperty
(
"时间"
)
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/job/DryingRoomTempMachineJob.java
View file @
2c2436e2
...
...
@@ -21,7 +21,6 @@ public class DryingRoomTempMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
DryingRoomTempMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/job/ElectrophoresisRectificationMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class ElectrophoresisRectificationMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
ElectrophoresisRectificationMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/job/PaintPretreatmentMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class PaintPretreatmentMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
PaintingPretreatmentMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/job/PaintingRobotMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class PaintingRobotMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
PaintingRobotMachine
.
class
);
}
...
...
@@ -34,19 +33,26 @@ public class PaintingRobotMachineJob extends GatherJob {
if
(
state
==
null
||
"0"
.
equals
(
state
))
{
return
false
;
}
if
(
"是"
.
equals
(
data
.
getRunState
())){
equipmentData
.
setEquipStatus
(
EquipStatusEnum
.
IDLE
);
if
(
null
!=
data
.
getRunState
()
&&
data
.
getRunState
()
==
1
){
equipmentData
.
setEquipStatus
(
EquipStatusEnum
.
RUN
);
}
else
{
}
if
(
null
!=
data
.
getErrorState
()
&&
data
.
getErrorState
()
==
1
){
equipmentData
.
setEquipStatus
(
EquipStatusEnum
.
ALARM
);
}
if
(
null
!=
data
.
getRunStatusR11
()
&&
data
.
getRunStatusR11
()
==
1
){
equipmentData
.
setEquipStatus
(
EquipStatusEnum
.
RUN
);
}
if
(
null
!=
data
.
getRunStatusR21
()
&&
data
.
getRunStatusR21
()
==
1
){
equipmentData
.
setEquipStatus
(
EquipStatusEnum
.
RUN
);
}
return
true
;
}
@Override
public
Object
handleValue
(
String
fieldName
,
Object
value
)
{
Integer
valueInt
=
Integer
.
valueOf
(
value
.
toString
());
return
(
valueInt
&
0x01
)
==
1
?
"是"
:
"否"
;
return
(
valueInt
&
0x01
);
}
@Override
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/job/PolishingRoomStateJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class PolishingRoomStateJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
PolishingRoomStateMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/job/SprayBoothStateMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class SprayBoothStateMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
SprayBoothStateMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/painting/job/VocMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class VocMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
VocMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/parts/job/DustingLineMachineJob.java
View file @
2c2436e2
...
...
@@ -24,7 +24,6 @@ public class DustingLineMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
DustingLineMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/parts/job/PretreamentMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class PretreamentMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
PretreatmentMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/parts/job/SteelCncCuttingMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class SteelCncCuttingMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
SteelCncCuttingMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/parts/job/SteelCncCuttingMachineStateJob.java
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
gateway
.
parts
.
job
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.scada.base.equipmgt.domain.Enum.EquipStatusEnum
;
import
net.vtstar.scada.base.redis.util.EquipDataUtil
;
import
net.vtstar.zhongtong.avi.equipment.service.EquipStatusRealTimeService
;
import
net.vtstar.zhongtong.avi.gateway.parts.domain.SteelCncCuttingMachine
;
import
net.vtstar.zhongtong.avi.utils.PingIpUtils
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.scheduling.quartz.QuartzJobBean
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -36,6 +42,9 @@ public class SteelCncCuttingMachineStateJob extends QuartzJobBean {
@Autowired
private
EquipStatusRealTimeService
realTimeService
;
@Resource
(
name
=
"redisTemplate"
)
protected
ValueOperations
valueOperations
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
List
<
String
>
ipAddressList
=
Arrays
.
asList
(
ipAddress1
,
ipAddress2
,
ipAddress3
,
ipAddress4
);
...
...
@@ -65,11 +74,25 @@ public class SteelCncCuttingMachineStateJob extends QuartzJobBean {
equipFactory
=
"制件车间05中间北侧"
;
break
;
}
SteelCncCuttingMachine
machine
=
new
SteelCncCuttingMachine
();
machine
.
setAlias
(
equipName
);
machine
.
setEquipCode
(
equipCode
);
machine
.
setCreateTime
(
new
Date
());
machine
.
setStatus
(
"1"
);
machine
.
setEquipFactory
(
equipFactory
);
if
(!
PingIpUtils
.
ping
(
ipAddress
,
pingTimes
,
timeOut
))
{
machine
.
setStateString
(
"关机"
);
realTimeService
.
saveEquip
(
"制件车间"
,
equipCode
,
equipName
,
"关机"
);
machine
.
setEquipStatus
(
EquipStatusEnum
.
SHUTDOWN
);
String
key
=
EquipDataUtil
.
getLastStatusKey
(
machine
.
getEquipCode
());
valueOperations
.
set
(
key
,
machine
);
continue
;
}
machine
.
setStateString
(
"开机"
);
realTimeService
.
saveEquip
(
"制件车间"
,
equipCode
,
equipName
,
"开机"
);
machine
.
setEquipStatus
(
EquipStatusEnum
.
RUN
);
String
key
=
EquipDataUtil
.
getLastStatusKey
(
machine
.
getEquipCode
());
valueOperations
.
set
(
key
,
machine
);
}
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/stamping/domain/PlasmaCuttingMachine.java
View file @
2c2436e2
...
...
@@ -19,6 +19,18 @@ import java.util.Date;
@Table
(
name
=
"eqp_data_laser_cutting"
)
public
class
PlasmaCuttingMachine
extends
EquipmentData
{
@Show
(
label
=
"设备编号"
)
@Column
(
name
=
"eqp_code"
)
@ApiModelProperty
(
notes
=
"设备编号"
)
@Search
private
String
equipCode
;
@Show
(
label
=
"设备名称"
)
@Column
(
name
=
"eqp_name"
)
@ApiModelProperty
(
notes
=
"设备名称"
)
@Search
private
String
alias
;
@Search
@Show
(
label
=
"切割速率"
,
sortable
=
true
)
@ApiModelProperty
(
"切割速率"
)
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/stamping/job/FlatLaserCuttingMachineJob.java
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
gateway
.
stamping
.
job
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.scada.base.equipmgt.domain.Enum.EquipStatusEnum
;
import
net.vtstar.scada.base.redis.util.EquipDataUtil
;
import
net.vtstar.zhongtong.avi.equipment.service.EquipStatusRealTimeService
;
import
net.vtstar.zhongtong.avi.gateway.stamping.domain.FlatLaserCuttingMachine
;
import
net.vtstar.zhongtong.avi.gateway.stamping.mapper.FlatLaserCuttingMapper
;
...
...
@@ -10,9 +12,12 @@ import org.quartz.JobExecutionContext;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.ListOperations
;
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.util.Arrays
;
import
java.util.Date
;
...
...
@@ -29,7 +34,6 @@ public class FlatLaserCuttingMachineJob extends QuartzJobBean {
private
String
ipAddress2
=
"10.1.25.179"
;
private
String
ipAddress3
=
"10.1.25.180"
;
private
String
ipAddress4
=
"10.1.25.181"
;
private
String
ipAddress5
=
"10.1.25.182"
;
@Value
(
"${zt.ip.pingtimes}"
)
private
int
pingTimes
;
@Value
(
"${zt.ip.timeout}"
)
...
...
@@ -39,10 +43,14 @@ public class FlatLaserCuttingMachineJob extends QuartzJobBean {
private
EquipStatusRealTimeService
realTimeService
;
@Autowired
private
FlatLaserCuttingMapper
mapper
;
@Resource
(
name
=
"redisTemplate"
)
protected
ValueOperations
valueOperations
;
@Resource
(
name
=
"redisTemplate"
)
protected
ListOperations
listOperations
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
List
<
String
>
ipAddressList
=
Arrays
.
asList
(
ipAddress1
,
ipAddress2
,
ipAddress3
,
ipAddress4
,
ipAddress5
);
List
<
String
>
ipAddressList
=
Arrays
.
asList
(
ipAddress1
,
ipAddress2
,
ipAddress3
,
ipAddress4
);
for
(
String
ipAddress
:
ipAddressList
)
{
String
equipCode
=
""
;
String
equipName
=
""
;
...
...
@@ -50,32 +58,41 @@ public class FlatLaserCuttingMachineJob extends QuartzJobBean {
switch
(
ipAddress
)
{
case
"10.1.25.178"
:
equipCode
=
"076707-114"
;
equipName
=
"平板激光切割机"
;
equipFactory
=
"01
跨西南
"
;
equipName
=
"平板激光切割机
01
"
;
equipFactory
=
"01
南门左侧
"
;
break
;
case
"10.1.25.179"
:
equipCode
=
"076707-167"
;
equipName
=
"平板激光切割机"
;
equipFactory
=
"02
跨西北
"
;
equipName
=
"平板激光切割机
02
"
;
equipFactory
=
"02
北门右侧
"
;
break
;
case
"10.1.25.180"
:
equipCode
=
"076707-146"
;
equipName
=
"平板激光切割机"
;
equipFactory
=
"01跨西北"
;
break
;
case
"10.1.25.181"
:
equipCode
=
"076707-178"
;
equipName
=
"平板激光切割机"
;
equipFactory
=
"0
2跨西南
"
;
equipName
=
"平板激光切割机
03
"
;
equipFactory
=
"0
3北门右侧
"
;
break
;
case
"10.1.25.18
2
"
:
case
"10.1.25.18
1
"
:
equipCode
=
"076707-177"
;
equipName
=
"平板激光切割机"
;
equipFactory
=
"0
2西西南
"
;
equipName
=
"平板激光切割机
04
"
;
equipFactory
=
"0
3北门右侧
"
;
break
;
}
FlatLaserCuttingMachine
machine
=
new
FlatLaserCuttingMachine
();
machine
.
setAlias
(
equipName
);
machine
.
setEquipCode
(
equipCode
);
machine
.
setCreateTime
(
new
Date
());
machine
.
setStatus
(
"1"
);
machine
.
setEquipFactory
(
equipFactory
);
machine
.
setBeginTime
(
new
Date
());
if
(!
PingIpUtils
.
ping
(
ipAddress
,
pingTimes
,
timeOut
))
{
realTimeService
.
saveEquip
(
"制件车间"
,
equipCode
,
equipName
,
"关机"
);
machine
.
setEquipStatus
(
EquipStatusEnum
.
SHUTDOWN
);
machine
.
setAlias
(
equipCode
);
machine
.
setEquipCode
(
equipName
);
String
key
=
EquipDataUtil
.
getStatusKey
(
equipName
);
listOperations
.
rightPush
(
key
,
machine
);
key
=
EquipDataUtil
.
getLastStatusKey
(
equipName
);
valueOperations
.
set
(
key
,
machine
);
continue
;
}
realTimeService
.
saveEquip
(
"制件车间"
,
equipCode
,
equipName
,
"开机"
);
...
...
@@ -89,16 +106,17 @@ public class FlatLaserCuttingMachineJob extends QuartzJobBean {
log
.
error
(
"ip: {}能ping通, 但62944端口连接不上"
,
ipAddress
);
continue
;
}
FlatLaserCuttingMachine
machine
=
new
FlatLaserCuttingMachine
();
machine
.
setAlias
(
equipName
);
machine
.
setEquipCode
(
equipCode
);
machine
.
setCuttingSpeed
(
new
BigDecimal
(
cuttingSpeed
));
machine
.
setGasPressure
(
new
BigDecimal
(
gasPressure
));
machine
.
setLaserPower
(
new
BigDecimal
(
laserPower
));
machine
.
setCreateTime
(
new
Date
());
machine
.
setStatus
(
"1"
);
machine
.
setEquipFactory
(
equipFactory
);
machine
.
setEquipStatus
(
EquipStatusEnum
.
RUN
);
mapper
.
insert
(
machine
);
machine
.
setAlias
(
equipCode
);
machine
.
setEquipCode
(
equipName
);
String
key
=
EquipDataUtil
.
getStatusKey
(
equipName
);
listOperations
.
rightPush
(
key
,
machine
);
key
=
EquipDataUtil
.
getLastStatusKey
(
equipName
);
valueOperations
.
set
(
key
,
machine
);
}
}
}
\ No newline at end of file
src/main/java/net/vtstar/zhongtong/avi/gateway/stamping/job/LaserCutting3DMachineJob.java
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
gateway
.
stamping
.
job
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.scada.base.equipmgt.domain.Enum.EquipStatusEnum
;
import
net.vtstar.scada.base.redis.util.EquipDataUtil
;
import
net.vtstar.zhongtong.avi.equipment.service.EquipStatusRealTimeService
;
import
net.vtstar.zhongtong.avi.gateway.stamping.domain.LaserCutting3DMachine
;
import
net.vtstar.zhongtong.avi.gateway.stamping.mapper.LaserCutting3DMapper
;
...
...
@@ -10,9 +12,12 @@ import org.quartz.JobExecutionContext;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.ListOperations
;
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.util.Arrays
;
import
java.util.Date
;
...
...
@@ -36,6 +41,11 @@ public class LaserCutting3DMachineJob extends QuartzJobBean {
@Autowired
private
LaserCutting3DMapper
laserCutting3DMapper
;
@Resource
(
name
=
"redisTemplate"
)
protected
ValueOperations
valueOperations
;
@Resource
(
name
=
"redisTemplate"
)
protected
ListOperations
listOperations
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
List
<
String
>
ipAddressList
=
Arrays
.
asList
(
ipAddress1
);
...
...
@@ -45,13 +55,25 @@ public class LaserCutting3DMachineJob extends QuartzJobBean {
String
equipFactory
=
""
;
switch
(
ipAddress
)
{
case
"10.1.25.175"
:
equipCode
=
"076707-1
6
5"
;
equipCode
=
"076707-1
0
5"
;
equipName
=
"三维激光切割机"
;
equipFactory
=
"01跨东南"
;
break
;
}
LaserCutting3DMachine
machine
=
new
LaserCutting3DMachine
();
machine
.
setAlias
(
equipName
);
machine
.
setEquipCode
(
equipCode
);
machine
.
setCreateTime
(
new
Date
());
machine
.
setStatus
(
"1"
);
machine
.
setBeginTime
(
new
Date
());
machine
.
setEquipFactory
(
equipFactory
);
if
(!
PingIpUtils
.
ping
(
ipAddress
,
pingTimes
,
timeOut
))
{
realTimeService
.
saveEquip
(
"制件车间"
,
equipCode
,
equipName
,
"关机"
);
machine
.
setEquipStatus
(
EquipStatusEnum
.
SHUTDOWN
);
String
key
=
EquipDataUtil
.
getStatusKey
(
machine
.
getAlias
());
listOperations
.
rightPush
(
key
,
machine
);
key
=
EquipDataUtil
.
getLastStatusKey
(
machine
.
getAlias
());
valueOperations
.
set
(
key
,
machine
);
continue
;
}
realTimeService
.
saveEquip
(
"制件车间"
,
equipCode
,
equipName
,
"开机"
);
...
...
@@ -65,16 +87,16 @@ public class LaserCutting3DMachineJob extends QuartzJobBean {
log
.
error
(
"ip: {}能ping通, 但62944端口连接不上"
,
ipAddress
);
continue
;
}
LaserCutting3DMachine
machine
=
new
LaserCutting3DMachine
();
machine
.
setAlias
(
equipName
);
machine
.
setEquipCode
(
equipCode
);
machine
.
setCuttingSpeed
(
new
BigDecimal
(
cuttingSpeed
));
machine
.
setGasPressure
(
new
BigDecimal
(
gasPressure
));
machine
.
setLaserPower
(
new
BigDecimal
(
laserPower
));
machine
.
setCreateTime
(
new
Date
());
machine
.
setStatus
(
"1"
);
machine
.
setEquipFactory
(
equipFactory
);
machine
.
setEquipStatus
(
EquipStatusEnum
.
RUN
);
laserCutting3DMapper
.
insert
(
machine
);
String
key
=
EquipDataUtil
.
getStatusKey
(
machine
.
getAlias
());
listOperations
.
rightPush
(
key
,
machine
);
key
=
EquipDataUtil
.
getLastStatusKey
(
machine
.
getAlias
());
valueOperations
.
set
(
key
,
machine
);
}
}
}
\ No newline at end of file
src/main/java/net/vtstar/zhongtong/avi/gateway/stamping/job/LaserCuttingMachineJob.java
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
gateway
.
stamping
.
job
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.scada.base.equipmgt.domain.Enum.EquipStatusEnum
;
import
net.vtstar.scada.base.redis.util.EquipDataUtil
;
import
net.vtstar.zhongtong.avi.equipment.service.EquipStatusRealTimeService
;
import
net.vtstar.zhongtong.avi.gateway.stamping.domain.LaserCuttingMachine
;
import
net.vtstar.zhongtong.avi.gateway.stamping.mapper.LaserCuttingMapper
;
...
...
@@ -10,9 +12,12 @@ import org.quartz.JobExecutionContext;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.ListOperations
;
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.util.Arrays
;
import
java.util.Date
;
...
...
@@ -25,8 +30,8 @@ import java.util.List;
@Component
public
class
LaserCuttingMachineJob
extends
QuartzJobBean
{
private
String
ipAddress1
=
"10.1.25.17
6
"
;
private
String
ipAddress2
=
"10.1.25.17
7
"
;
private
String
ipAddress1
=
"10.1.25.17
7
"
;
private
String
ipAddress2
=
"10.1.25.17
6
"
;
@Value
(
"${zt.ip.pingtimes}"
)
private
int
pingTimes
;
@Value
(
"${zt.ip.timeout}"
)
...
...
@@ -36,6 +41,10 @@ public class LaserCuttingMachineJob extends QuartzJobBean {
private
EquipStatusRealTimeService
realTimeService
;
@Autowired
private
LaserCuttingMapper
mapper
;
@Resource
(
name
=
"redisTemplate"
)
protected
ValueOperations
valueOperations
;
@Resource
(
name
=
"redisTemplate"
)
protected
ListOperations
listOperations
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
...
...
@@ -45,19 +54,31 @@ public class LaserCuttingMachineJob extends QuartzJobBean {
String
equipName
=
""
;
String
equipFactory
=
""
;
switch
(
ipAddress
)
{
case
"10.1.25.17
6
"
:
equipCode
=
"076707-1
74
"
;
equipName
=
"激光切管机"
;
case
"10.1.25.17
7
"
:
equipCode
=
"076707-1
46
"
;
equipName
=
"激光切管机
01
"
;
equipFactory
=
"03西北"
;
break
;
case
"10.1.25.17
7
"
:
case
"10.1.25.17
6
"
:
equipCode
=
"076707-166"
;
equipName
=
"激光切管机"
;
equipName
=
"激光切管机
02
"
;
equipFactory
=
"03西南"
;
break
;
}
LaserCuttingMachine
machine
=
new
LaserCuttingMachine
();
machine
.
setAlias
(
equipName
);
machine
.
setEquipCode
(
equipCode
);
machine
.
setCreateTime
(
new
Date
());
machine
.
setStatus
(
"1"
);
machine
.
setBeginTime
(
new
Date
());
machine
.
setEquipFactory
(
equipFactory
);
if
(!
PingIpUtils
.
ping
(
ipAddress
,
pingTimes
,
timeOut
))
{
realTimeService
.
saveEquip
(
"制件车间"
,
equipCode
,
equipName
,
"关机"
);
machine
.
setEquipStatus
(
EquipStatusEnum
.
SHUTDOWN
);
String
key
=
EquipDataUtil
.
getStatusKey
(
machine
.
getAlias
());
listOperations
.
rightPush
(
key
,
machine
);
key
=
EquipDataUtil
.
getLastStatusKey
(
machine
.
getAlias
());
valueOperations
.
set
(
key
,
machine
);
continue
;
}
realTimeService
.
saveEquip
(
"制件车间"
,
equipCode
,
equipName
,
"开机"
);
...
...
@@ -71,16 +92,15 @@ public class LaserCuttingMachineJob extends QuartzJobBean {
log
.
error
(
"ip: {}能ping通, 但62944端口连接不上"
,
ipAddress
);
continue
;
}
LaserCuttingMachine
machine
=
new
LaserCuttingMachine
();
machine
.
setAlias
(
equipName
);
machine
.
setEquipCode
(
equipCode
);
machine
.
setCuttingSpeed
(
new
BigDecimal
(
cuttingSpeed
));
machine
.
setGasPressure
(
new
BigDecimal
(
gasPressure
));
machine
.
setLaserPower
(
new
BigDecimal
(
laserPower
));
machine
.
setCreateTime
(
new
Date
());
machine
.
setStatus
(
"1"
);
machine
.
setEquipFactory
(
equipFactory
);
machine
.
setEquipStatus
(
EquipStatusEnum
.
RUN
);
mapper
.
insert
(
machine
);
String
key
=
EquipDataUtil
.
getStatusKey
(
machine
.
getAlias
());
listOperations
.
rightPush
(
key
,
machine
);
key
=
EquipDataUtil
.
getLastStatusKey
(
machine
.
getAlias
());
valueOperations
.
set
(
key
,
machine
);
}
}
}
\ No newline at end of file
src/main/java/net/vtstar/zhongtong/avi/gateway/stamping/utils/ClientSocketUtil.java
View file @
2c2436e2
...
...
@@ -30,6 +30,10 @@ public class ClientSocketUtil {
}
public
static
String
send
(
String
ip
,
String
data
){
//TODO: 暂时不读P102的值
if
(
"P102"
.
equals
(
data
)){
return
"0"
;
}
//连接服务端
OutputStreamWriter
osw
=
null
;
BufferedWriter
bw
=
null
;
...
...
@@ -48,7 +52,7 @@ public class ClientSocketUtil {
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
br
.
readLine
());
String
result
=
sb
.
toString
();
log
.
error
(
"大族激光读取结果:{}"
,
result
);
log
.
info
(
"大族激光读取结果:{}"
,
result
);
if
(
result
.
contains
(
"err"
)){
return
"0"
;
}
else
{
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/trial/job/ChargingPileMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class ChargingPileMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
ChargingPileMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/trial/job/HydrogenStationVocMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class HydrogenStationVocMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
HydrogenStationVocMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/welding/job/AutomaticSpotWeldingMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class AutomaticSpotWeldingMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
AutomaticSpotWeldingMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/welding/job/PlateChainMachineJob.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class PlateChainMachineJob extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
WeldingPlateChainMachine
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/welding/job/PlcControlTireMachine1Job.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class PlcControlTireMachine1Job extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
PlcControlTireMachine1
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/welding/job/PlcControlTireMachine2Job.java
View file @
2c2436e2
...
...
@@ -23,7 +23,6 @@ public class PlcControlTireMachine2Job extends GatherJob {
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
log
.
info
(
"JobName: {}"
,
context
.
getJobDetail
().
getKey
().
getName
());
super
.
gatherByModbus
(
NAME
,
PlcControlTireMachine2
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/controller/PDAController.java
View file @
2c2436e2
...
...
@@ -13,12 +13,15 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.text.SimpleDateFormat
;
@Slf4j
@Api
(
description
=
"PDA相关操作模块"
)
@RestController
@RequestMapping
(
"/PDA"
)
public
class
PDAController
{
public
static
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
public
static
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyy:MM:dd"
);
@Autowired
private
PDAService
pdaService
;
...
...
@@ -56,7 +59,6 @@ public class PDAController {
@PostMapping
(
"/repair"
)
private
Return
repair
(
@RequestBody
JSONObject
json
)
{
log
.
info
(
json
.
toJSONString
());
log
.
info
(
json
.
toJSONString
());
String
vehicleNo
=
json
.
getString
(
"vehicleNo"
);
String
busNo
=
json
.
getString
(
"busNo"
);
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/job/PaintingRobotErrorJob.java
0 → 100644
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
monitoring
.
job
;
import
lombok.extern.slf4j.Slf4j
;
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.utils.DateUtils
;
import
net.vtstar.zhongtong.avi.equipment.domain.FaultRecord
;
import
net.vtstar.zhongtong.avi.equipment.mapper.FaultRecordMapper
;
import
net.wimpi.modbus.io.ModbusTCPTransaction
;
import
net.wimpi.modbus.msg.ModbusRequest
;
import
net.wimpi.modbus.msg.ModbusResponse
;
import
net.wimpi.modbus.msg.ReadMultipleRegistersRequest
;
import
net.wimpi.modbus.net.TCPMasterConnection
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
java.net.InetAddress
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/*
* 喷涂机器人报警监听
*/
@Slf4j
@Component
public
class
PaintingRobotErrorJob
extends
GatherJob
{
private
static
final
String
EQUIPMENT_TYPE
=
"PAINTING_ROBOT_ERROR"
;
@Autowired
private
EquipInfoService
equipInfoService
;
@Autowired
private
ModbusService
modbusService
;
@Autowired
private
FaultRecordMapper
faultRecordMapper
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
String
startOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getStartOfDay
(
0
),
"yyyy-MM-dd HH:mm:ss"
);
List
<
EquipInfo
>
equipInfoList
=
equipInfoService
.
getEquipInfoList
(
EQUIPMENT_TYPE
);
if
(
CollectionUtils
.
isEmpty
(
equipInfoList
))
{
return
;
}
log
.
error
(
"喷涂机器人报警监听!"
);
for
(
EquipInfo
equipInfo
:
equipInfoList
)
{
List
<
EquipCommunication
>
commList
=
equipInfoService
.
getCommunicationListByEquipType
(
equipInfo
.
getEquipType
(),
1
);
if
(
CollectionUtils
.
isEmpty
(
commList
))
{
return
;
}
for
(
EquipCommunication
communication
:
commList
)
{
EquipDataChannel
dataChannel
=
communication
.
getDataChannel
();
String
ip
=
dataChannel
.
getIp
();
Integer
port
=
dataChannel
.
getPort
();
Integer
slaveId
=
dataChannel
.
getNo
();
EquipDataTemplate
template
=
communication
.
getDataTemplate
();
if
(
template
==
null
)
{
log
.
error
(
"喷涂机器人无法获取设备的数据模板,设备编号:{}"
,
dataChannel
.
getEquipCode
());
continue
;
}
List
<
EquipDataTemplateItem
>
templateItemList
=
template
.
getTemplateItemList
();
if
(
CollectionUtils
.
isEmpty
(
templateItemList
))
{
log
.
error
(
"喷涂机器人无法获取数据模板的条目,设备编号:{},模板名称:{}"
,
dataChannel
.
getEquipCode
(),
template
.
getName
());
continue
;
}
try
{
TCPMasterConnection
connection
=
new
TCPMasterConnection
(
InetAddress
.
getByName
(
ip
));
connection
.
setPort
(
port
);
connection
.
setTimeout
(
3000
);
connection
.
connect
();
ModbusTCPTransaction
transaction
=
new
ModbusTCPTransaction
(
connection
);
transaction
.
setReconnecting
(
false
);
Map
<
Integer
,
List
<
EquipDataTemplateItem
>>
collect
=
templateItemList
.
stream
().
collect
(
Collectors
.
groupingBy
(
EquipDataTemplateItem:
:
getAddress
));
for
(
Map
.
Entry
<
Integer
,
List
<
EquipDataTemplateItem
>>
entry
:
collect
.
entrySet
()){
Integer
address
=
entry
.
getKey
();
List
<
EquipDataTemplateItem
>
items
=
entry
.
getValue
();
ModbusRequest
modbusRequest
=
new
ReadMultipleRegistersRequest
(
address
,
1
);
modbusRequest
.
setUnitID
(
slaveId
);
transaction
.
setRequest
(
modbusRequest
);
transaction
.
execute
();
ModbusResponse
response
=
transaction
.
getResponse
();
if
(
null
==
response
)
{
log
.
error
(
"喷涂机器人读取失败! response 为空!SlaveId: {}, Address:{}"
,
slaveId
,
address
);
continue
;
}
String
[]
hexStrs
=
response
.
getHexMessage
().
split
(
" "
);
if
(
hexStrs
.
length
==
9
)
{
log
.
error
(
"喷涂机器人读取失败! length 为9! SlaveId: {}, Address:{}"
,
slaveId
,
address
);
continue
;
}
Byte
newValue
=
Byte
.
valueOf
(
hexStrs
[
hexStrs
.
length
-
1
],
16
);
List
<
Integer
>
values
=
new
ArrayList
<>();
int
j
=
0
;
while
(
j
<
8
){
values
.
add
((
newValue
>>
j
)
&
0x01
);
j
++;
}
log
.
info
(
"newValue:{}, 读取结果:{}, 报警列表:{}"
,
newValue
,
values
,
items
);
items
.
forEach
(
item
->
{
Integer
value
=
values
.
get
(
item
.
getLength
());
if
(
value
==
1
)
{
log
.
error
(
"喷涂机器人报警, 报警内容:{}"
,
item
.
getFieldDesc
());
List
<
FaultRecord
>
list
=
faultRecordMapper
.
findList
(
new
WhereFilter
()
{{
addFilter
(
"begin_time"
,
Operation
.
GREATER_THAN
,
startOfDay
);
addFilter
(
"machine_code"
,
Operation
.
EQUAL
,
"喷涂机器人02"
);
addFilter
(
"warning_info"
,
Operation
.
EQUAL
,
item
.
getFieldDesc
());
}},
FaultRecord
.
class
);
if
(
CollectionUtils
.
isEmpty
(
list
))
{
FaultRecord
faultRecord
=
new
FaultRecord
();
faultRecord
.
setWorkshopCode
(
"涂装车间"
);
faultRecord
.
setEquipCode
(
"喷涂机器人02"
);
faultRecord
.
setBeginTime
(
new
Date
());
faultRecord
.
setWarningInfo
(
item
.
getFieldDesc
());
faultRecord
.
setCreateTime
(
new
Date
());
faultRecordMapper
.
insert
(
faultRecord
);
}
else
{
FaultRecord
faultRecord
=
list
.
get
(
0
);
faultRecord
.
setEndTime
(
new
Date
());
faultRecordMapper
.
update
(
faultRecord
);
}
}
else
{
log
.
info
(
"喷涂机器人未报警, 报警内容:{}"
,
item
.
getFieldDesc
());
}
});
}
}
catch
(
Exception
e
)
{
log
.
error
(
"读取失败。ip{}, 端口{}, slave{}"
,
ip
,
port
,
slaveId
);
}
}
}
}
}
\ No newline at end of file
src/main/java/net/vtstar/zhongtong/avi/monitoring/job/RedisToCacheJob.java
View file @
2c2436e2
...
...
@@ -58,7 +58,7 @@ public class RedisToCacheJob extends GatherJob {
List
<
String
>
value
=
warningKey
.
getValue
();
for
(
String
s
:
value
)
{
Integer
state
=
(
Integer
)
valueOperations
.
get
(
s
);
if
(
state
==
1
)
{
if
(
null
!=
state
&&
1
==
state
)
{
String
[]
split
=
s
.
split
(
":"
);
String
warningCode
=
split
[
2
];
Warning
warning
=
warningCache
.
get
(
warningCode
,
Warning
.
class
);
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/service/PDAService.java
View file @
2c2436e2
...
...
@@ -6,12 +6,9 @@ import net.vtstar.utils.CollecUtils;
import
net.vtstar.zhongtong.avi.equipment.domain.PaintshopStation
;
import
net.vtstar.zhongtong.avi.global.constant.Constant
;
import
net.vtstar.zhongtong.avi.monitoring.domain.Skid
;
import
net.vtstar.zhongtong.avi.monitoring.domain.Vehicle
;
import
net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState
;
import
net.vtstar.zhongtong.avi.sqlserver.domain.MesHZWorkOrderInfo
;
import
net.vtstar.zhongtong.avi.sqlserver.domain.MesWorkOrderInfo
;
import
net.vtstar.zhongtong.avi.sqlserver.mapper.MesHZWorkOrderMapper
;
import
net.vtstar.zhongtong.avi.sqlserver.mapper.MesWorkOrderMapper
;
import
net.vtstar.zhongtong.avi.utils.EquipDataUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.Cache
;
...
...
@@ -21,8 +18,10 @@ import org.springframework.stereotype.Service;
import
org.springframework.util.Assert
;
import
javax.annotation.Resource
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.List
;
@Service
public
class
PDAService
{
...
...
src/main/java/net/vtstar/zhongtong/avi/mqtt/handle/RfidMessageHandler.java
View file @
2c2436e2
...
...
@@ -223,6 +223,9 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
valueOperations
.
set
(
Constant
.
VEHICLE_PREFIX_REWORK
,
""
);
valueOperations
.
set
(
Constant
.
VEHICLE_PREFIX_REWORK_BUSNO
,
""
);
passInfoService
.
createPassInfo
(
skid
.
getWorkOrderNo
(),
skid
.
getBusNo
(),
skid
.
getRfid
(),
"返修上线"
,
""
);
//todo:将返修数据纳入涂装进车数量
String
areaKey
=
Constant
.
BUS_SIZE_IN
+
"0:"
+
format
;
saveRfidInfo
(
areaKey
,
messageBO
);
return
;
}
}
...
...
src/main/java/net/vtstar/zhongtong/avi/sqlserver/domain/MesScanCodeDpInfo.java
0 → 100644
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
sqlserver
.
domain
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
net.vtstar.user.search.Search
;
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.Table
;
import
java.util.Date
;
/**
* @Author: xiadongwei
* @Date: 2020/04/23 9:31
*/
@ApiModel
(
"底盘车间过程扫码表"
)
@Data
@Search
(
code
=
"PROCESS_SCAN_CODE_DP"
)
@Table
(
name
=
"process_scan_code_dp"
)
public
class
MesScanCodeDpInfo
{
@Show
(
label
=
"销售订单号"
)
@ApiModelProperty
(
notes
=
"销售订单号"
)
@Column
(
name
=
"SaleOrderNO"
)
@Search
private
String
SaleOrderNO
;
@Show
(
label
=
"整车标识码"
)
@ApiModelProperty
(
notes
=
"整车标识码"
)
@Column
(
name
=
"VehicleID"
)
private
String
VehicleID
;
@Show
(
label
=
"追溯码"
)
@ApiModelProperty
(
notes
=
"追溯码"
)
@Column
(
name
=
"PartTraceID"
)
@Search
private
String
PartTraceID
;
@Show
(
label
=
"物料号"
)
@ApiModelProperty
(
notes
=
"物料编号"
)
@Column
(
name
=
"PartDrawingNo"
)
@Search
private
String
PartDrawingNo
;
@Show
(
label
=
"物料名称"
)
@ApiModelProperty
(
notes
=
"物料名称"
)
@Column
(
name
=
"PartDrawingName"
)
@Search
private
String
PartDrawingName
;
@Show
(
label
=
"供应商编号"
)
@ApiModelProperty
(
notes
=
"供应商编号"
)
@Column
(
name
=
"SupplierNo"
)
@Search
private
String
SupplierNo
;
@Show
(
label
=
"供货商名称"
)
@ApiModelProperty
(
notes
=
"供货商名称"
)
@Column
(
name
=
"SupplierName"
)
@Search
private
String
SupplierName
;
@Show
(
label
=
"车间ID"
)
@ApiModelProperty
(
notes
=
"车间ID"
)
@Column
(
name
=
"workshopID"
)
@Search
private
String
workshopID
;
@Show
(
label
=
"产线ID"
)
@ApiModelProperty
(
notes
=
"产线ID"
)
@Column
(
name
=
"workLineID"
)
@Search
private
String
workLineID
;
@Show
(
label
=
"产线名称"
)
@ApiModelProperty
(
notes
=
"产线名称"
)
@Column
(
name
=
"workLineName"
)
@Search
private
String
workLineName
;
@Show
(
label
=
"工位编号"
)
@ApiModelProperty
(
notes
=
"工位编号"
)
@Column
(
name
=
"WPCode"
)
@Search
private
String
WPCode
;
@Show
(
label
=
"工位名称"
)
@ApiModelProperty
(
notes
=
"工位名称"
)
@Column
(
name
=
"WPName"
)
@Search
private
String
WPName
;
@Show
(
label
=
"生产批次"
)
@ApiModelProperty
(
notes
=
"生产批次"
)
@Column
(
name
=
"ProductionBatch"
)
@Search
private
String
ProductionBatch
;
@Show
(
label
=
"操作人"
)
@ApiModelProperty
(
notes
=
"操作人"
)
@Column
(
name
=
"OperationPerson"
)
@Search
private
String
OperationPerson
;
@Show
(
label
=
"操作人名称"
)
@ApiModelProperty
(
notes
=
"操作人名称"
)
@Column
(
name
=
"OperationPersonName"
)
@Search
private
String
OperationPersonName
;
@Column
(
name
=
"status"
)
private
String
status
;
@Show
(
label
=
"操作时间"
,
dataType
=
FieldType
.
DATETIME
)
@ApiModelProperty
(
notes
=
"操作时间"
)
@Column
(
name
=
"OperationTime"
)
private
Date
OperationTime
;
@Column
(
name
=
"create_time"
)
private
Date
createTime
;
}
src/main/java/net/vtstar/zhongtong/avi/sqlserver/domain/MesScanCodeZpInfo.java
0 → 100644
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
sqlserver
.
domain
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
net.vtstar.user.search.Search
;
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.Table
;
import
java.util.Date
;
/**
* @Author: xiadongwei
* @Date: 2020/04/23 9:31
*/
@ApiModel
(
"装配车间过程扫码表"
)
@Data
@Search
(
code
=
"PROCESS_SCAN_CODE_ZP"
)
@Table
(
name
=
"process_scan_code_zp"
)
public
class
MesScanCodeZpInfo
{
@Show
(
label
=
"销售订单号"
)
@ApiModelProperty
(
notes
=
"销售订单号"
)
@Column
(
name
=
"SaleOrderNO"
)
@Search
private
String
SaleOrderNO
;
@Show
(
label
=
"整车标识码"
)
@ApiModelProperty
(
notes
=
"整车标识码"
)
@Column
(
name
=
"VehicleID"
)
private
String
VehicleID
;
@Show
(
label
=
"追溯码"
)
@ApiModelProperty
(
notes
=
"追溯码"
)
@Column
(
name
=
"PartTraceID"
)
@Search
private
String
PartTraceID
;
@Show
(
label
=
"物料号"
)
@ApiModelProperty
(
notes
=
"物料编号"
)
@Column
(
name
=
"PartDrawingNo"
)
@Search
private
String
PartDrawingNo
;
@Show
(
label
=
"物料名称"
)
@ApiModelProperty
(
notes
=
"物料名称"
)
@Column
(
name
=
"PartDrawingName"
)
@Search
private
String
PartDrawingName
;
@Show
(
label
=
"供应商编号"
)
@ApiModelProperty
(
notes
=
"供应商编号"
)
@Column
(
name
=
"SupplierNo"
)
@Search
private
String
SupplierNo
;
@Show
(
label
=
"供货商名称"
)
@ApiModelProperty
(
notes
=
"供货商名称"
)
@Column
(
name
=
"SupplierName"
)
@Search
private
String
SupplierName
;
@Show
(
label
=
"车间ID"
)
@ApiModelProperty
(
notes
=
"车间ID"
)
@Column
(
name
=
"workshopID"
)
@Search
private
String
workshopID
;
@Show
(
label
=
"产线ID"
)
@ApiModelProperty
(
notes
=
"产线ID"
)
@Column
(
name
=
"workLineID"
)
@Search
private
String
workLineID
;
@Show
(
label
=
"产线名称"
)
@ApiModelProperty
(
notes
=
"产线名称"
)
@Column
(
name
=
"workLineName"
)
@Search
private
String
workLineName
;
@Show
(
label
=
"工位编号"
)
@ApiModelProperty
(
notes
=
"工位编号"
)
@Column
(
name
=
"WPCode"
)
@Search
private
String
WPCode
;
@Show
(
label
=
"工位名称"
)
@ApiModelProperty
(
notes
=
"工位名称"
)
@Column
(
name
=
"WPName"
)
@Search
private
String
WPName
;
@Show
(
label
=
"生产批次"
)
@ApiModelProperty
(
notes
=
"生产批次"
)
@Column
(
name
=
"ProductionBatch"
)
@Search
private
String
ProductionBatch
;
@Show
(
label
=
"操作人"
)
@ApiModelProperty
(
notes
=
"操作人"
)
@Column
(
name
=
"OperationPerson"
)
@Search
private
String
OperationPerson
;
@Show
(
label
=
"操作人名称"
)
@ApiModelProperty
(
notes
=
"操作人名称"
)
@Column
(
name
=
"OperationPersonName"
)
@Search
private
String
OperationPersonName
;
@Column
(
name
=
"status"
)
private
String
status
;
@Show
(
label
=
"操作时间"
,
dataType
=
FieldType
.
DATETIME
)
@ApiModelProperty
(
notes
=
"操作时间"
)
@Column
(
name
=
"OperationTime"
)
private
Date
OperationTime
;
@Column
(
name
=
"create_time"
)
private
Date
createTime
;
}
src/main/java/net/vtstar/zhongtong/avi/sqlserver/job/MesScanCodeDpJob.java
0 → 100644
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
sqlserver
.
job
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.user.mybatis.provider.Operation
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.utils.DateUtils
;
import
net.vtstar.zhongtong.avi.sqlserver.domain.MesScanCodeDpInfo
;
import
net.vtstar.zhongtong.avi.sqlserver.mapper.MesScanCodeDpMapper
;
import
net.vtstar.zhongtong.avi.utils.PingIpUtils
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.scheduling.quartz.QuartzJobBean
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.Date
;
import
java.util.List
;
/**
* mes底盘扫码设备同步数据
* @Author: xiadongwei
* @Date: 2020/04/23 18:20
*/
@Slf4j
@Component
public
class
MesScanCodeDpJob
extends
QuartzJobBean
{
@Resource
(
name
=
"mesSqlServerJdbcTemplate"
)
private
JdbcTemplate
mesSqlServerJdbcTemplate
;
@Autowired
private
MesScanCodeDpMapper
mapper
;
@Value
(
"${zt.ip.mes}"
)
private
String
ipAddress
;
@Value
(
"${zt.ip.pingtimes}"
)
private
int
pingTimes
;
@Value
(
"${zt.ip.timeout}"
)
private
int
timeOut
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
if
(!
PingIpUtils
.
ping
(
ipAddress
,
pingTimes
,
timeOut
)){
return
;
}
log
.
info
(
"--------开始同步mes数据--------"
);
Date
startOfDay
=
DateUtils
.
getStartOfDay
(
0
);
String
dateString
=
DateUtils
.
parseDateToString
(
startOfDay
,
"yyyy-MM-dd HH:mm:ss"
);
StringBuilder
sql
=
new
StringBuilder
();
sql
.
append
(
"SELECT SaleOrderNO, VehicleID, PartTraceID, PartDrawingNo,PartDrawingName, SupplierNo, SupplierName, workshopID,"
+
" workLineID, WPCode, ProductionBatch, OperationTime, OperationPerson, OperationPersonName, IsSpecified,"
+
" Deleted, Memo, WkStation, DocClosedBy, Operation, DocClosed, CrtDate, UpdDate, Archived,"
+
" IsSynchronize, MesNoticeNo, personFlag, supplierFlag, matFlag FROM VehicleQualityTraceDocument "
+
"WHERE workshopID = 'DP' AND Deleted = 'F' AND OperationTime > '"
+
dateString
+
"'"
);
List
<
MesScanCodeDpInfo
>
query
=
mesSqlServerJdbcTemplate
.
query
(
sql
.
toString
(),
(
rs
,
rowNum
)
->
{
MesScanCodeDpInfo
map
=
new
MesScanCodeDpInfo
();
map
.
setSaleOrderNO
(
rs
.
getString
(
"SaleOrderNO"
));
map
.
setVehicleID
(
rs
.
getString
(
"VehicleID"
));
map
.
setPartTraceID
(
rs
.
getString
(
"PartTraceID"
));
map
.
setPartDrawingNo
(
rs
.
getString
(
"PartDrawingNo"
));
map
.
setPartDrawingName
(
rs
.
getString
(
"PartDrawingName"
));
map
.
setSupplierNo
(
rs
.
getString
(
"SupplierNo"
));
map
.
setSupplierName
(
rs
.
getString
(
"SupplierName"
));
map
.
setWorkshopID
(
rs
.
getString
(
"workshopID"
));
map
.
setWorkLineID
(
rs
.
getString
(
"workshopID"
));
// map.setWorkLineName(rs.getString(""));
map
.
setWPCode
(
rs
.
getString
(
"WPCode"
));
// map.setWPName(rs.getString(""));
map
.
setProductionBatch
(
rs
.
getString
(
"ProductionBatch"
));
map
.
setOperationTime
(
rs
.
getTimestamp
(
"OperationTime"
));
map
.
setOperationPerson
(
rs
.
getString
(
"OperationPerson"
));
map
.
setOperationPersonName
(
rs
.
getString
(
"OperationPersonName"
));
map
.
setStatus
(
"1"
);
map
.
setCreateTime
(
new
Date
());
return
map
;
});
if
(
CollectionUtils
.
isEmpty
(
query
))
{
log
.
error
(
"连接mesSQL SERVER失败!"
);
return
;
}
mapper
.
delByFilter
(
new
WhereFilter
(){{
addFilter
(
"OperationTime"
,
Operation
.
GREATER_THAN
,
dateString
);
}},
MesScanCodeDpInfo
.
class
);
mapper
.
insertList
(
query
);
log
.
info
(
"--------同步mes底盘扫码数据结束--------"
);
}
}
src/main/java/net/vtstar/zhongtong/avi/sqlserver/job/MesScanCodeZpJob.java
0 → 100644
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
sqlserver
.
job
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.user.mybatis.provider.Operation
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.utils.DateUtils
;
import
net.vtstar.zhongtong.avi.sqlserver.domain.MesScanCodeZpInfo
;
import
net.vtstar.zhongtong.avi.sqlserver.mapper.MesScanCodeZpMapper
;
import
net.vtstar.zhongtong.avi.utils.PingIpUtils
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
org.springframework.scheduling.quartz.QuartzJobBean
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.Date
;
import
java.util.List
;
/**
* mes底盘扫码设备同步数据
* @Author: xiadongwei
* @Date: 2020/04/23 18:20
*/
@Slf4j
@Component
public
class
MesScanCodeZpJob
extends
QuartzJobBean
{
@Resource
(
name
=
"mesSqlServerJdbcTemplate"
)
private
JdbcTemplate
mesSqlServerJdbcTemplate
;
@Autowired
private
MesScanCodeZpMapper
mapper
;
@Value
(
"${zt.ip.mes}"
)
private
String
ipAddress
;
@Value
(
"${zt.ip.pingtimes}"
)
private
int
pingTimes
;
@Value
(
"${zt.ip.timeout}"
)
private
int
timeOut
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
if
(!
PingIpUtils
.
ping
(
ipAddress
,
pingTimes
,
timeOut
)){
return
;
}
log
.
info
(
"--------开始同步mes数据--------"
);
Date
startOfDay
=
DateUtils
.
getStartOfDay
(
0
);
String
dateString
=
DateUtils
.
parseDateToString
(
startOfDay
,
"yyyy-MM-dd HH:mm:ss"
);
StringBuilder
sql
=
new
StringBuilder
();
sql
.
append
(
"SELECT SaleOrderNO, VehicleID, PartTraceID, PartDrawingNo,PartDrawingName, SupplierNo, SupplierName, workshopID,"
+
" workLineID, WPCode, ProductionBatch, OperationTime, OperationPerson, OperationPersonName, IsSpecified,"
+
" Deleted, Memo, WkStation, DocClosedBy, Operation, DocClosed, CrtDate, UpdDate, Archived,"
+
" IsSynchronize, MesNoticeNo, personFlag, supplierFlag, matFlag FROM VehicleQualityTraceDocument "
+
"WHERE workshopID = 'ZP' AND Deleted = 'F' AND OperationTime > '"
+
dateString
+
"'"
);
List
<
MesScanCodeZpInfo
>
query
=
mesSqlServerJdbcTemplate
.
query
(
sql
.
toString
(),
(
rs
,
rowNum
)
->
{
MesScanCodeZpInfo
map
=
new
MesScanCodeZpInfo
();
map
.
setSaleOrderNO
(
rs
.
getString
(
"SaleOrderNO"
));
map
.
setVehicleID
(
rs
.
getString
(
"VehicleID"
));
map
.
setPartTraceID
(
rs
.
getString
(
"PartTraceID"
));
map
.
setPartDrawingNo
(
rs
.
getString
(
"PartDrawingNo"
));
map
.
setPartDrawingName
(
rs
.
getString
(
"PartDrawingName"
));
map
.
setSupplierNo
(
rs
.
getString
(
"SupplierNo"
));
map
.
setSupplierName
(
rs
.
getString
(
"SupplierName"
));
map
.
setWorkshopID
(
rs
.
getString
(
"workshopID"
));
map
.
setWorkLineID
(
rs
.
getString
(
"workshopID"
));
// map.setWorkLineName(rs.getString(""));
map
.
setWPCode
(
rs
.
getString
(
"WPCode"
));
// map.setWPName(rs.getString(""));
map
.
setProductionBatch
(
rs
.
getString
(
"ProductionBatch"
));
map
.
setOperationTime
(
rs
.
getTimestamp
(
"OperationTime"
));
map
.
setOperationPerson
(
rs
.
getString
(
"OperationPerson"
));
map
.
setOperationPersonName
(
rs
.
getString
(
"OperationPersonName"
));
map
.
setStatus
(
"1"
);
map
.
setCreateTime
(
new
Date
());
return
map
;
});
log
.
error
(
"mes查询到数据: {} 条"
,
query
.
size
());
if
(
CollectionUtils
.
isEmpty
(
query
))
{
log
.
error
(
"连接mesSQL SERVER失败!"
);
return
;
}
mapper
.
delByFilter
(
new
WhereFilter
(){{
addFilter
(
"OperationTime"
,
Operation
.
GREATER_THAN
,
dateString
);
}},
MesScanCodeZpInfo
.
class
);
mapper
.
insertList
(
query
);
log
.
info
(
"--------同步mess装配扫码数据结束--------"
);
}
}
src/main/java/net/vtstar/zhongtong/avi/sqlserver/job/MesWorkOrderJob.java
View file @
2c2436e2
...
...
@@ -3,7 +3,6 @@ package net.vtstar.zhongtong.avi.sqlserver.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.sqlserver.domain.MesWorkOrderInfo
;
import
net.vtstar.zhongtong.avi.sqlserver.mapper.MesWorkOrderMapper
;
...
...
@@ -54,7 +53,7 @@ public class MesWorkOrderJob extends QuartzJobBean {
StringBuilder
sql
=
new
StringBuilder
();
sql
.
append
(
"SELECT SaleOrderNo, PreWONo, WONo, MaterialNo, ORDER_COUNT, UNIT, "
+
"WorkShopCode, MLine, StartDate, EndDate, DeliveryDate, Status, CrtDate FROM APS_PAINTING_WORKORDER "
+
"WHERE WorkShopCode = '
HZ' or WorkShopCode = 'TZ
'"
);
"WHERE WorkShopCode = '
TZ' and StartDate > '"
+
dateString
+
"
'"
);
List
<
MesWorkOrderInfo
>
query
=
mesSqlServerJdbcTemplate
.
query
(
sql
.
toString
(),
(
rs
,
rowNum
)
->
{
MesWorkOrderInfo
map
=
new
MesWorkOrderInfo
();
map
.
setSalesOrderNo
(
rs
.
getString
(
"SaleOrderNo"
));
...
...
@@ -80,15 +79,10 @@ public class MesWorkOrderJob extends QuartzJobBean {
log
.
error
(
"连接mesSQL SERVER失败!"
);
return
;
}
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
);
}
}
mapper
.
delByFilter
(
new
WhereFilter
(){{
addFilter
(
"start_date"
,
Operation
.
GREATER_THAN
,
dateString
);
}},
MesWorkOrderInfo
.
class
);
mapper
.
insertList
(
query
);
log
.
info
(
"--------同步mes数据结束--------"
);
}
}
src/main/java/net/vtstar/zhongtong/avi/sqlserver/mapper/MesScanCodeDpMapper.java
0 → 100644
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
sqlserver
.
mapper
;
import
net.vtstar.user.mybatis.BaseMapper
;
import
net.vtstar.zhongtong.avi.sqlserver.domain.MesScanCodeDpInfo
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @Author: xiadongwei
* @Date: 2019/9/20 9:31
*/
@Mapper
public
interface
MesScanCodeDpMapper
extends
BaseMapper
<
MesScanCodeDpInfo
>
{
}
src/main/java/net/vtstar/zhongtong/avi/sqlserver/mapper/MesScanCodeZpMapper.java
0 → 100644
View file @
2c2436e2
package
net
.
vtstar
.
zhongtong
.
avi
.
sqlserver
.
mapper
;
import
net.vtstar.user.mybatis.BaseMapper
;
import
net.vtstar.zhongtong.avi.sqlserver.domain.MesScanCodeZpInfo
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @Author: xiadongwei
* @Date: 2019/9/20 9:31
*/
@Mapper
public
interface
MesScanCodeZpMapper
extends
BaseMapper
<
MesScanCodeZpInfo
>
{
}
src/main/java/net/vtstar/zhongtong/avi/utils/SmbFileUtil.java
View file @
2c2436e2
...
...
@@ -21,15 +21,16 @@ public class SmbFileUtil {
//smb://xxx:xxx@192.168.2.188/testIndex/
//xxx:xxx是共享机器的用户名密码
String
url
=
"smb://10.100.172.223/NCPrg/"
;
SmbFile
file
=
new
SmbFile
(
url
);
NtlmPasswordAuthentication
auth
=
new
NtlmPasswordAuthentication
(
null
,
"PA8000"
,
null
);
SmbFile
file
=
new
SmbFile
(
url
,
auth
);
if
(
file
.
exists
())
{
SmbFile
[]
files
=
file
.
listFiles
();
for
(
SmbFile
f
:
files
)
{
System
.
out
.
println
(
f
.
getName
());
}
}
smbGet
(
"smb://10.100.172.223/NCPrg/新建文本文档.txt"
,
"D:/111111.txt"
);
smbPut
(
"smb://10.100.172.223/NCPrg/"
,
"D:/yield.xls"
);
//
smbGet("smb://10.100.172.223/NCPrg/新建文本文档.txt", "D:/111111.txt");
smbPut
(
"smb://10.100.172.223/NCPrg/"
,
"D:/yield.xls"
,
auth
);
}
...
...
@@ -73,15 +74,19 @@ public class SmbFileUtil {
}
//向共享目录上传文件
public
static
Boolean
smbPut
(
String
remoteUrl
,
String
localFilePath
)
{
public
static
Boolean
smbPut
(
String
remoteUrl
,
String
localFilePath
,
NtlmPasswordAuthentication
auth
)
{
log
.
error
(
"共享文件路径:{}"
,
remoteUrl
);
InputStream
in
=
null
;
OutputStream
out
=
null
;
try
{
File
localFile
=
new
File
(
localFilePath
);
String
fileName
=
localFile
.
getName
();
SmbFile
remoteFile
;
remoteFile
=
new
SmbFile
(
remoteUrl
+
"/"
+
fileName
);
if
(
null
==
auth
){
remoteFile
=
new
SmbFile
(
remoteUrl
+
fileName
);
}
else
{
remoteFile
=
new
SmbFile
(
remoteUrl
+
fileName
,
auth
);
}
in
=
new
BufferedInputStream
(
new
FileInputStream
(
localFile
));
out
=
new
BufferedOutputStream
(
new
SmbFileOutputStream
(
remoteFile
));
...
...
@@ -91,7 +96,7 @@ public class SmbFileUtil {
buffer
=
new
byte
[
1024
];
}
}
catch
(
Exception
e
)
{
log
.
error
(
"下发文件失败: {}"
,
e
.
getMessage
());
log
.
error
(
"下发文件失败: {}"
,
e
.
getMessage
()
+
e
.
getLocalizedMessage
()
);
e
.
printStackTrace
();
return
false
;
}
finally
{
...
...
src/main/resources/config/application-dev.properties
View file @
2c2436e2
...
...
@@ -38,7 +38,7 @@ spring.mes.sqlserver.password=wanteng@2019
server.port
=
8082
logging.level.root
=
error
#logging.level.net.vtstar=info
logging.level.net.vtstar
=
error
logging.level.net.vtstar.scada.base.equipmgt.mapper
=
error
logging.level.net.vtstar.zhongtong.avi.equipment.mapper
=
error
logging.level.net.vtstar.protocol.modbus.tcp.netty.service
=
error
...
...
src/main/resources/config/application-quartz2.properties
View file @
2c2436e2
...
...
@@ -346,4 +346,39 @@ quartz.job.taskInfos[45].jobName=net.vtstar.zhongtong.avi.gateway.stamping.job.F
quartz.job.taskInfos[45]
.jobGroup
=
FlatLaserCuttingMachineJob
quartz.job.taskInfos[45]
.jobDescription
=
\u
5C01
\u
88C5
\u
7EBF
\u9884\u
710A
\u
673A
\u6570\u
636E
\u
91C7
\u
96C6job
quartz.job.taskInfos[45]
.cronExpression
=
0 0/1 * * * ?
quartz.job.taskInfos[45]
.start
=
true
\ No newline at end of file
quartz.job.taskInfos[45]
.start
=
true
#mes 底盘扫码设备同步
quartz.job.taskInfos[46]
.jobName
=
net.vtstar.zhongtong.avi.sqlserver.job.MesScanCodeDpJob
quartz.job.taskInfos[46]
.jobGroup
=
MesScanCodeDpJob
quartz.job.taskInfos[46]
.jobDescription
=
\u
004d
\u0045\u0053\u
5de5
\u5355\u
540c
\u
6b65Job
quartz.job.taskInfos[46]
.cronExpression
=
0 0/10 * * * ?
quartz.job.taskInfos[46]
.start
=
true
#mes 底盘扫码设备同步
quartz.job.taskInfos[47]
.jobName
=
net.vtstar.zhongtong.avi.sqlserver.job.MesScanCodeZpJob
quartz.job.taskInfos[47]
.jobGroup
=
MesScanCodeZpJob
quartz.job.taskInfos[47]
.jobDescription
=
\u
004d
\u0045\u0053\u
5de5
\u5355\u
540c
\u
6b65Job
quartz.job.taskInfos[47]
.cronExpression
=
0 0/15 * * * ?
quartz.job.taskInfos[47]
.start
=
true
#喷涂机器人运行状态
quartz.job.taskInfos[48]
.jobName
=
net.vtstar.zhongtong.avi.gateway.painting.job.PaintingRobotMachineJob
quartz.job.taskInfos[48]
.jobGroup
=
PaintingRobotMachineJob
quartz.job.taskInfos[48]
.jobDescription
=
\u
55b7
\u
6d82
\u
673a
\u5668\u
4ebaJob
quartz.job.taskInfos[48]
.cronExpression
=
0/15 * * * * ?
quartz.job.taskInfos[48]
.start
=
true
#喷涂机器人报警状态
quartz.job.taskInfos[49]
.jobName
=
net.vtstar.zhongtong.avi.monitoring.job.PaintingRobotErrorJob
quartz.job.taskInfos[49]
.jobGroup
=
PaintingRobotErrorJob
quartz.job.taskInfos[49]
.jobDescription
=
\u
55b7
\u
6d82
\u
673a
\u5668\u
4ebaJob
quartz.job.taskInfos[49]
.cronExpression
=
0/15 * * * * ?
quartz.job.taskInfos[49]
.start
=
true
#更新设备状态
quartz.job.taskInfos[50]
.jobName
=
net.vtstar.zhongtong.avi.equipment.job.CleanMachineStatusDataJob
quartz.job.taskInfos[50]
.jobGroup
=
CleanMachineStatusDataJob
quartz.job.taskInfos[50]
.jobDescription
=
\u
55b7
\u
6d82
\u
673a
\u5668\u
4ebaJob
quartz.job.taskInfos[50]
.cronExpression
=
0/10 * * * * ?
quartz.job.taskInfos[50]
.start
=
true
\ No newline at end of file
src/main/resources/config/application-xdw.properties
View file @
2c2436e2
...
...
@@ -38,7 +38,7 @@ spring.mes.sqlserver.password=wanteng@2019
server.port
=
8082
mqtt.server-uri
=
tcp://10.1.25.223:1883
logging.level.root
=
info
logging.level.root
=
error
#logging.level.net.vtstar=info
logging.level.net.vtstar.scada.base.equipmgt.mapper
=
error
logging.level.net.vtstar.zhongtong.avi.equipment.mapper
=
error
...
...
src/main/resources/config/application-ztip.properties
View file @
2c2436e2
...
...
@@ -22,11 +22,11 @@ zt.ip.assemblynewenergy3=10.1.25.130
zt.ip.assemblynewenergy4
=
10.1.25.131
#底盘车间--四轮定位A线
zt.ip.wheelalignment1
=
10.1.25.8
7
zt.ip.wheelalignment1
=
10.1.25.8
5
#底盘车间--四轮定位B线
zt.ip.wheelalignment2
=
10.1.25.86
#底盘车间--四轮定位C线
zt.ip.wheelalignment3
=
10.1.25.8
8
zt.ip.wheelalignment3
=
10.1.25.8
7
#试交车间
#检测线
...
...
src/main/resources/mapper/mysql/MesScanCodeDpMapper.xml
0 → 100644
View file @
2c2436e2
<?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.sqlserver.mapper.MesScanCodeDpMapper"
>
</mapper>
\ No newline at end of file
src/main/resources/mapper/mysql/MesScanCodeZpMapper.xml
0 → 100644
View file @
2c2436e2
<?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.sqlserver.mapper.MesScanCodeZpMapper"
>
</mapper>
\ No newline at end of file
src/test/java/net/vtstar/zhongtong/avi/ApplicationTests.java
View file @
2c2436e2
...
...
@@ -16,7 +16,6 @@ import java.net.Socket;
import
java.util.Date
;
@ActiveProfiles
(
"xdw"
)
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
@Slf4j
public
class
ApplicationTests
{
...
...
@@ -66,4 +65,14 @@ public class ApplicationTests {
socket
.
close
();
}
@Test
public
void
testMoodbus1
()
throws
Exception
{
Integer
newValue
=
3
;
int
j
=
0
;
while
(
j
<
8
){
System
.
out
.
println
((
newValue
>>
j
&
0x01
));
j
++;
}
}
}
src/test/java/net/vtstar/zhongtong/avi/ModbusTest.java
View file @
2c2436e2
...
...
@@ -4,6 +4,8 @@ import io.netty.buffer.ByteBuf;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.protocol.modbus.tcp.netty.packet.ReadCoilsRequest
;
import
net.vtstar.protocol.modbus.tcp.netty.packet.ReadCoilsResponse
;
import
net.vtstar.protocol.modbus.tcp.netty.packet.ReadInputDiscretesRequest
;
import
net.vtstar.protocol.modbus.tcp.netty.packet.ReadInputDiscretesResponse
;
import
net.vtstar.protocol.modbus.tcp.netty.service.ModbusTemplate
;
import
net.vtstar.protocol.modbus.tcp.netty.utils.PoolKey
;
import
net.vtstar.scada.base.equipmgt.domain.EquipDataTemplate
;
...
...
@@ -63,7 +65,15 @@ public class ModbusTest {
System
.
out
.
println
(
"___"
+
b
);
// byte[] array = body.array();
}
@Test
public
void
testMoodbus
()
throws
Exception
{
PoolKey
poolKey
=
new
PoolKey
(
"localhost"
,
504
);
ReadInputDiscretesRequest
request
=
new
ReadInputDiscretesRequest
(
41
,
4807
,
1
);
ReadInputDiscretesResponse
response
=
modbusTemplate
.
execute
(
poolKey
,
request
,
ReadInputDiscretesResponse
.
class
);
ByteBuf
body
=
response
.
getBody
();
byte
b
=
body
.
readByte
();
System
.
out
.
println
(
"___"
+
b
);
}
private
static
final
String
SUFFIX_2003
=
".xls"
;
private
static
final
String
SUFFIX_2007
=
".xlsx"
;
...
...
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