add: 功能优化

This commit is contained in:
ls
2025-06-09 10:29:26 +08:00
parent 299164fc4a
commit f4dce5ee53
12 changed files with 61 additions and 5 deletions

View File

@@ -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);

View File

@@ -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);

View File

@@ -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 生产区域

View File

@@ -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);

View File

@@ -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

View File

@@ -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) {

View File

@@ -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 配置

View File

@@ -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();

View File

@@ -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("没有可用的烘箱对接位!");

View File

@@ -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("没有可用的烘箱对接位!");

View File

@@ -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);
} }
} }

View File

@@ -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("烘箱没有可以用的对接位!");