fix: 窑后送料禁止去货架三层、分拣优化、任务请求并发问题、点位解锁功能

This commit is contained in:
2023-11-02 08:53:19 +08:00
parent ffb6dac06d
commit 0c0421f5ce
17 changed files with 267 additions and 144 deletions

View File

@@ -172,18 +172,21 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 找到当前的设备
String deviceCode = param.getString("device_code");
String requestNo = param.getString("requestNo");
RLock lock = redissonClient.getLock(deviceCode);
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "QLTask";
RLock lock = redissonClient.getLock(configCode);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String configCode = basePoint.getRegion_code() + "QLTask";
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
@@ -206,18 +209,22 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 找到当前的设备
String deviceCode = param.getString("device_code");
String requestNo = param.getString("requestNo");
RLock lock = redissonClient.getLock(deviceCode);
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "QKTask";
RLock lock = redissonClient.getLock(configCode);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String configCode = basePoint.getRegion_code() + "QKTask";
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
@@ -240,18 +247,22 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 找到当前的设备
String deviceCode = param.getString("device_code");
String requestNo = param.getString("requestNo");
RLock lock = redissonClient.getLock(deviceCode);
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "SKTask";
RLock lock = redissonClient.getLock(configCode);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String configCode = basePoint.getRegion_code() + "SKTask";
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
@@ -274,21 +285,25 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
// 找到当前的设备
String deviceCode = param.getString("device_code");
String requestNo = param.getString("requestNo");
RLock lock = redissonClient.getLock(deviceCode);
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "MLTask";
RLock lock = redissonClient.getLock(configCode);
int handling = 0; // 无业务0
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String configCode = basePoint.getRegion_code() + "MLTask";
// 组织参数
param.put("config_code", configCode);
handling = specialHandling(basePoint.getRegion_code(), param);
param.put("special_param", handling);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
@@ -322,18 +337,20 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
public ApplyTaskResponse applyForceTakeFullVehicle(JSONObject param) {
String deviceCode = param.getString("device_code");
String requestNo = param.getString("requestNo");
RLock lock = redissonClient.getLock(deviceCode);
boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "QZRKTask";
RLock lock = redissonClient.getLock(configCode);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String configCode = basePoint.getRegion_code() + "QZRKTask";
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
@@ -350,18 +367,31 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
* @return
* @see org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest
*/
@SneakyThrows
public ApplyTaskResponse applyForceTakeFullVehicleInStorage(JSONObject param) {
// 找到当前的设备
String deviceCode = param.getString("device_code");
SchBasePoint basePoint = pointService.getById(deviceCode);
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
String requestNo = param.getString("requestNo");
SchBasePoint basePoint = pointService.getById(deviceCode);
String configCode = basePoint.getRegion_code() + "SLHSTask";
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
RLock lock = redissonClient.getLock(configCode);
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
try {
if (tryLock) {
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("点位错误!");
}
// 组织参数
param.put("config_code", configCode);
taskService.apply(param);
} else {
throw new BadRequestException("其他设备占用锁,等待结束!");
}
} finally {
if (tryLock) {
lock.unlock();
}
}
return ApplyTaskResponse.responseOk(requestNo);
}
@@ -445,30 +475,32 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
return ApplyTaskResponse.responseError(requestNo, "载具编码不能为空!");
}
StringBuilder sb = new StringBuilder();
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(baseRequest.getVehicle_code(),
GroupBindMaterialStatusEnum.UNBOUND.getValue());
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getOneByVehicleCode(
baseRequest.getVehicle_code(), GroupBindMaterialStatusEnum.UNBOUND.getValue());
String materialId = groupInfo.getMaterial_id();
MdBaseMaterial baseMaterial = materialService.getById(materialId);
BigDecimal materialWeight = ObjectUtil.isNotEmpty(groupInfo.getMaterial_weight())
? groupInfo.getMaterial_weight() : BigDecimal.valueOf(0);
BigDecimal materialQty = ObjectUtil.isNotEmpty(groupInfo.getMaterial_qty())
? BigDecimal.valueOf(groupInfo.getMaterial_qty()) : BigDecimal.valueOf(0);
String singleWeightStr = baseMaterial.getSingle_weight();
BigDecimal singleWeight = BigDecimal.valueOf(Double.parseDouble(singleWeightStr));
BigDecimal multiply = materialWeight.multiply(singleWeight);
BigDecimal multiply = materialQty.multiply(singleWeight);
// 获取工单
PdmBdWorkorder workorder = workorderService.getByCode(groupInfo.getWorkorder_code());
String extData = workorder.getExt_data();
JSONObject object = JSONObject.parseObject(extData);
CusterVo custer = wmsToMesService.getCusterByNo(object.getString("custer_no"));
log.info("包装数据:{}", object);
String custerNo = object.getString("custer_no");
String orderNo = object.getString("order_no");
// 组合
sb.append(baseRequest.getVehicle_code()).append("##")
.append(baseMaterial.getMaterial_code()).append("##")
.append(groupInfo.getMaterial_qty()).append("##")
.append(multiply).append("##")
.append(DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyy年MM月dd日")).append("##")
.append(custer.getCUSTER_NAME()).append("##")
.append(workorder.getProduction_order()).append("##")
.append(custerNo).append("##")
.append(orderNo).append("##")
.append(baseMaterial.getMaterial_name()).append("##")
.append(baseMaterial.getMaterial_model());
.append(baseMaterial.getMaterial_model()).append("**");
return ApplyTaskResponse.responseOk(requestNo, sb.toString());
}

View File

@@ -2,6 +2,7 @@ package org.nl.wms.ext.mes.autotask;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.nl.system.service.notice.ISysNoticeService;
@@ -42,6 +43,9 @@ public class AutoSaveProductionInfo {
mi.setSTOCK_UNIT("");
mi.setCREATE_TM(DateUtil.now());
mi.setOP_FLAG(GeneralDefinition.NO);
if (ObjectUtil.isEmpty(mi.getBATCHNO())) {
mi.setBATCHNO("-");
}
// 3、批量插入MES数据库
try {
wmsToMesService.saveSemiProductionBatchToMes(mi);

View File

@@ -2,6 +2,7 @@ package org.nl.wms.ext.mes.autotask;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.nl.system.service.notice.ISysNoticeService;
@@ -41,6 +42,9 @@ public class AutoSaveShelfInformation {
shelfInfo.setCREATE_TM(now);
shelfInfo.setSEND_TM(now);
shelfInfo.setOP_FLAG(GeneralDefinition.NO);
if (ObjectUtil.isEmpty(shelfInfo.getSOURCE_VEHICLE_CODE())) {
shelfInfo.setSOURCE_VEHICLE_CODE("-");
}
// 插入数据
try {
wmsToMesService.saveShelfInfoBatchToMes(shelfInfo);

View File

@@ -186,7 +186,8 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
throw new BadRequestException("该设备已有生产工单,不能重复下发");
}
// 设置开工人
pdmBdWorkorder.setOperator(SecurityUtils.getCurrentNickName());
pdmBdWorkorder.setOperator(ObjectUtil.isNotEmpty(SecurityUtils.getCurrentUser())
? SecurityUtils.getCurrentNickName() : "");
List<AcsWorkOrderVo> list = new CopyOnWriteArrayList<>();
// 重装数据回ACS重新根据id找一遍省的改动以上代码
AcsWorkOrderVo acsWorkOrderVo = pdmBdWorkorderMapper.toAcsWorkOrderById(pdmBdWorkorder.getWorkorder_id());

View File

@@ -93,4 +93,12 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
* @param vehicleType
*/
void unBindingSameVehicleMaterial(String vehicleCode, String vehicleType);
/**
* 包装获取组盘信息
* @param vehicleCode
* @param value
* @return
*/
SchBaseVehiclematerialgroup getOneByVehicleCode(String vehicleCode, String value);
}

View File

@@ -26,21 +26,23 @@ import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task_manage.enums.GroupStatusEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;
/**
* @description 服务实现
* @author lyd
* @date 2023-05-16
**/
* @author lyd
* @description 服务实现
* @date 2023-05-16
**/
@Slf4j
@Service
public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseVehiclematerialgroupMapper, SchBaseVehiclematerialgroup> implements ISchBaseVehiclematerialgroupService {
@@ -55,7 +57,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
private IMdBaseMaterialService materialService;
@Override
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page){
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page) {
IPage<SchBaseVehiclematerialgroup> pages = new Page<>(page.getPage() + 1, page.getSize());
pages = vehiclematerialgroupMapper.selectPageLeftJoin(pages, whereJson);
return pages;
@@ -67,7 +69,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr());
entity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setCreate_id(currentUserId);
entity.setCreate_name(nickName);
entity.setCreate_time(now);
@@ -107,8 +109,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
.eq(SchBaseVehiclematerialgroup::getMaterial_id, materialId)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
SchBaseVehiclematerialgroup selectOne = vehiclematerialgroupMapper.selectOne(lambda);
return selectOne;
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
@Override
@@ -118,8 +120,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
.eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
SchBaseVehiclematerialgroup selectOne = vehiclematerialgroupMapper.selectOne(lambda);
return selectOne;
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
@Override
@@ -128,8 +130,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false);
SchBaseVehiclematerialgroup selectOne = vehiclematerialgroupMapper.selectOne(lambda);
return selectOne;
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
@Override
@@ -150,4 +152,18 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
this.updateBatchById(list);
}
@Override
public SchBaseVehiclematerialgroup getOneByVehicleCode(String vehicleCode, String value) {
List<String> list = new ArrayList<>();
list.add(GeneralDefinition.STEEL_TRAY);
list.add(GeneralDefinition.MATERIAL_CUP);
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false)
.notIn(SchBaseVehiclematerialgroup::getVehicle_type, list);
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
}

View File

@@ -1,5 +1,6 @@
package org.nl.wms.sch.point.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -15,6 +16,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
@@ -80,4 +82,12 @@ public class SchBasePointController {
public ResponseEntity<Object> getPointList(@RequestBody(required = false) SchBasePoint region){
return new ResponseEntity<>(schBasePointService.getPointList(region),HttpStatus.OK);
}
@Log("锁定与解锁")
@PostMapping("/changeLock")
@ApiOperation("锁定与解锁")
public ResponseEntity<Object> changeLock(@RequestBody JSONObject points) {
schBasePointService.changeLock(points);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
}

View File

@@ -56,4 +56,9 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
*/
List<SchBasePoint> getPointList(SchBasePoint region);
/**
* 解锁/上锁
* @param points
*/
void changeLock(JSONObject points);
}

View File

@@ -31,10 +31,10 @@ import java.util.function.Consumer;
import java.util.stream.Collectors;
/**
* @description 服务实现
* @author lyd
* @date 2023-05-15
**/
* @author lyd
* @description 服务实现
* @date 2023-05-15
**/
@Slf4j
@Service
public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, SchBasePoint> implements ISchBasePointService {
@@ -46,7 +46,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
private SchBaseRegionMapper regionMapper;
@Override
public IPage<SchBasePoint> queryAll(Map whereJson, PageQuery page){
public IPage<SchBasePoint> queryAll(Map whereJson, PageQuery page) {
String blurry = ObjectUtil.isNotEmpty(whereJson.get("blurry"))
? whereJson.get("blurry").toString() : null;
String workshop_code = ObjectUtil.isNotEmpty(whereJson.get("workshop_code"))
@@ -194,4 +194,13 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
.eq(SchBasePoint::getIs_has_workder, true));
}
@Override
public void changeLock(JSONObject points) {
JSONArray data = points.getJSONArray("data");
Boolean lockType = points.getBoolean("lock_type");
List<SchBasePoint> pointList = data.toJavaList(SchBasePoint.class);
pointList.forEach(point -> point.setIng_task_code(lockType ? "" : "-"));
this.updateBatchById(pointList);
}
}

View File

@@ -120,11 +120,6 @@ public class FJQLTask extends AbstractTask {
// 找起点
String requestParam = task.getRequest_param();
JSONObject extGroupData = JSONObject.parseObject(requestParam);
// 如果工单上的真实数量达到,就不能呼叫满料过来
PdmBdWorkorder workOrder = workorderService.getByCode(extGroupData.getString("workorder_code"));
if (workOrder.getPlan_qty().equals(workOrder.getReal_qty())) {
throw new BadRequestException("工单【" + workOrder.getWorkorder_code() + "】已达数量");
}
extGroupData.put("vehicle_type", task.getVehicle_type());
SchBasePoint point = findStartPoint(startRegionStr, extGroupData);
if (ObjectUtil.isEmpty(point)) {

View File

@@ -161,7 +161,7 @@ public class FJSLTask extends AbstractTask {
throw new BadRequestException("找不到组盘信息");
}
groupObject.setIs_full(false);
groupObject.setMaterial_qty(param.getInteger(param.getString("qty")));
groupObject.setMaterial_qty(param.getInteger("qty"));
groupObject.setExt_data(JSONObject.toJSONString(stackParameters));
TaskUtils.setGroupUpdateByAcs(groupObject);
vehiclematerialgroupService.updateById(groupObject);

View File

@@ -162,6 +162,7 @@ public class CYZCTask extends AbstractTask {
.or()
.eq(SchBasePoint::getIng_task_code, ""))
.eq(SchBasePoint::getIs_used, true)
.ne(SchBasePoint::getLayer_num, "3")
.orderByAsc(SchBasePoint::getIn_order_seq);
List<SchBasePoint> schBasePoints = pointService.list(lam);
return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;

View File

@@ -1,64 +1,52 @@
server:
port: 8010
port: 8011
#配置数据源
spring:
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
druid:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:ndxy3_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
username: ${DB_USER:root}
password: ${DB_PWD:P@ssw0rd}
# 初始连接数
initial-size: 5
# 最小连接数
min-idle: 15
# 最大连接数
max-active: 60
# 获取连接超时时间
max-wait: 5000
# 连接有效性检测时间
time-between-eviction-runs-millis: 60000
# 连接在池中最小生存的时间
min-evictable-idle-time-millis: 300000
# 连接在池中最大生存的时间
max-evictable-idle-time-millis: 900000
# 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
test-while-idle: true
# 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
test-on-borrow: true
# 是否在归还到池中前进行检验
test-on-return: false
# 检测连接是否有效
validation-query: select 1
# 配置监控统计
webStatFilter:
enabled: true
stat-view-servlet:
enabled: true
# 控制台管理用户名和密码
url-pattern: /druid/*
reset-enable: false
login-username: admin
login-password: 123456
filter:
stat:
enabled: true
# 记录慢SQL
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
dynamic:
primary: mysql
datasource:
mysql:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.93.41.198}:${DB_PORT:3306}/${DB_NAME:rl_mg_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
# username: ${DB_USER:root}
# password: ${DB_PWD:123456}
url: jdbc:log4jdbc:mysql://${DB_HOST:101.37.151.193}:${DB_PORT:53306}/${DB_NAME:rt_mg_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
username: ${DB_USER:root}
password: ${DB_PWD:P@ssW0rd123}
type: com.alibaba.druid.pool.DruidDataSource
oracle:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@172.27.37.66:1521:RTMES
username: ${DB_USER:LMSTELCOM}
password: ${DB_PWD:LMSTELCOM_6463}
type: com.alibaba.druid.pool.DruidDataSource
sqlserver:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://10.93.41.2\WINCC;DatabaseName=马钢_RH
username: ${DB_USER:sa}
password: ${DB_PWD:123}
type: com.alibaba.druid.pool.DruidDataSource
redis:
#数据库索引
database: ${REDIS_DB:15}
host: ${REDIS_HOST:127.0.0.1}
port: ${REDIS_PORT:6379}
password: ${REDIS_PWD:}
#连接超时时间
timeout: 5000
redisson:
config: |
threads: 4
nettyThreads: 4
singleServerConfig:
database: 3
connectionMinimumIdleSize: 8
connectionPoolSize: 8
address: redis://127.0.0.1:6379
idleConnectionTimeout: 10000
timeout: 3000
# 登录相关配置
login:
# 登录缓存
@@ -77,48 +65,23 @@ login:
heigth: 36
# 内容长度
length: 2
# 字体名称,为空则使用默认字体,如遇到线上乱码,设置其他字体即可
# 字体名称,为空则使用默认字体
font-name:
# 字体大小
font-size: 25
#jwt
jwt:
header: Authorization
# 令牌前缀
token-start-with: Bearer
# 必须使用最少88位的Base64对该令牌进行编码
base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
# 令牌过期时间 此处单位/毫秒 默认2小时可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
token-validity-in-seconds: 7200000
# 在线用户key
online-key: online-token-
# 验证码
code-key: code-key-
# token 续期检查时间范围默认30分钟单位默认毫秒在token即将过期的一段时间内用户操作了则给用户的token续期
detect: 1800000
# 续期时间范围,默认 1小时这里单位毫秒
renew: 3600000
#是否允许生成代码生产环境设置为false
generator:
enabled: true
#是否开启 swagger-ui
swagger:
enabled: true
# IP 本地解析
ip:
local-parsing: true
#是否允许生成代码生产环境设置为false
generator:
enabled: false
#如果生产环境要开启swagger需要配置请求地址
#springfox:
# documentation:
# swagger:
# v2:
# host: # 接口域名或外网ip
#是否开启 swagger-ui
swagger:
enabled: false
# 文件存储路径
file:
mac:
@@ -135,7 +98,7 @@ file:
avatarMaxSize: 5
logging:
file:
path: /app/jar/logs
path: C:\log\wms
config: classpath:logback-spring.xml
# Sa-Token配置
@@ -157,3 +120,36 @@ sa-token:
jwt-secret-key: opsjajisdnnca0sdkksdfaaasdfwwq
# token 前缀
token-prefix: Bearer
sso:
# Ticket有效期 (单位: 秒),默认五分钟
ticket-timeout: 300
# 所有允许的授权回调地址
allow-url: "*"
# 是否打开单点注销功能
is-slo: true
# ------- SSO-模式三相关配置 下面的配置在SSO模式三并且 is-slo=true 时打开)
# 是否打开模式三
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: 1
# Redis服务器地址
host: 127.0.0.1
# Redis服务器连接端口
port: 6379
# Redis服务器连接密码默认为空
password:
# 连接超时时间
timeout: 10s
lucene:
index:
path: D:\lucene\index

View File

@@ -1255,3 +1255,4 @@ $
压机产出返给MES的数据
反馈压机产出插入mes数据库失败
插入压机检测失败
包装数据