增加两个球机

增加多源数据库
杭州-烟草
LAPTOP-S9HJSOEB\昊天 1 year ago
parent b6585973ca
commit c816bb40db

@ -42,6 +42,21 @@
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.9.0.0</version>
</dependency>
<dependency>
<groupId>com.oracle.database.nls</groupId>
<artifactId>orai18n</artifactId>
<version>21.5.0.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>4.3.0</version>
</dependency>
<dependency> <dependency>
<groupId>com.zhehekeji</groupId> <groupId>com.zhehekeji</groupId>
<artifactId>common</artifactId> <artifactId>common</artifactId>

@ -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<SteeringEngine> list =steeringEngineMapper.selectList(new QueryWrapper<>());
return Result.success();
}
}

@ -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;
}
}

@ -47,6 +47,13 @@ public class Street {
@TableField(strategy = FieldStrategy.IGNORED) @TableField(strategy = FieldStrategy.IGNORED)
private Integer camera2Id; 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") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime; private LocalDateTime updateTime;

@ -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<SteeringEngine> {
}

@ -67,6 +67,15 @@ public class CronTab {
checkFileTime(dir2,configProperties.getDeleteFileDays()); 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){ public static void putTime(Integer streetId){
lightTimeMap.put(streetId,System.currentTimeMillis()); lightTimeMap.put(streetId,System.currentTimeMillis());
} }

@ -126,23 +126,23 @@ public class InitService implements ApplicationRunner {
}); });
thread.start(); thread.start();
Thread thread1 = new Thread(()->{ // Thread thread1 = new Thread(()->{
//
log.info("shuttleCar JSON MODE"); // log.info("shuttleCar JSON MODE");
ConfigProperties.KSEC shuttleCar = configProperties.getShuttleCar(); // ConfigProperties.KSEC shuttleCar = configProperties.getShuttleCar();
if(shuttleCar != null){ // if(shuttleCar != null){
StreetConn.init(0,"shuttleCar"); // StreetConn.init(0,"shuttleCar");
try { // try {
shuttleNettyClient.createClient(shuttleCar); // shuttleNettyClient.createClient(shuttleCar);
}catch (Exception e){ // }catch (Exception e){
shuttleNettyClient.reconnect(0); // shuttleNettyClient.reconnect(0);
log.error("shuttleCar connect error,url:{},port:{}",shuttleCar.getIp(),shuttleCar.getPort()); // log.error("shuttleCar connect error,url:{},port:{}",shuttleCar.getIp(),shuttleCar.getPort());
} // }
}else { // }else {
log.error("shuttleCar no config"); // log.error("shuttleCar no config");
} // }
}); // });
thread1.start(); // thread1.start();
} }

@ -52,6 +52,12 @@ public class RealTimeService {
if(cameraMap.get(street.getCamera2Id()) != null){ if(cameraMap.get(street.getCamera2Id()) != null){
cameraList.add(cameraMap.get(street.getCamera2Id())); 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); realTime.setCameras(cameraList);
realTimes.add(realTime); realTimes.add(realTime);
}); });

@ -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<SteeringEngineMapper,SteeringEngine> implements IService<SteeringEngine>{
@Resource
private PlcService plcService;
private Map<String,SteeringEngine> steeringEngineMap = new ConcurrentHashMap<>();
void check(){
List<SteeringEngine> list = list();
Map<String,SteeringEngine> 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));
}
}
}
}

@ -1,22 +1,20 @@
spring: spring:
datasource: datasource:
driver-class-name: com.mysql.cj.jdbc.Driver dynamic:
initialSize: 15 primary: master
maxActive: 20 strict: false
maxPoolPreparedStatementPerConnectionSize: 20 datasource:
maxWait: 60000 master:
minEvictableIdleTimeMillis: 300000 driver-class-name: com.mysql.cj.jdbc.Driver
minIdle: 15 password: root
password: root type: com.alibaba.druid.pool.DruidDataSource
poolPreparedStatements: true url: jdbc:mysql://127.0.0.1:3306/lia_duoji?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
testOnBorrow: true username: root
testOnReturn: false slave:
testWhileIdle: false url: jdbc:oracle:thin:@192.168.1.52:1521/ORCLPDB1?characterEncoding=ZHS16GBK
timeBetweenEvictionRunsMillis: 60000 username: jbwlkf
type: com.alibaba.druid.pool.DruidDataSource password: jbwl#2022
url: jdbc:mysql://127.0.0.1:3306/lia_duoji?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 driver-class-name: oracle.jdbc.driver.OracleDriver
username: root
validationQuery: SELECT 1 FROM DUAL
# --------本服务端口号 # --------本服务端口号
server: server:
port: 8099 port: 8099

Loading…
Cancel
Save