diff --git a/web/pom.xml b/web/pom.xml
index 90169b6..400d4cb 100644
--- a/web/pom.xml
+++ b/web/pom.xml
@@ -42,6 +42,21 @@
lombok
true
+
+ com.oracle.database.jdbc
+ ojdbc8
+ 21.9.0.0
+
+
+ com.oracle.database.nls
+ orai18n
+ 21.5.0.0
+
+
+ com.baomidou
+ dynamic-datasource-spring-boot-starter
+ 4.3.0
+
com.zhehekeji
common
diff --git a/web/src/main/java/com/zhehekeji/web/controller/SteeringEngineController.java b/web/src/main/java/com/zhehekeji/web/controller/SteeringEngineController.java
new file mode 100644
index 0000000..df62674
--- /dev/null
+++ b/web/src/main/java/com/zhehekeji/web/controller/SteeringEngineController.java
@@ -0,0 +1,31 @@
+package com.zhehekeji.web.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.zhehekeji.core.pojo.Result;
+import com.zhehekeji.web.entity.SteeringEngine;
+import com.zhehekeji.web.mapper.SteeringEngineMapper;
+import com.zhehekeji.web.service.sick.SickConnMap;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api( tags = "堆垛机")
+@RequestMapping(value = "/SteeringEngineController")
+@RestController()
+@Slf4j
+public class SteeringEngineController {
+ @Resource
+ SteeringEngineMapper steeringEngineMapper;
+ @GetMapping("/start")
+ @ApiOperation(value = "sick扫码枪开始扫")
+ public Result userCenter() {
+ List list =steeringEngineMapper.selectList(new QueryWrapper<>());
+ return Result.success();
+ }
+}
diff --git a/web/src/main/java/com/zhehekeji/web/entity/SteeringEngine.java b/web/src/main/java/com/zhehekeji/web/entity/SteeringEngine.java
new file mode 100644
index 0000000..ee94a73
--- /dev/null
+++ b/web/src/main/java/com/zhehekeji/web/entity/SteeringEngine.java
@@ -0,0 +1,51 @@
+package com.zhehekeji.web.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zhehekeji.web.service.PlcCmdInfo;
+import lombok.Data;
+
+@Data
+@TableName("\"steeringEngine\"")
+public class SteeringEngine {
+ private String workunitid;
+ private String dloc;
+ private String jobnum;
+ private String loggnum;
+ private String pltnum;
+
+
+ private String plttype;
+ private String sloc;
+ private String workunitdesc;
+ private String workunitstatus;
+
+ public static PlcCmdInfo getPlcCmdInfo(SteeringEngine steeringEngine) {
+ PlcCmdInfo plcCmdInfo = new PlcCmdInfo();
+ plcCmdInfo.setTaskId(String.valueOf(steeringEngine.getJobnum()));
+ plcCmdInfo.setOrderNum(String.valueOf(steeringEngine.getPltnum()));
+ plcCmdInfo.setPlcId(String.valueOf(steeringEngine.getWorkunitid()));
+ if(steeringEngine.getSloc()!=null && steeringEngine.getSloc().endsWith("000")){
+ plcCmdInfo.setLeftRight1(Integer.valueOf(steeringEngine.getSloc().substring(3,4)));
+ plcCmdInfo.setColumn1(Integer.valueOf(steeringEngine.getSloc().substring(4,6)));
+ plcCmdInfo.setRow1(Integer.valueOf(steeringEngine.getSloc().substring(6,8)));
+ plcCmdInfo.setSeparation1(1);
+ }else {
+ plcCmdInfo.setLeftRight1(0);
+ plcCmdInfo.setColumn1(0);
+ plcCmdInfo.setRow1(0);
+ plcCmdInfo.setSeparation1(1);
+ }
+ if(steeringEngine.getDloc()!=null && steeringEngine.getDloc().endsWith("000")){
+ plcCmdInfo.setLeftRight2(Integer.valueOf(steeringEngine.getSloc().substring(3,4)));
+ plcCmdInfo.setColumn2(Integer.valueOf(steeringEngine.getSloc().substring(4,6)));
+ plcCmdInfo.setRow2(Integer.valueOf(steeringEngine.getSloc().substring(6,8)));
+ plcCmdInfo.setSeparation2(1);
+ }else {
+ plcCmdInfo.setLeftRight2(0);
+ plcCmdInfo.setColumn2(0);
+ plcCmdInfo.setRow2(0);
+ plcCmdInfo.setSeparation2(1);
+ }
+ return plcCmdInfo;
+ }
+}
\ No newline at end of file
diff --git a/web/src/main/java/com/zhehekeji/web/entity/Street.java b/web/src/main/java/com/zhehekeji/web/entity/Street.java
index 5172fd2..242855e 100644
--- a/web/src/main/java/com/zhehekeji/web/entity/Street.java
+++ b/web/src/main/java/com/zhehekeji/web/entity/Street.java
@@ -47,6 +47,13 @@ public class Street {
@TableField(strategy = FieldStrategy.IGNORED)
private Integer camera2Id;
+ @TableField(strategy = FieldStrategy.IGNORED)
+ private Integer camera3Id;
+
+ @TableField(strategy = FieldStrategy.IGNORED)
+ private Integer camera4Id;
+
+
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
diff --git a/web/src/main/java/com/zhehekeji/web/mapper/SteeringEngineMapper.java b/web/src/main/java/com/zhehekeji/web/mapper/SteeringEngineMapper.java
new file mode 100644
index 0000000..7304aa6
--- /dev/null
+++ b/web/src/main/java/com/zhehekeji/web/mapper/SteeringEngineMapper.java
@@ -0,0 +1,9 @@
+package com.zhehekeji.web.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhehekeji.web.entity.SteeringEngine;
+
+@DS("slave")
+public interface SteeringEngineMapper extends BaseMapper {
+}
diff --git a/web/src/main/java/com/zhehekeji/web/service/CronTab.java b/web/src/main/java/com/zhehekeji/web/service/CronTab.java
index c10c676..1544995 100644
--- a/web/src/main/java/com/zhehekeji/web/service/CronTab.java
+++ b/web/src/main/java/com/zhehekeji/web/service/CronTab.java
@@ -67,6 +67,15 @@ public class CronTab {
checkFileTime(dir2,configProperties.getDeleteFileDays());
}
+ @Resource
+ SteeringEngineService steeringEngineService;
+
+ @Scheduled(fixedDelay = 5000)
+ //@Scheduled(cron = "0 0/1 * * * *")
+ public void check() {
+ steeringEngineService.check();
+ }
+
public static void putTime(Integer streetId){
lightTimeMap.put(streetId,System.currentTimeMillis());
}
diff --git a/web/src/main/java/com/zhehekeji/web/service/InitService.java b/web/src/main/java/com/zhehekeji/web/service/InitService.java
index 7adecfd..edbe121 100644
--- a/web/src/main/java/com/zhehekeji/web/service/InitService.java
+++ b/web/src/main/java/com/zhehekeji/web/service/InitService.java
@@ -126,23 +126,23 @@ public class InitService implements ApplicationRunner {
});
thread.start();
- Thread thread1 = new Thread(()->{
-
- log.info("shuttleCar JSON MODE");
- ConfigProperties.KSEC shuttleCar = configProperties.getShuttleCar();
- if(shuttleCar != null){
- StreetConn.init(0,"shuttleCar");
- try {
- shuttleNettyClient.createClient(shuttleCar);
- }catch (Exception e){
- shuttleNettyClient.reconnect(0);
- log.error("shuttleCar connect error,url:{},port:{}",shuttleCar.getIp(),shuttleCar.getPort());
- }
- }else {
- log.error("shuttleCar no config");
- }
- });
- thread1.start();
+// Thread thread1 = new Thread(()->{
+//
+// log.info("shuttleCar JSON MODE");
+// ConfigProperties.KSEC shuttleCar = configProperties.getShuttleCar();
+// if(shuttleCar != null){
+// StreetConn.init(0,"shuttleCar");
+// try {
+// shuttleNettyClient.createClient(shuttleCar);
+// }catch (Exception e){
+// shuttleNettyClient.reconnect(0);
+// log.error("shuttleCar connect error,url:{},port:{}",shuttleCar.getIp(),shuttleCar.getPort());
+// }
+// }else {
+// log.error("shuttleCar no config");
+// }
+// });
+// thread1.start();
}
diff --git a/web/src/main/java/com/zhehekeji/web/service/RealTimeService.java b/web/src/main/java/com/zhehekeji/web/service/RealTimeService.java
index a1d09fd..d74eb50 100644
--- a/web/src/main/java/com/zhehekeji/web/service/RealTimeService.java
+++ b/web/src/main/java/com/zhehekeji/web/service/RealTimeService.java
@@ -52,6 +52,12 @@ public class RealTimeService {
if(cameraMap.get(street.getCamera2Id()) != null){
cameraList.add(cameraMap.get(street.getCamera2Id()));
}
+ if(cameraMap.get(street.getCamera3Id()) != null){
+ cameraList.add(cameraMap.get(street.getCamera3Id()));
+ }
+ if(cameraMap.get(street.getCamera4Id()) != null){
+ cameraList.add(cameraMap.get(street.getCamera4Id()));
+ }
realTime.setCameras(cameraList);
realTimes.add(realTime);
});
diff --git a/web/src/main/java/com/zhehekeji/web/service/SteeringEngineService.java b/web/src/main/java/com/zhehekeji/web/service/SteeringEngineService.java
new file mode 100644
index 0000000..812b3f2
--- /dev/null
+++ b/web/src/main/java/com/zhehekeji/web/service/SteeringEngineService.java
@@ -0,0 +1,53 @@
+package com.zhehekeji.web.service;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zhehekeji.web.entity.SteeringEngine;
+import com.zhehekeji.web.mapper.SteeringEngineMapper;
+import com.zhehekeji.web.mapper.StockLogMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+@Service
+@DS("slave")
+public class SteeringEngineService extends ServiceImpl implements IService{
+ @Resource
+ private PlcService plcService;
+ private Map steeringEngineMap = new ConcurrentHashMap<>();
+
+ void check(){
+ List list = list();
+ Map newMap = list.stream().collect(Collectors.toMap(SteeringEngine::getWorkunitdesc, v->v));
+ for (String streetId : newMap.keySet()){
+ //如果为空或状态不同,则进入随行记录
+ if(steeringEngineMap.get(streetId) ==null){
+ //记录
+ steeringEngineMap.put(streetId,newMap.get(streetId));
+ }else if(!steeringEngineMap.get(streetId).getWorkunitstatus().equals("0") && !steeringEngineMap.get(streetId).getWorkunitstatus().equals(newMap.get(streetId).getWorkunitstatus())){
+
+ //在跑随行
+ if(!newMap.get(streetId).getJobnum().equals("0")){
+ plcService.orderStart(SteeringEngine.getPlcCmdInfo(newMap.get(streetId)));
+ }
+
+ //随行结束
+ else {
+ plcService.orderStop(SteeringEngine.getPlcCmdInfo(newMap.get(streetId)));
+ }
+
+ //记录
+ steeringEngineMap.put(streetId,newMap.get(streetId));
+ }
+ }
+ }
+
+
+}
diff --git a/web/src/main/resources/application-prod.yml b/web/src/main/resources/application-prod.yml
index 2383a12..11b926f 100644
--- a/web/src/main/resources/application-prod.yml
+++ b/web/src/main/resources/application-prod.yml
@@ -1,22 +1,20 @@
spring:
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- initialSize: 15
- maxActive: 20
- maxPoolPreparedStatementPerConnectionSize: 20
- maxWait: 60000
- minEvictableIdleTimeMillis: 300000
- minIdle: 15
- password: root
- poolPreparedStatements: true
- testOnBorrow: true
- testOnReturn: false
- testWhileIdle: false
- timeBetweenEvictionRunsMillis: 60000
- type: com.alibaba.druid.pool.DruidDataSource
- url: jdbc:mysql://127.0.0.1:3306/lia_duoji?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
- username: root
- validationQuery: SELECT 1 FROM DUAL
+ dynamic:
+ primary: master
+ strict: false
+ datasource:
+ master:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ password: root
+ type: com.alibaba.druid.pool.DruidDataSource
+ url: jdbc:mysql://127.0.0.1:3306/lia_duoji?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
+ username: root
+ slave:
+ url: jdbc:oracle:thin:@192.168.1.52:1521/ORCLPDB1?characterEncoding=ZHS16GBK
+ username: jbwlkf
+ password: jbwl#2022
+ driver-class-name: oracle.jdbc.driver.OracleDriver
# --------本服务端口号
server:
port: 8099