From c816bb40db27808ece3e8233dd078e014cc34e6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LAPTOP-S9HJSOEB=5C=E6=98=8A=E5=A4=A9?= Date: Mon, 21 Oct 2024 10:13:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=A4=E4=B8=AA=E7=90=83?= =?UTF-8?q?=E6=9C=BA=20=E5=A2=9E=E5=8A=A0=E5=A4=9A=E6=BA=90=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/pom.xml | 15 ++++++ .../controller/SteeringEngineController.java | 31 +++++++++++ .../zhehekeji/web/entity/SteeringEngine.java | 51 ++++++++++++++++++ .../java/com/zhehekeji/web/entity/Street.java | 7 +++ .../web/mapper/SteeringEngineMapper.java | 9 ++++ .../com/zhehekeji/web/service/CronTab.java | 9 ++++ .../zhehekeji/web/service/InitService.java | 34 ++++++------ .../web/service/RealTimeService.java | 6 +++ .../web/service/SteeringEngineService.java | 53 +++++++++++++++++++ web/src/main/resources/application-prod.yml | 32 ++++++----- 10 files changed, 213 insertions(+), 34 deletions(-) create mode 100644 web/src/main/java/com/zhehekeji/web/controller/SteeringEngineController.java create mode 100644 web/src/main/java/com/zhehekeji/web/entity/SteeringEngine.java create mode 100644 web/src/main/java/com/zhehekeji/web/mapper/SteeringEngineMapper.java create mode 100644 web/src/main/java/com/zhehekeji/web/service/SteeringEngineService.java 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