This commit is contained in:
psh
2024-06-11 09:18:39 +08:00
parent 7ceb84b3e0
commit e03718c695
9 changed files with 86 additions and 44 deletions

View File

@@ -1,5 +1,6 @@
package org.nl.acs.device_driver.driver; package org.nl.acs.device_driver.driver;
import lombok.extern.slf4j.Slf4j;
import org.nl.acs.opc.*; import org.nl.acs.opc.*;
import org.nl.acs.udw.UnifiedDataAccessor; import org.nl.acs.udw.UnifiedDataAccessor;
import org.nl.acs.udw.UnifiedDataAccessorFactory; import org.nl.acs.udw.UnifiedDataAccessorFactory;
@@ -12,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import java.util.*; import java.util.*;
@Slf4j
public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements OpcDeviceDriver { public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements OpcDeviceDriver {
UnifiedDataAccessor opcUdw; UnifiedDataAccessor opcUdw;
@@ -100,7 +102,7 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc
int i=0; int i=0;
while (it.hasNext()) { while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next(); Map.Entry<String, Object> entry = it.next();
System.out.println("即将写入值:"+entry.getKey() + ":" + entry.getValue()); log.info("即将写入值:"+entry.getKey() + ":" + entry.getValue());
p2[i] = new ItemValue(); p2[i] = new ItemValue();
p2[i].setItem_code(entry.getKey()); p2[i].setItem_code(entry.getKey());
p2[i].setItem_value(entry.getValue()); p2[i].setItem_value(entry.getValue());

View File

@@ -640,10 +640,16 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
device = deviceAppService.findDeviceByCode(device_code); device = deviceAppService.findDeviceByCode(device_code);
if (device.getDeviceDriver() instanceof GuhuashiSiteDeviceDriver) { if (device.getDeviceDriver() instanceof GuhuashiSiteDeviceDriver) {
GuhuashiSiteDeviceDriver guhuashiSiteDeviceDriver = (GuhuashiSiteDeviceDriver) device.getDeviceDriver(); GuhuashiSiteDeviceDriver guhuashiSiteDeviceDriver = (GuhuashiSiteDeviceDriver) device.getDeviceDriver();
guhuashiSiteDeviceDriver.writing("plates_is_full",1); guhuashiSiteDeviceDriver.writing("VW70043",1);
} }
break; break;
case 2: case 2:
//LMS通知固化室在下班时未进满信号开始固化
device = deviceAppService.findDeviceByCode(device_code);
if (device.getDeviceDriver() instanceof GuhuashiSiteDeviceDriver) {
GuhuashiSiteDeviceDriver guhuashiSiteDeviceDriver = (GuhuashiSiteDeviceDriver) device.getDeviceDriver();
guhuashiSiteDeviceDriver.writing("VW70045",1);
}
break; break;
default: default:
break; break;

View File

@@ -1021,13 +1021,14 @@ public class InstructionServiceImpl extends CommonServiceImpl<InstructionMapper,
// } else { // } else {
flag = true; flag = true;
// } // }
} else if (StrUtil.equals(entity.getInstruction_type(), "4") }else {
&& !StrUtil.equals(entity.getSend_status(), "2")) { flag = true;
}
if (StrUtil.equals(entity.getInstruction_type(), "4")||
StrUtil.equals(entity.getInstruction_type(), "3")) {
ZheDaAgvService zheDaAgvService = SpringContextHolder.getBean(ZheDaAgvService.class); ZheDaAgvService zheDaAgvService = SpringContextHolder.getBean(ZheDaAgvService.class);
zheDaAgvService.deleteZDAgvInst(entity.getInstruction_code()); zheDaAgvService.deleteZDAgvInst(entity.getInstruction_code());
flag = true; flag = true;
} else {
flag = true;
} }
if (flag) { if (flag) {

View File

@@ -75,15 +75,16 @@ public class QueryZDAgvTaskStatus {
instructionService.update(inst); instructionService.update(inst);
} }
} else if ("FINISHED".equals(status)) { } else if ("FINISHED".equals(status)) {
if (inst != null) { if (inst != null){
if(!"2".equals(inst.getInstruction_status())){
String startPoint=inst.getStart_point_code(); String startPoint=inst.getStart_point_code();
Device device = deviceAppService.findDeviceByCode(startPoint); Device device = deviceAppService.findDeviceByCode(startPoint);
if (device.getDeviceDriver() instanceof SiteDeviceDriver) { if (device.getDeviceDriver() instanceof SiteDeviceDriver) {
SiteDeviceDriver siteDeviceDriver=(SiteDeviceDriver)device.getDeviceDriver(); SiteDeviceDriver siteDeviceDriver=(SiteDeviceDriver)device.getDeviceDriver();
siteDeviceDriver.writing(10); if(siteDeviceDriver.getMode()!=10) {
siteDeviceDriver.writing(10);
siteDeviceDriver.writing(10);
}
} }
}
inst.setInstruction_status("2"); inst.setInstruction_status("2");
instructionService.finish(inst); instructionService.finish(inst);
} }

View File

@@ -72,7 +72,7 @@ spring:
redis: redis:
#数据库索引 #数据库索引
database: ${REDIS_DB:2} database: ${REDIS_DB:2}
# host: ${REDIS_HOST:10.44.101.112} # host: ${REDIS_HOST:10.44.101.19}
host: ${REDIS_HOST:127.0.0.1} host: ${REDIS_HOST:127.0.0.1}
port: ${REDIS_PORT:6379} port: ${REDIS_PORT:6379}
# password: ${REDIS_PWD:} # password: ${REDIS_PWD:}

View File

@@ -1,14 +1,15 @@
server: server:
port: 8010 port: 8011
#配置数据源 #配置数据源
spring: spring:
datasource: datasource:
druid: druid:
db-type: com.alibaba.druid.pool.DruidDataSource db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.93.41.198}:${DB_PORT:3306}/${DB_NAME:rl_mg_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true # url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:stand_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:tn_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
username: ${DB_USER:root} username: ${DB_USER:root}
# password: ${DB_PWD:Root.123456}
password: ${DB_PWD:123456} password: ${DB_PWD:123456}
# 初始连接数 # 初始连接数
initial-size: 5 initial-size: 5
@@ -51,12 +52,30 @@ spring:
wall: wall:
config: config:
multi-statement-allow: true multi-statement-allow: true
flyway:
# 是否启用flyway
enabled: true
# 编码格式默认UTF-8
encoding: UTF-8
# 迁移sql脚本文件存放路径默认db/migration
locations: classpath:db/migration
# 迁移sql脚本文件名称的前缀默认V
sql-migration-prefix: V
# 迁移sql脚本文件名称的分隔符默认2个下划线__
sql-migration-separator: __
# 迁移sql脚本文件名称的后缀
sql-migration-suffixes: .sql
# 迁移时是否进行校验默认true
validate-on-migrate: true
# 当迁移发现数据库非空且存在没有元数据的表时自动执行基准迁移新建schema_version表
baseline-on-migrate: true
redis: redis:
#数据库索引 #数据库索引
database: ${REDIS_DB:2} database: ${REDIS_DB:2}
host: ${REDIS_HOST:127.0.0.1} host: ${REDIS_HOST:10.44.101.19}
# host: ${REDIS_HOST:127.0.0.1}
port: ${REDIS_PORT:6379} port: ${REDIS_PORT:6379}
password: ${REDIS_PWD:} # password: ${REDIS_PWD:}
# 登录相关配置 # 登录相关配置
login: login:
@@ -81,24 +100,6 @@ login:
# 字体大小 # 字体大小
font-size: 25 font-size: 25
#jwt
jwt:
header: Authorization
# 令牌前缀
token-start-with: Bearer
# 必须使用最少88位的Base64对该令牌进行编码
base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
# 令牌过期时间 此处单位/毫秒 默认4小时可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
token-validity-in-seconds: 14400000
# 在线用户key
online-key: online-token-
# 验证码
code-key: code-key-
# token 续期检查时间范围默认30分钟单位毫秒在token即将过期的一段时间内用户操作了则给用户的token续期
detect: 1800000
# 续期时间范围默认1小时单位毫秒
renew: 3600000
#是否允许生成代码生产环境设置为false #是否允许生成代码生产环境设置为false
generator: generator:
enabled: true enabled: true
@@ -127,11 +128,8 @@ file:
avatarMaxSize: 5 avatarMaxSize: 5
logging: logging:
file: file:
path: D:\log\ACS path: C:\log\acs
config: classpath:logback-spring.xml config: classpath:logback-spring.xml
lucene:
index:
path: D:\lucene\index
# Sa-Token配置 # Sa-Token配置
sa-token: sa-token:
@@ -152,7 +150,32 @@ sa-token:
jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq
# token 前缀 # token 前缀
token-prefix: Bearer token-prefix: Bearer
sso:
# Ticket有效期 (单位: 秒),默认五分钟
ticket-timeout: 300
# 所有允许的授权回调地址
allow-url: "*"
# 是否打开单点注销功能
is-slo: true
loki: # ------- SSO-模式三相关配置 下面的配置在SSO模式三并且 is-slo=true 时打开)
url: http://localhost:3100/loki/api/v1 # 是否打开模式三
systemName: acs isHttp: true
# 接口调用秘钥用于SSO模式三的单点注销功能
secretkey: kQwIOrYvnXmSDkwEiFngrKidMcdrgKor
# ---- 除了以上配置项,你还需要为 Sa-Token 配置http请求处理器文档有步骤说明
is-read-cookie: true
is-print: false
# 未登录 StpUtil.getTokenSession() 设置值,获取值 @SaIgnore 得忽略接口
token-session-check-login: false
alone-redis:
# Redis数据库索引默认为0
database: 2
# Redis服务器地址
host: 10.44.101.19
# Redis服务器连接端口
port: 6379
# Redis服务器连接密码默认为空
password:
# 连接超时时间
timeout: 10s

View File

@@ -13,6 +13,7 @@ import org.nl.system.service.param.ISysParamService;
import org.nl.system.service.param.dao.Param; import org.nl.system.service.param.dao.Param;
import org.nl.wms.database.material.service.IMdBaseMaterialService; import org.nl.wms.database.material.service.IMdBaseMaterialService;
import org.nl.wms.database.material.service.dao.MdBaseMaterial; import org.nl.wms.database.material.service.dao.MdBaseMaterial;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.ext.acs.service.dto.to.BaseResponse; import org.nl.wms.ext.acs.service.dto.to.BaseResponse;
import org.nl.wms.pdm.solidifyplan.service.IPdmBdSolidifyPlanService; import org.nl.wms.pdm.solidifyplan.service.IPdmBdSolidifyPlanService;
import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService; import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService;
@@ -73,6 +74,8 @@ public class TBXMLTask extends AbstractTask {
private IPdmBdSolidifyPlanService solidifyPlanService; private IPdmBdSolidifyPlanService solidifyPlanService;
@Autowired @Autowired
private IPdmBdProductionProcessTrackingService processTrackingService; private IPdmBdProductionProcessTrackingService processTrackingService;
@Autowired
private WmsToAcsService wmsToAcsService;
/** /**
* hint: 涂板线任务先发到等待点,接着二次请求获取真正的点位。 * hint: 涂板线任务先发到等待点,接着二次请求获取真正的点位。
@@ -292,7 +295,7 @@ public class TBXMLTask extends AbstractTask {
: ""); : "");
groupEntity.setMaterial_qty(ObjectUtil.isNotEmpty(qty) && qty > 0 groupEntity.setMaterial_qty(ObjectUtil.isNotEmpty(qty) && qty > 0
? qty ? qty
: ObjectUtil.isEmpty(materialObj.getMaterial_spec()) ? 0 : Integer.parseInt(materialObj.getMaterial_spec()) * 11); : ObjectUtil.isEmpty(materialObj.getStandard_qty()) ? 0 : Integer.parseInt(materialObj.getStandard_qty()) * 11);
groupEntity.setCreate_id(GeneralDefinition.ACS_ID); groupEntity.setCreate_id(GeneralDefinition.ACS_ID);
groupEntity.setCreate_name(GeneralDefinition.ACS_NAME); groupEntity.setCreate_name(GeneralDefinition.ACS_NAME);
groupEntity.setCreate_time(DateUtil.now()); groupEntity.setCreate_time(DateUtil.now());
@@ -350,7 +353,6 @@ public class TBXMLTask extends AbstractTask {
processTracking.setProcess_location(endPoint); processTracking.setProcess_location(endPoint);
processTracking.setRecord_time(DateUtil.now()); processTracking.setRecord_time(DateUtil.now());
processTrackingService.create(processTracking); processTrackingService.create(processTracking);
// todo: 如果是最后一个就申请固化
SchBasePoint one = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>() SchBasePoint one = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getParent_point_code, endPointObj.getParent_point_code()) .eq(SchBasePoint::getParent_point_code, endPointObj.getParent_point_code())
.eq(SchBasePoint::getPoint_type, PointTypeConstant.DOCKING_POINT) .eq(SchBasePoint::getPoint_type, PointTypeConstant.DOCKING_POINT)
@@ -371,6 +373,13 @@ public class TBXMLTask extends AbstractTask {
taskObj.setFinished_type(taskFinishedType.getCode()); taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType); TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj); taskService.updateById(taskObj);
//如果是最后一个就申请固化
if(endPointObj.getPoint_code().endsWith("7")) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("device_code", endPointObj.getParent_point_code());
jsonObject.put("type", 1);
wmsToAcsService.notifyAcs(jsonObject);
}
} }
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {

View File

@@ -18,7 +18,7 @@ https://juejin.cn/post/6844903775631572999
<!--引入默认的一些设置--> <!--引入默认的一些设置-->
<!--<include resource="log/XrToMes.xml"/> <!--<include resource="log/XrToMes.xml"/>
<include resource="log/MesToErp.xml"/>--> <include resource="log/MesToErp.xml"/>-->
<include resource="log/XgAgvDeviceDriver.xml"/> <!-- <include resource="log/XgAgvDeviceDriver.xml"/>-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>