add:1、增加任务条件搜索;
2、增加固化出货口校验,按任务类型顺序执行,必须的等固化室出口后才能叫料; 3、增加自动任务锁,天能现场货物吨位较大,避免碰撞风险。
This commit is contained in:
@@ -64,7 +64,11 @@
|
|||||||
<artifactId>dynamic-tp-spring-boot-starter-adapter-webserver</artifactId>
|
<artifactId>dynamic-tp-spring-boot-starter-adapter-webserver</artifactId>
|
||||||
<version>1.1.7</version>
|
<version>1.1.7</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.redisson</groupId>
|
||||||
|
<artifactId>redisson-spring-boot-starter</artifactId>
|
||||||
|
<version>3.16.4</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>spring-jdbc</artifactId>
|
<artifactId>spring-jdbc</artifactId>
|
||||||
|
|||||||
@@ -52,11 +52,13 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
public IPage<SchBaseTask> queryAll(Map whereJson, PageQuery page) {
|
public IPage<SchBaseTask> queryAll(Map whereJson, PageQuery page) {
|
||||||
String task_code = ObjectUtil.isNotEmpty(whereJson.get("task_code")) ? whereJson.get("task_code").toString() : null;
|
String task_code = ObjectUtil.isNotEmpty(whereJson.get("task_code")) ? whereJson.get("task_code").toString() : null;
|
||||||
String vehicle_code = ObjectUtil.isNotEmpty(whereJson.get("vehicle_code")) ? whereJson.get("vehicle_code").toString() : null;
|
String vehicle_code = ObjectUtil.isNotEmpty(whereJson.get("vehicle_code")) ? whereJson.get("vehicle_code").toString() : null;
|
||||||
String point_code = ObjectUtil.isNotEmpty(whereJson.get("point_code")) ? whereJson.get("point_code").toString() : null;
|
String point_code1 = ObjectUtil.isNotEmpty(whereJson.get("point_code1")) ? whereJson.get("point_code1").toString().trim() : null;
|
||||||
|
String point_code2 = ObjectUtil.isNotEmpty(whereJson.get("point_code2")) ? whereJson.get("point_code2").toString().trim() : null;
|
||||||
|
String config_code = ObjectUtil.isNotEmpty(whereJson.get("config_code")) ? whereJson.get("config_code").toString().trim() : null;
|
||||||
String begin_time = ObjectUtil.isNotEmpty(whereJson.get("begin_time")) ? whereJson.get("begin_time").toString() : null;
|
String begin_time = ObjectUtil.isNotEmpty(whereJson.get("begin_time")) ? whereJson.get("begin_time").toString() : null;
|
||||||
String end_time = ObjectUtil.isNotEmpty(whereJson.get("end_time")) ? whereJson.get("end_time").toString() : null;
|
String end_time = ObjectUtil.isNotEmpty(whereJson.get("end_time")) ? whereJson.get("end_time").toString() : null;
|
||||||
String more_task_status = ObjectUtil.isNotEmpty(whereJson.get("more_task_status")) ? whereJson.get("more_task_status").toString() : null;
|
String more_task_status = ObjectUtil.isNotEmpty(whereJson.get("more_task_status")) ? whereJson.get("more_task_status").toString() : null;
|
||||||
List<String> collect = ObjectUtil.isNotEmpty(more_task_status)?Arrays.stream(more_task_status.split(",")).collect(Collectors.toList()):null;
|
List<String> collect = ObjectUtil.isNotEmpty(more_task_status) ? Arrays.stream(more_task_status.split(",")).collect(Collectors.toList()) : null;
|
||||||
String unFinished = null;
|
String unFinished = null;
|
||||||
if (collect != null) {
|
if (collect != null) {
|
||||||
if (collect.contains(TaskStatus.UNFINISHED.getCode())) {
|
if (collect.contains(TaskStatus.UNFINISHED.getCode())) {
|
||||||
@@ -65,17 +67,35 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
|
||||||
lam.eq(ObjectUtil.isNotEmpty(task_code), SchBaseTask::getTask_code, task_code)
|
if (ObjectUtil.isNotEmpty(point_code1) || ObjectUtil.isNotEmpty(point_code2)) {
|
||||||
.eq(ObjectUtil.isNotEmpty(vehicle_code), SchBaseTask::getVehicle_code, vehicle_code)
|
lam.and(r -> {
|
||||||
.eq(ObjectUtil.isNotEmpty(point_code), SchBaseTask::getPoint_code1, point_code)
|
r.eq(ObjectUtil.isNotEmpty(point_code1), SchBaseTask::getPoint_code1, point_code1)
|
||||||
.ge(ObjectUtil.isNotEmpty(begin_time), SchBaseTask::getCreate_time, begin_time)
|
.or(ObjectUtil.isNotEmpty(point_code2), w -> w.eq(SchBaseTask::getPoint_code2, point_code2));
|
||||||
.le(ObjectUtil.isNotEmpty(end_time), SchBaseTask::getCreate_time, end_time)
|
});
|
||||||
.in(ObjectUtil.isNotEmpty(collect), SchBaseTask::getTask_status, collect)
|
}
|
||||||
.le(ObjectUtil.isNotEmpty(unFinished), SchBaseTask::getTask_status, unFinished)
|
if (ObjectUtil.isNotEmpty(vehicle_code)) {
|
||||||
.orderByDesc(SchBaseTask::getUpdate_time);
|
lam.eq(SchBaseTask::getVehicle_code, vehicle_code);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(config_code)) {
|
||||||
|
lam.eq(SchBaseTask::getConfig_code, config_code);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(begin_time)) {
|
||||||
|
lam.ge(SchBaseTask::getCreate_time, begin_time);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(end_time)) {
|
||||||
|
lam.le(SchBaseTask::getCreate_time, end_time);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(collect)) {
|
||||||
|
lam.in(SchBaseTask::getTask_status, collect);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(unFinished)) {
|
||||||
|
lam.le(SchBaseTask::getTask_status, unFinished);
|
||||||
|
}
|
||||||
|
lam.orderByDesc(SchBaseTask::getUpdate_time);
|
||||||
IPage<SchBaseTask> pages = new Page<>(page.getPage() + 1, page.getSize());
|
IPage<SchBaseTask> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||||
schBaseTaskMapper.selectPage(pages, lam);
|
schBaseTaskMapper.selectPage(pages, lam);
|
||||||
return pages;
|
return pages;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import lombok.Getter;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
* @Description:
|
* @Description: 点位状态
|
||||||
* @Date: 2023/5/25
|
* @Date: 2023/5/25
|
||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import lombok.Getter;
|
|||||||
public enum TaskFinishedTypeEnum {
|
public enum TaskFinishedTypeEnum {
|
||||||
|
|
||||||
AUTO_ACS("1", "ACS自动完成"),
|
AUTO_ACS("1", "ACS自动完成"),
|
||||||
MANUAL_PC("2", "PC手完成"),
|
MANUAL_PC("2", "PC手动完成"),
|
||||||
MANUAL_PDA("3", "PDA手持");
|
MANUAL_PDA("3", "PDA手持");
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import cn.hutool.core.util.IdUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.dynamictp.common.util.StringUtil;
|
import org.dromara.dynamictp.common.util.StringUtil;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
@@ -31,17 +32,20 @@ import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
|||||||
import org.nl.wms.sch.task_manage.task.tasks.auto.mapper.AutoMapper;
|
import org.nl.wms.sch.task_manage.task.tasks.auto.mapper.AutoMapper;
|
||||||
import org.nl.wms.util.PointUtils;
|
import org.nl.wms.util.PointUtils;
|
||||||
import org.nl.wms.util.TaskUtils;
|
import org.nl.wms.util.TaskUtils;
|
||||||
|
import org.redisson.api.RLock;
|
||||||
|
import org.redisson.api.RedissonClient;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
* @Description: 固化室出口出库任务
|
* @Description: 固化室满料->货架任务
|
||||||
* @Date: 2023/11/30
|
* @Date: 2023/11/30
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -66,6 +70,8 @@ public class GHCMLTask extends AbstractTask {
|
|||||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPdmBdProductionProcessTrackingService processTrackingService;
|
private IPdmBdProductionProcessTrackingService processTrackingService;
|
||||||
|
@Resource
|
||||||
|
private RedissonClient redissonClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void create() throws BadRequestException {
|
protected void create() throws BadRequestException {
|
||||||
@@ -73,30 +79,43 @@ public class GHCMLTask extends AbstractTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@SneakyThrows
|
||||||
protected void autoCreate() {
|
protected void autoCreate() {
|
||||||
// 自动创建任务
|
RLock lock = redissonClient.getLock(TASK_CONFIG_CODE);
|
||||||
// 寻找固化室满足出库的位置:有货
|
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||||
List<SchBasePoint> ghsExitList = autoMapper.getGHSExitMaterialList();
|
try {
|
||||||
AbstractTask task = taskFactory.getTask(TASK_CONFIG_CODE);
|
if (tryLock) {
|
||||||
ghsExitList.forEach(point -> {
|
// 自动创建任务
|
||||||
try {
|
// 寻找固化室满足出库的位置:有货
|
||||||
JSONObject param = new JSONObject();
|
List<SchBasePoint> ghsExitList = autoMapper.getGHSExitMaterialList();
|
||||||
param.put("config_code", TASK_CONFIG_CODE);
|
AbstractTask task = taskFactory.getTask(TASK_CONFIG_CODE);
|
||||||
param.put("requestNo", "LMS" + IdUtil.simpleUUID());
|
ghsExitList.forEach(point -> {
|
||||||
param.put("device_code", point.getPoint_code());
|
try {
|
||||||
param.put("vehicle_code", point.getVehicle_code());
|
JSONObject param = new JSONObject();
|
||||||
param.put("vehicle_type", point.getVehicle_type());
|
param.put("config_code", TASK_CONFIG_CODE);
|
||||||
param.put("create_mode", GeneralDefinition.AUTO_CREATION);
|
param.put("requestNo", "LMS" + IdUtil.simpleUUID());
|
||||||
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getVehicleGroupInfo(
|
param.put("device_code", point.getPoint_code());
|
||||||
point.getVehicle_code(),
|
param.put("vehicle_code", point.getVehicle_code());
|
||||||
point.getVehicle_type(),
|
param.put("vehicle_type", point.getVehicle_type());
|
||||||
GroupBindMaterialStatusEnum.BOUND.getValue());
|
param.put("create_mode", GeneralDefinition.AUTO_CREATION);
|
||||||
param.put("material_id", groupInfo.getMaterial_id());
|
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getVehicleGroupInfo(
|
||||||
task.apply(param);
|
point.getVehicle_code(),
|
||||||
} catch (Exception e) {
|
point.getVehicle_type(),
|
||||||
log.error("{}创建任务失败{}{}", this.TASK_CONFIG_CODE, e, e.getMessage());
|
GroupBindMaterialStatusEnum.BOUND.getValue());
|
||||||
|
param.put("material_id", groupInfo.getMaterial_id());
|
||||||
|
task.apply(param);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("{}创建任务失败{}{}", this.TASK_CONFIG_CODE, e, e.getMessage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
log.info("GHCMLTask固化室满料->货架任务正在创建被锁住。");
|
||||||
}
|
}
|
||||||
});
|
} finally {
|
||||||
|
if (tryLock) {
|
||||||
|
lock.unlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -6,7 +6,9 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.system.service.notice.ISysNoticeService;
|
import org.nl.system.service.notice.ISysNoticeService;
|
||||||
import org.nl.system.service.param.ISysParamService;
|
import org.nl.system.service.param.ISysParamService;
|
||||||
@@ -30,16 +32,21 @@ import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
|||||||
import org.nl.wms.sch.task_manage.task.tasks.auto.mapper.AutoMapper;
|
import org.nl.wms.sch.task_manage.task.tasks.auto.mapper.AutoMapper;
|
||||||
import org.nl.wms.util.PointUtils;
|
import org.nl.wms.util.PointUtils;
|
||||||
import org.nl.wms.util.TaskUtils;
|
import org.nl.wms.util.TaskUtils;
|
||||||
|
import org.redisson.api.RLock;
|
||||||
|
import org.redisson.api.RedissonClient;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
* @Description: 固化室出口叫料
|
* @Description: 固化室->固化室出口
|
||||||
* @Date: 2023/11/30
|
* @Date: 2023/11/30
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -66,6 +73,8 @@ public class GHCQLTask extends AbstractTask {
|
|||||||
private IPdmBdProductionProcessTrackingService processTrackingService;
|
private IPdmBdProductionProcessTrackingService processTrackingService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private WmsToAcsService wmsToAcsService;
|
private WmsToAcsService wmsToAcsService;
|
||||||
|
@Resource
|
||||||
|
private RedissonClient redissonClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void create() throws BadRequestException {
|
protected void create() throws BadRequestException {
|
||||||
@@ -73,23 +82,50 @@ public class GHCQLTask extends AbstractTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@SneakyThrows
|
||||||
protected void autoCreate() {
|
protected void autoCreate() {
|
||||||
// 自动创建任务
|
RLock lock = redissonClient.getLock(TASK_CONFIG_CODE);
|
||||||
// 寻找出料中,并且出口没有锁住的点位
|
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||||
List<SchBasePoint> ghsExitList = autoMapper.getGHSExitAvailableList();
|
try {
|
||||||
AbstractTask task = taskFactory.getTask(TASK_CONFIG_CODE);
|
if (tryLock) {
|
||||||
ghsExitList.forEach(point -> {
|
// 自动创建任务
|
||||||
try {
|
// 寻找出料中,并且出口没有锁住的点位
|
||||||
JSONObject param = new JSONObject();
|
Set<String> ghsExitList = autoMapper.getGHSExitAvailableList();
|
||||||
param.put("config_code", TASK_CONFIG_CODE);
|
if (ObjectUtils.isEmpty(ghsExitList)) {
|
||||||
param.put("requestNo", "LMS" + IdUtil.simpleUUID());
|
return;
|
||||||
param.put("device_code", point.getPoint_code());
|
}
|
||||||
param.put("create_mode", GeneralDefinition.AUTO_CREATION);
|
//过滤未完成的固化室出库任务的点位
|
||||||
task.apply(param);
|
List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
||||||
}catch (Exception e){
|
.in(SchBaseTask::getPoint_code1, ghsExitList)
|
||||||
log.error("{}创建任务失败{}{}",this.TASK_CONFIG_CODE,e,e.getMessage());
|
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
|
||||||
|
);
|
||||||
|
if (ObjectUtils.isNotEmpty(taskList)) {
|
||||||
|
taskList.stream().map(SchBaseTask::getPoint_code1).forEach(ghsExitList::remove);
|
||||||
|
}
|
||||||
|
if (ObjectUtils.isEmpty(ghsExitList)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
AbstractTask task = taskFactory.getTask(TASK_CONFIG_CODE);
|
||||||
|
ghsExitList.forEach(point -> {
|
||||||
|
try {
|
||||||
|
JSONObject param = new JSONObject();
|
||||||
|
param.put("config_code", TASK_CONFIG_CODE);
|
||||||
|
param.put("requestNo", "LMS" + IdUtil.simpleUUID());
|
||||||
|
param.put("device_code", point);
|
||||||
|
param.put("create_mode", GeneralDefinition.AUTO_CREATION);
|
||||||
|
task.apply(param);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("{}创建任务失败{}{}", this.TASK_CONFIG_CODE, e, e.getMessage());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
log.info("GHCQLTask固化室->固化室出口任务正在创建被锁住。");
|
||||||
}
|
}
|
||||||
});
|
} finally {
|
||||||
|
if (tryLock) {
|
||||||
|
lock.unlock();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.nl.wms.sch.task_manage.task.tasks.auto.mapper;
|
|||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author: lyd
|
* @Author: lyd
|
||||||
@@ -11,7 +12,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface AutoMapper {
|
public interface AutoMapper {
|
||||||
|
|
||||||
List<SchBasePoint> getGHSExitAvailableList();
|
Set<String> getGHSExitAvailableList();
|
||||||
|
|
||||||
List<SchBasePoint> getGHSExitMaterialList();
|
List<SchBasePoint> getGHSExitMaterialList();
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.nl.wms.sch.task_manage.task.tasks.auto.mapper.AutoMapper">
|
<mapper namespace="org.nl.wms.sch.task_manage.task.tasks.auto.mapper.AutoMapper">
|
||||||
|
|
||||||
<select id="getGHSExitAvailableList" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
<select id="getGHSExitAvailableList" resultType="java.lang.String">
|
||||||
SELECT
|
SELECT
|
||||||
p.*
|
p.point_code
|
||||||
FROM
|
FROM
|
||||||
`sch_base_point` p
|
`sch_base_point` p
|
||||||
WHERE
|
WHERE
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
ORDER BY
|
ORDER BY
|
||||||
p.row_num,
|
p.row_num,
|
||||||
p.col_num
|
p.col_num
|
||||||
limit 1
|
limit 10
|
||||||
</select>
|
</select>
|
||||||
<select id="getGHSExitMaterialList" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
<select id="getGHSExitMaterialList" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
||||||
SELECT
|
SELECT
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
FROM
|
FROM
|
||||||
`sch_base_point` p
|
`sch_base_point` p
|
||||||
WHERE p.region_code = 'GH' AND p.point_type = '3' AND p.point_status = '2' and (p.ing_task_code = '' OR p.ing_task_code IS NULL)
|
WHERE p.region_code = 'GH' AND p.point_type = '3' AND p.point_status = '2' and (p.ing_task_code = '' OR p.ing_task_code IS NULL)
|
||||||
ORDER BY p.row_num, p.col_num limit 1
|
ORDER BY p.row_num, p.col_num limit 10
|
||||||
</select>
|
</select>
|
||||||
<delete id="deleteNotice">
|
<delete id="deleteNotice">
|
||||||
DELETE FROM sys_notice;
|
DELETE FROM sys_notice;
|
||||||
|
|||||||
@@ -0,0 +1,174 @@
|
|||||||
|
server:
|
||||||
|
port: 8020
|
||||||
|
#配置数据源
|
||||||
|
spring:
|
||||||
|
datasource:
|
||||||
|
druid:
|
||||||
|
db-type: com.alibaba.druid.pool.DruidDataSourceQ
|
||||||
|
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
|
||||||
|
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true&useOldAliasMetadataBehavior=true
|
||||||
|
# url: jdbc:log4jdbc:mysql://${DB_HOST:47.111.78.178}:${DB_PORT:3306}/${DB_NAME:stand_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
|
||||||
|
username: ${DB_USER:root}
|
||||||
|
password: ${DB_PWD:123456}
|
||||||
|
# password: ${DB_PWD:P@ssw0rd}
|
||||||
|
# 初始连接数
|
||||||
|
initial-size: 5
|
||||||
|
# 最小连接数
|
||||||
|
min-idle: 15
|
||||||
|
# 最大连接数
|
||||||
|
max-active: 30
|
||||||
|
# 超时时间(以秒数为单位)
|
||||||
|
remove-abandoned-timeout: 180
|
||||||
|
# 获取连接超时时间
|
||||||
|
max-wait: 3000
|
||||||
|
# 连接有效性检测时间
|
||||||
|
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
|
||||||
|
filter:
|
||||||
|
stat:
|
||||||
|
enabled: true
|
||||||
|
# 记录慢SQL
|
||||||
|
log-slow-sql: true
|
||||||
|
slow-sql-millis: 1000
|
||||||
|
merge-sql: true
|
||||||
|
wall:
|
||||||
|
config:
|
||||||
|
multi-statement-allow: true
|
||||||
|
redis:
|
||||||
|
#数据库索引
|
||||||
|
database: ${REDIS_DB:2}
|
||||||
|
# host: ${REDIS_HOST:10.44.101.112}
|
||||||
|
host: ${REDIS_HOST:10.44.101.19}
|
||||||
|
port: ${REDIS_PORT:6379}
|
||||||
|
password: ${REDIS_PWD:}
|
||||||
|
redisson:
|
||||||
|
config: |
|
||||||
|
threads: 4
|
||||||
|
nettyThreads: 4
|
||||||
|
singleServerConfig:
|
||||||
|
connectionMinimumIdleSize: 8
|
||||||
|
connectionPoolSize: 8
|
||||||
|
address: redis://10.44.101.19:6379
|
||||||
|
idleConnectionTimeout: 10000
|
||||||
|
timeout: 3000
|
||||||
|
|
||||||
|
# 登录相关配置
|
||||||
|
login:
|
||||||
|
# 登录缓存
|
||||||
|
cache-enable: true
|
||||||
|
# 是否限制单用户登录
|
||||||
|
single-login: false
|
||||||
|
# 验证码
|
||||||
|
login-code:
|
||||||
|
# 验证码类型配置 查看 LoginProperties 类
|
||||||
|
code-type: arithmetic
|
||||||
|
# 登录图形验证码有效时间/分钟
|
||||||
|
expiration: 2
|
||||||
|
# 验证码高度
|
||||||
|
width: 111
|
||||||
|
# 验证码宽度
|
||||||
|
heigth: 36
|
||||||
|
# 内容长度
|
||||||
|
length: 2
|
||||||
|
# 字体名称,为空则使用默认字体
|
||||||
|
font-name:
|
||||||
|
# 字体大小
|
||||||
|
font-size: 25
|
||||||
|
|
||||||
|
#是否允许生成代码,生产环境设置为false
|
||||||
|
generator:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
#是否开启 swagger-ui
|
||||||
|
swagger:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
# IP 本地解析
|
||||||
|
ip:
|
||||||
|
local-parsing: true
|
||||||
|
|
||||||
|
# 文件存储路径
|
||||||
|
file:
|
||||||
|
mac:
|
||||||
|
path: ~/file/
|
||||||
|
avatar: ~/avatar/
|
||||||
|
linux:
|
||||||
|
path: /home/eladmin/file/
|
||||||
|
avatar: /home/eladmin/avatar/
|
||||||
|
windows:
|
||||||
|
path: C:\eladmin\file\
|
||||||
|
avatar: C:\eladmin\avatar\
|
||||||
|
# 文件大小 /M
|
||||||
|
maxSize: 100
|
||||||
|
avatarMaxSize: 5
|
||||||
|
logging:
|
||||||
|
file:
|
||||||
|
path: C:\log\wms
|
||||||
|
config: classpath:logback-spring.xml
|
||||||
|
|
||||||
|
# Sa-Token配置
|
||||||
|
sa-token:
|
||||||
|
# token 名称 (同时也是cookie名称)
|
||||||
|
token-name: Authorization
|
||||||
|
# token 有效期,单位s 默认30天, -1代表永不过期
|
||||||
|
timeout: 2592000
|
||||||
|
# token 临时有效期 (指定时间内无操作就视为token过期) 单位: 秒
|
||||||
|
activity-timeout: -1
|
||||||
|
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
|
||||||
|
is-concurrent: true
|
||||||
|
# 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
|
||||||
|
is-share: false
|
||||||
|
# token风格
|
||||||
|
token-style: random-128
|
||||||
|
# 是否输出操作日志
|
||||||
|
is-log: false
|
||||||
|
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: 2
|
||||||
|
# Redis服务器地址
|
||||||
|
host: 10.44.101.19
|
||||||
|
# Redis服务器连接端口
|
||||||
|
port: 6379
|
||||||
|
# Redis服务器连接密码(默认为空)
|
||||||
|
password:
|
||||||
|
# 连接超时时间
|
||||||
|
timeout: 10s
|
||||||
@@ -51,7 +51,16 @@ spring:
|
|||||||
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:}
|
||||||
|
redisson:
|
||||||
|
config: |
|
||||||
|
threads: 4
|
||||||
|
nettyThreads: 4
|
||||||
|
singleServerConfig:
|
||||||
|
connectionMinimumIdleSize: 8
|
||||||
|
connectionPoolSize: 8
|
||||||
|
address: redis://127.0.0.1:6379
|
||||||
|
idleConnectionTimeout: 10000
|
||||||
|
timeout: 3000
|
||||||
# 登录相关配置
|
# 登录相关配置
|
||||||
login:
|
login:
|
||||||
# 登录缓存
|
# 登录缓存
|
||||||
|
|||||||
@@ -51,6 +51,16 @@ spring:
|
|||||||
host: ${REDIS_HOST:10.44.101.19}
|
host: ${REDIS_HOST:10.44.101.19}
|
||||||
port: ${REDIS_PORT:6379}
|
port: ${REDIS_PORT:6379}
|
||||||
password: ${REDIS_PWD:}
|
password: ${REDIS_PWD:}
|
||||||
|
redisson:
|
||||||
|
config: |
|
||||||
|
threads: 4
|
||||||
|
nettyThreads: 4
|
||||||
|
singleServerConfig:
|
||||||
|
connectionMinimumIdleSize: 8
|
||||||
|
connectionPoolSize: 8
|
||||||
|
address: redis://10.44.101.19:6379
|
||||||
|
idleConnectionTimeout: 10000
|
||||||
|
timeout: 3000
|
||||||
|
|
||||||
# 登录相关配置
|
# 登录相关配置
|
||||||
login:
|
login:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ spring:
|
|||||||
freemarker:
|
freemarker:
|
||||||
check-template-location: false
|
check-template-location: false
|
||||||
profiles:
|
profiles:
|
||||||
active: dev
|
active: prod
|
||||||
jackson:
|
jackson:
|
||||||
time-zone: GMT+8
|
time-zone: GMT+8
|
||||||
data:
|
data:
|
||||||
@@ -112,6 +112,6 @@ mybatis-plus:
|
|||||||
id-type: INPUT
|
id-type: INPUT
|
||||||
lucene:
|
lucene:
|
||||||
index:
|
index:
|
||||||
path: D:\lucene\index
|
path: D:\lucene2\index
|
||||||
tlog:
|
tlog:
|
||||||
enable-invoke-time-print: true
|
enable-invoke-time-print: true
|
||||||
|
|||||||
Reference in New Issue
Block a user