add: 功能优化
This commit is contained in:
@@ -119,6 +119,13 @@ public class SlitterPdaServiceImpl implements SlitterPdaService {
|
||||
if (isTask) {
|
||||
throw new BadRequestException("点位[" + pointCode + "、" + zcPoint + "]已经创建过任务!");
|
||||
}
|
||||
//校验分切上料任务数
|
||||
Boolean isTask2 = taskService.checkHaveTaskByPointsType();
|
||||
// 判断是否呼叫过任务
|
||||
if (isTask2) {
|
||||
throw new BadRequestException("分切上料最大任务数为2条");
|
||||
}
|
||||
|
||||
|
||||
SchBasePoint zcPointObj = pointService.getById(zcPoint);
|
||||
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> getHotNotTaskPoint2(String area, String region, String pointType, String pointStatus);
|
||||
|
||||
/**
|
||||
* 从点位查找以下条件可用的没任务点位
|
||||
* @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> getHotNotTaskPoint2(String area, String region, String pointType, String pointStatus);
|
||||
|
||||
|
||||
List<SchBasePoint> getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus,
|
||||
String vehicleType, String vehicleCode);
|
||||
|
||||
|
||||
@@ -39,6 +39,20 @@
|
||||
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))
|
||||
</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 p.*
|
||||
FROM sch_base_point p
|
||||
|
||||
@@ -229,6 +229,11 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
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
|
||||
public List<SchBasePoint> getAllBusinessNotTaskPoint(String area, String region, String pointType,
|
||||
String pointStatus, String vehicleType, String vehicleCode) {
|
||||
|
||||
@@ -162,6 +162,13 @@ public interface ISchBaseTaskService extends IService<SchBaseTask> {
|
||||
*/
|
||||
Boolean checkHaveTaskByPoints(List<String> collect);
|
||||
|
||||
/**
|
||||
* 判断是否存在任务
|
||||
*
|
||||
* @return /
|
||||
*/
|
||||
Boolean checkHaveTaskByPointsType();
|
||||
|
||||
/**
|
||||
* 获取同配置、状态的任务
|
||||
* @param configCode 配置
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -287,6 +288,17 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
||||
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
|
||||
public List<SchBaseTask> getTaskByConfigAndStatus(String configCode, String status) {
|
||||
LambdaQueryWrapper<SchBaseTask> lam = new QueryWrapper<SchBaseTask>().lambda();
|
||||
|
||||
@@ -50,7 +50,7 @@ public class InHotDockingTrussTask extends AbstractTask {
|
||||
public void createCompletion(SchBaseTask task) {
|
||||
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);
|
||||
if (endPoints.size() == 0) {
|
||||
throw new BadRequestException("没有可用的烘箱对接位!");
|
||||
|
||||
@@ -55,7 +55,7 @@ public class OutHotToDockingTrussTask extends AbstractTask {
|
||||
public void createCompletion(SchBaseTask task) {
|
||||
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);
|
||||
if (endPoints.size() == 0) {
|
||||
throw new BadRequestException("没有可用的烘箱对接位!");
|
||||
|
||||
@@ -165,6 +165,12 @@ public class SlitterUpAGVTask extends AbstractTask {
|
||||
.set(SchBaseTask::getUpdate_time, DateUtil.now())
|
||||
.eq(SchBaseTask::getTask_code, task.getTask_code());
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ public class SlitterUpTrussTask extends AbstractTask {
|
||||
JSONObject requestObj = JSONObject.parseObject(requestParam);
|
||||
String pointCode = requestObj.getString("zc_point");
|
||||
// 终点为出口
|
||||
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint("A1", HX_REGION,
|
||||
List<SchBasePoint> endPoints = pointService.getHotNotTaskPoint2("A1", HX_REGION,
|
||||
"5", "1");
|
||||
if (endPoints.size() == 0) {
|
||||
throw new BadRequestException("烘箱没有可以用的对接位!");
|
||||
|
||||
Reference in New Issue
Block a user