add: 功能优化
This commit is contained in:
@@ -1067,7 +1067,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
//收卷锟行架
|
//收卷锟行架
|
||||||
if (linkDevice.getDeviceDriver() instanceof RollUpRollerManipulatorDeviceDriver) {
|
if (linkDevice.getDeviceDriver() instanceof RollUpRollerManipulatorDeviceDriver) {
|
||||||
rollUpRollerManipulatorDeviceDriver = (RollUpRollerManipulatorDeviceDriver) linkDevice.getDeviceDriver();
|
rollUpRollerManipulatorDeviceDriver = (RollUpRollerManipulatorDeviceDriver) linkDevice.getDeviceDriver();
|
||||||
if ((manipulatorAgvStationDeviceDriver.getAction() == 6 && manipulatorAgvStationDeviceDriver.getMove() == 1 && rollUpRollerManipulatorDeviceDriver.getMode() != 3 && rollUpRollerManipulatorDeviceDriver.getError() == 0 && rollUpRollerManipulatorDeviceDriver.getError2()
|
if ((manipulatorAgvStationDeviceDriver.getAction() == 6 && manipulatorAgvStationDeviceDriver.getMove() == 1 && rollUpRollerManipulatorDeviceDriver.getError() == 0 && rollUpRollerManipulatorDeviceDriver.getError2()
|
||||||
== 0)) {
|
== 0)) {
|
||||||
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0, 0, 0);
|
||||||
LuceneLogDto logDto = LuceneLogDto.builder()
|
LuceneLogDto logDto = LuceneLogDto.builder()
|
||||||
@@ -1150,7 +1150,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic
|
|||||||
//收卷锟行架
|
//收卷锟行架
|
||||||
if (linkDevice.getDeviceDriver() instanceof RollUpRollerManipulatorDeviceDriver) {
|
if (linkDevice.getDeviceDriver() instanceof RollUpRollerManipulatorDeviceDriver) {
|
||||||
rollUpRollerManipulatorDeviceDriver = (RollUpRollerManipulatorDeviceDriver) linkDevice.getDeviceDriver();
|
rollUpRollerManipulatorDeviceDriver = (RollUpRollerManipulatorDeviceDriver) linkDevice.getDeviceDriver();
|
||||||
if ((manipulatorAgvStationDeviceDriver.getAction() == 6 && rollUpRollerManipulatorDeviceDriver.getMode() != 3 && rollUpRollerManipulatorDeviceDriver.getError() == 0 && rollUpRollerManipulatorDeviceDriver.getTask() == 0 && rollUpRollerManipulatorDeviceDriver.getError2() == 0 && manipulatorAgvStationDeviceDriver.getMove() == 0)) {
|
if ((manipulatorAgvStationDeviceDriver.getAction() == 6 && rollUpRollerManipulatorDeviceDriver.getError() == 0 && rollUpRollerManipulatorDeviceDriver.getError2() == 0 && manipulatorAgvStationDeviceDriver.getMove() == 0)) {
|
||||||
// 查询缓存架点位状态
|
// 查询缓存架点位状态
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("device_code", device_code);
|
param.put("device_code", device_code);
|
||||||
|
|||||||
@@ -119,6 +119,13 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
|
|||||||
if (isTask) {
|
if (isTask) {
|
||||||
throw new BadRequestException("点位[" + pointCode + "、" + zcPoint + "]已经创建过任务!");
|
throw new BadRequestException("点位[" + pointCode + "、" + zcPoint + "]已经创建过任务!");
|
||||||
}
|
}
|
||||||
|
//校验分切上料任务数
|
||||||
|
Boolean isTask2 = taskService.checkHaveTaskByPointsType();
|
||||||
|
// 判断是否呼叫过任务
|
||||||
|
if (isTask2) {
|
||||||
|
throw new BadRequestException("分切上料最大任务数为2条");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
SchBasePoint zcPointObj = pointService.getById(zcPoint);
|
SchBasePoint zcPointObj = pointService.getById(zcPoint);
|
||||||
StIvtHotpointivt hotpointivt = hotpointivtService.getPointByCode(zcPoint, false);
|
StIvtHotpointivt hotpointivt = hotpointivtService.getPointByCode(zcPoint, false);
|
||||||
|
|||||||
@@ -99,6 +99,8 @@ public interface ISchBasePointService extends IService<SchBasePoint> {
|
|||||||
*/
|
*/
|
||||||
List<SchBasePoint> getHotNotTaskPoint(String area, String region, String pointType, String pointStatus);
|
List<SchBasePoint> getHotNotTaskPoint(String area, String region, String pointType, String pointStatus);
|
||||||
|
|
||||||
|
List<SchBasePoint> getHotNotTaskPoint2(String area, String region, String pointType, String pointStatus);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从点位查找以下条件可用的没任务点位
|
* 从点位查找以下条件可用的没任务点位
|
||||||
* @param area 生产区域
|
* @param area 生产区域
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
|
|||||||
*/
|
*/
|
||||||
List<SchBasePoint> getHotNotTaskPoint(String area, String region, String pointType, String pointStatus);
|
List<SchBasePoint> getHotNotTaskPoint(String area, String region, String pointType, String pointStatus);
|
||||||
|
|
||||||
|
List<SchBasePoint> getHotNotTaskPoint2(String area, String region, String pointType, String pointStatus);
|
||||||
|
|
||||||
|
|
||||||
List<SchBasePoint> getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus,
|
List<SchBasePoint> getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus,
|
||||||
String vehicleType, String vehicleCode);
|
String vehicleType, String vehicleCode);
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,20 @@
|
|||||||
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[<]]> '07'
|
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[<]]> '07'
|
||||||
AND (t.point_code1 = p.point_code OR t.point_code2 = p.point_code OR t.point_code4 = p.point_code))
|
AND (t.point_code1 = p.point_code OR t.point_code2 = p.point_code OR t.point_code4 = p.point_code))
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getHotNotTaskPoint2" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
||||||
|
SELECT p.*
|
||||||
|
FROM sch_base_point p
|
||||||
|
WHERE p.product_area = #{area}
|
||||||
|
AND p.region_code = #{region}
|
||||||
|
<if test="pointType != null">
|
||||||
|
AND p.point_type = #{pointType}
|
||||||
|
</if>
|
||||||
|
AND p.point_status = #{pointStatus}
|
||||||
|
AND p.is_used = TRUE
|
||||||
|
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[<]]> '071' and t.task_status <![CDATA[<>]]> '07'
|
||||||
|
AND (t.point_code1 = p.point_code OR t.point_code2 = p.point_code OR t.point_code4 = p.point_code))
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="getAllBusinessNotTaskPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
<select id="getAllBusinessNotTaskPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
||||||
SELECT p.*
|
SELECT p.*
|
||||||
FROM sch_base_point p
|
FROM sch_base_point p
|
||||||
|
|||||||
@@ -229,6 +229,11 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
return pointMapper.getHotNotTaskPoint(area, region, pointType, pointStatus);
|
return pointMapper.getHotNotTaskPoint(area, region, pointType, pointStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SchBasePoint> getHotNotTaskPoint2(String area, String region, String pointType, String pointStatus) {
|
||||||
|
return pointMapper.getHotNotTaskPoint2(area, region, pointType, pointStatus);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SchBasePoint> getAllBusinessNotTaskPoint(String area, String region, String pointType,
|
public List<SchBasePoint> getAllBusinessNotTaskPoint(String area, String region, String pointType,
|
||||||
String pointStatus, String vehicleType, String vehicleCode) {
|
String pointStatus, String vehicleType, String vehicleCode) {
|
||||||
|
|||||||
@@ -162,6 +162,13 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
|
|||||||
*/
|
*/
|
||||||
Boolean checkHaveTaskByPoints(List<String> collect);
|
Boolean checkHaveTaskByPoints(List<String> collect);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断是否存在任务
|
||||||
|
*
|
||||||
|
* @return /
|
||||||
|
*/
|
||||||
|
Boolean checkHaveTaskByPointsType();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取同配置、状态的任务
|
* 获取同配置、状态的任务
|
||||||
* @param configCode 配置
|
* @param configCode 配置
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
|
|||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
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;
|
||||||
@@ -287,6 +288,17 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
return list.size() > 0;
|
return list.size() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean checkHaveTaskByPointsType() {
|
||||||
|
|
||||||
|
LambdaQueryWrapper<SchBaseTask> lam = new QueryWrapper<SchBaseTask>().lambda();
|
||||||
|
lam.eq(SchBaseTask::getIs_delete, "0")
|
||||||
|
.lt(SchBaseTask::getTask_status, TaskStatus.FINISHED.getCode())
|
||||||
|
.eq(SchBaseTask::getConfig_code,"SlitterUpTrussTask");
|
||||||
|
List<SchBaseTask> list = list(lam);
|
||||||
|
return list.size() >= 2;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SchBaseTask> getTaskByConfigAndStatus(String configCode, String status) {
|
public List<SchBaseTask> getTaskByConfigAndStatus(String configCode, String status) {
|
||||||
LambdaQueryWrapper<SchBaseTask> lam = new QueryWrapper<SchBaseTask>().lambda();
|
LambdaQueryWrapper<SchBaseTask> lam = new QueryWrapper<SchBaseTask>().lambda();
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class InHotDockingTrussTask extends AbstractTask {
|
|||||||
public void createCompletion(SchBaseTask task) {
|
public void createCompletion(SchBaseTask task) {
|
||||||
TaskUtils.taskLock(RegionConstant.REGION_A1_HXZC + "5", () -> {
|
TaskUtils.taskLock(RegionConstant.REGION_A1_HXZC + "5", () -> {
|
||||||
// 找个对接位(状态是空的,没有任务的)
|
// 找个对接位(状态是空的,没有任务的)
|
||||||
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint(RegionConstant.A1, RegionConstant.REGION_A1_HXZC,
|
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint2(RegionConstant.A1, RegionConstant.REGION_A1_HXZC,
|
||||||
POINT_TYPE_HOT_DOCKING, POINT_STATUS_EMPTY);
|
POINT_TYPE_HOT_DOCKING, POINT_STATUS_EMPTY);
|
||||||
if (endPoints.size() == 0) {
|
if (endPoints.size() == 0) {
|
||||||
throw new BadRequestException("没有可用的烘箱对接位!");
|
throw new BadRequestException("没有可用的烘箱对接位!");
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public class OutHotToDockingTrussTask extends AbstractTask {
|
|||||||
public void createCompletion(SchBaseTask task) {
|
public void createCompletion(SchBaseTask task) {
|
||||||
TaskUtils.taskLock(REGION_A1_HXZC + "5", () -> {
|
TaskUtils.taskLock(REGION_A1_HXZC + "5", () -> {
|
||||||
// 从烘箱对接位中找一个空位
|
// 从烘箱对接位中找一个空位
|
||||||
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint(RegionConstant.A1, RegionConstant.REGION_A1_HXZC,
|
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint2(RegionConstant.A1, RegionConstant.REGION_A1_HXZC,
|
||||||
POINT_TYPE_HOT_DOCKING, POINT_STATUS_EMPTY);
|
POINT_TYPE_HOT_DOCKING, POINT_STATUS_EMPTY);
|
||||||
if (endPoints.size() == 0) {
|
if (endPoints.size() == 0) {
|
||||||
throw new BadRequestException("没有可用的烘箱对接位!");
|
throw new BadRequestException("没有可用的烘箱对接位!");
|
||||||
|
|||||||
@@ -165,6 +165,12 @@ public class SlitterUpAGVTask extends AbstractTask {
|
|||||||
.set(SchBaseTask::getUpdate_time, DateUtil.now())
|
.set(SchBaseTask::getUpdate_time, DateUtil.now())
|
||||||
.eq(SchBaseTask::getTask_code, task.getTask_code());
|
.eq(SchBaseTask::getTask_code, task.getTask_code());
|
||||||
boolean update = taskService.update(lam);
|
boolean update = taskService.update(lam);
|
||||||
|
String pointCode1 = task.getPoint_code1();
|
||||||
|
SchBasePoint point1 = pointService.query().eq("point_code", pointCode1).one();
|
||||||
|
point1.setPoint_status("1");
|
||||||
|
pointService.updateById(point1);
|
||||||
|
|
||||||
|
|
||||||
log.info("任务[{}]取货完成执行{}", task.getTask_code(), update);
|
log.info("任务[{}]取货完成执行{}", task.getTask_code(), update);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public class SlitterUpTrussTask extends AbstractTask {
|
|||||||
JSONObject requestObj = JSONObject.parseObject(requestParam);
|
JSONObject requestObj = JSONObject.parseObject(requestParam);
|
||||||
String pointCode = requestObj.getString("zc_point");
|
String pointCode = requestObj.getString("zc_point");
|
||||||
// 终点为出口
|
// 终点为出口
|
||||||
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint("A1", HX_REGION,
|
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint2("A1", HX_REGION,
|
||||||
"5", "1");
|
"5", "1");
|
||||||
if (endPoints.size() == 0) {
|
if (endPoints.size() == 0) {
|
||||||
throw new BadRequestException("烘箱没有可以用的对接位!");
|
throw new BadRequestException("烘箱没有可以用的对接位!");
|
||||||
|
|||||||
Reference in New Issue
Block a user