rev:现场测试优化
This commit is contained in:
@@ -114,6 +114,8 @@ public class WebSocketServer {
|
|||||||
item.sendMessage(message);
|
item.sendMessage(message);
|
||||||
}else if(item.sid.equals(sid)){
|
}else if(item.sid.equals(sid)){
|
||||||
item.sendMessage(message);
|
item.sendMessage(message);
|
||||||
|
}else {
|
||||||
|
item.sendMessage(message);
|
||||||
}
|
}
|
||||||
} catch (IOException ignored) { }
|
} catch (IOException ignored) { }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import javax.annotation.PostConstruct;
|
|||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
@@ -154,12 +155,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
SchBasePoint newPoint = null;
|
SchBasePoint newPoint = null;
|
||||||
String taskPointType = null;
|
String taskPointType = null;
|
||||||
//执行中的任务
|
//执行中的任务
|
||||||
|
List<String> status = Arrays.asList(TaskStatus.EXECUTING.getCode(), TaskStatusEnum.PICK_UP_COMPLETED.getCode());
|
||||||
SchBaseTask baseTask = taskService.getOne(new LambdaQueryWrapper<SchBaseTask>()
|
SchBaseTask baseTask = taskService.getOne(new LambdaQueryWrapper<SchBaseTask>()
|
||||||
.eq(SchBaseTask::getTask_code, taskCode)
|
.eq(SchBaseTask::getTask_code, taskCode)
|
||||||
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code("否"))
|
.eq(SchBaseTask::getIs_delete, PackageInfoIvtEnum.IS_SEND.code("否"))
|
||||||
.eq(SchBaseTask::getTask_status, TaskStatus.EXECUTING.getCode())
|
.in(SchBaseTask::getTask_status, status));
|
||||||
.or()
|
|
||||||
.eq(SchBaseTask::getTask_status, TaskStatusEnum.PICK_UP_COMPLETED.getCode()));
|
|
||||||
if (baseTask == null) {
|
if (baseTask == null) {
|
||||||
throw new BadRequestException("该任务未执行或不存在!");
|
throw new BadRequestException("该任务未执行或不存在!");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -224,6 +224,10 @@ public class PdaTaskServiceImpl implements PdaTaskService {
|
|||||||
if (ObjectUtil.isEmpty(point)) {
|
if (ObjectUtil.isEmpty(point)) {
|
||||||
throw new BadRequestException("点位" + point_code + "不存在!");
|
throw new BadRequestException("点位" + point_code + "不存在!");
|
||||||
}
|
}
|
||||||
|
List<SchBaseTask> list = taskService.findTaskByPoint(point_code);
|
||||||
|
if (list.size()>0){
|
||||||
|
throw new BadRequestException("点位" + point_code + "已经存在agv任务!");
|
||||||
|
}
|
||||||
JSONObject jo = data.getJSONObject(0);
|
JSONObject jo = data.getJSONObject(0);
|
||||||
String material_code = jo.getString("material_code");
|
String material_code = jo.getString("material_code");
|
||||||
MdMeMaterialbase mdMeMaterialbase = mdMeMaterialbaseMapper.selectOne(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_code, material_code));
|
MdMeMaterialbase mdMeMaterialbase = mdMeMaterialbaseMapper.selectOne(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_code, material_code));
|
||||||
@@ -419,7 +423,13 @@ public class PdaTaskServiceImpl implements PdaTaskService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONObject getPointnByRegion(JSONObject whereJson) {
|
public JSONObject getPointnByRegion(JSONObject whereJson) {
|
||||||
List<SchBasePoint> list = pointMapper.selectList(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getRegion_code, whereJson.getString("region_code")));
|
String region_code = whereJson.getString("region_code");
|
||||||
|
LambdaQueryWrapper<SchBasePoint> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(SchBasePoint::getRegion_code, whereJson.getString("region_code"));
|
||||||
|
if ("L1".equals(region_code)||"L2".equals(region_code)){
|
||||||
|
wrapper.eq(SchBasePoint::getPoint_type, "4");
|
||||||
|
}
|
||||||
|
List<SchBasePoint> list = pointMapper.selectList(wrapper);
|
||||||
List<JSONObject> arr = new ArrayList<>();
|
List<JSONObject> arr = new ArrayList<>();
|
||||||
JSONObject ret = new JSONObject();
|
JSONObject ret = new JSONObject();
|
||||||
if (ObjectUtil.isNotEmpty(list)) {
|
if (ObjectUtil.isNotEmpty(list)) {
|
||||||
|
|||||||
@@ -52,4 +52,6 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
|
|||||||
List<SchBasePoint> selectSameRowPoints(@Param("point") SchBasePoint point);
|
List<SchBasePoint> selectSameRowPoints(@Param("point") SchBasePoint point);
|
||||||
|
|
||||||
List<SchBasePoint> getNewEndBasePoints(@Param("point_code2") String point_code2, @Param("region_code") String region_code);
|
List<SchBasePoint> getNewEndBasePoints(@Param("point_code2") String point_code2, @Param("region_code") String region_code);
|
||||||
|
|
||||||
|
List<SchBasePoint> getSamePoints(@Param("regionCode") String regionCode, @Param("material_code") String material_code);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -150,6 +150,7 @@
|
|||||||
AND is_delete = '0'
|
AND is_delete = '0'
|
||||||
)
|
)
|
||||||
AND point_type = '1'
|
AND point_type = '1'
|
||||||
|
AND point_status = '1'
|
||||||
AND is_used = 1
|
AND is_used = 1
|
||||||
ORDER BY col_num DESC
|
ORDER BY col_num DESC
|
||||||
</select>
|
</select>
|
||||||
@@ -209,6 +210,8 @@
|
|||||||
OR point_code3 = p.point_code
|
OR point_code3 = p.point_code
|
||||||
OR point_code4 = p.point_code
|
OR point_code4 = p.point_code
|
||||||
)
|
)
|
||||||
|
AND task_status <![CDATA[<]]> '5'
|
||||||
|
AND is_delete = '0'
|
||||||
)
|
)
|
||||||
AND p.point_code != #{point.point_code}
|
AND p.point_code != #{point.point_code}
|
||||||
AND p.row_num = #{point.row_num}
|
AND p.row_num = #{point.row_num}
|
||||||
@@ -225,4 +228,26 @@
|
|||||||
AND point_status = "1"
|
AND point_status = "1"
|
||||||
ORDER BY in_order_seq asc
|
ORDER BY in_order_seq asc
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getSamePoints" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
||||||
|
SELECT *
|
||||||
|
FROM `sch_base_point` p
|
||||||
|
LEFT JOIN md_pb_groupplate plate ON plate.storagevehicle_code = p.storagevehicle_code
|
||||||
|
WHERE p.region_code = #{regionCode}
|
||||||
|
AND 0 = (
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM sch_base_task
|
||||||
|
WHERE (point_code1 = p.point_code
|
||||||
|
OR point_code2 = p.point_code
|
||||||
|
OR point_code3 = p.point_code
|
||||||
|
OR point_code4 = p.point_code
|
||||||
|
)
|
||||||
|
AND task_status <![CDATA[<]]> '5'
|
||||||
|
AND is_delete = '0'
|
||||||
|
)
|
||||||
|
AND plate.material_code = #{material_code}
|
||||||
|
AND p.point_status = '2'
|
||||||
|
AND p.is_used = 1
|
||||||
|
AND p.point_type = 1
|
||||||
|
order by in_order_seq asc
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -208,12 +208,13 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SchBasePoint> getSamePoints(String regionCode, String material_code) {
|
public List<SchBasePoint> getSamePoints(String regionCode, String material_code) {
|
||||||
LambdaQueryWrapper<SchBasePoint> queryWrapper = new LambdaQueryWrapper<SchBasePoint>()
|
// LambdaQueryWrapper<SchBasePoint> queryWrapper = new LambdaQueryWrapper<SchBasePoint>()
|
||||||
.eq(SchBasePoint::getRegion_code, regionCode)
|
// .eq(SchBasePoint::getRegion_code, regionCode)
|
||||||
.eq(SchBasePoint::getPoint_status, "2")
|
// .eq(SchBasePoint::getPoint_status, "2")
|
||||||
.eq(SchBasePoint::getMaterial_code, material_code)
|
// .eq(SchBasePoint::getMaterial_code, material_code)
|
||||||
.orderByAsc(SchBasePoint::getIn_order_seq);
|
// .orderByAsc(SchBasePoint::getIn_order_seq);
|
||||||
List<SchBasePoint> list = pointMapper.selectList(queryWrapper);
|
// List<SchBasePoint> list = pointMapper.selectList(queryWrapper);
|
||||||
|
List<SchBasePoint> list = pointMapper.getSamePoints(regionCode,material_code);
|
||||||
if (CollUtil.isNotEmpty(list)){
|
if (CollUtil.isNotEmpty(list)){
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.wms.ext.acs.service.dto.to.BaseRequest;
|
import org.nl.wms.ext.acs.service.dto.to.BaseRequest;
|
||||||
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
import org.nl.wms.sch.task.service.dto.SchBaseTaskQuery;
|
import org.nl.wms.sch.task.service.dto.SchBaseTaskQuery;
|
||||||
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
import org.nl.wms.sch.task_manage.task.core.TaskStatus;
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import org.nl.common.domain.query.PageQuery;
|
|||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.config.language.LangProcess;
|
import org.nl.config.language.LangProcess;
|
||||||
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
import org.nl.wms.sch.task.service.ISchBaseTaskService;
|
||||||
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
import org.nl.wms.sch.task.service.dao.SchBaseTask;
|
||||||
import org.nl.wms.sch.task.service.dao.mapper.SchBaseTaskMapper;
|
import org.nl.wms.sch.task.service.dao.mapper.SchBaseTaskMapper;
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package org.nl.wms.sch.task_manage.task;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.common.mnt.websocket.MsgType;
|
||||||
|
import org.nl.common.mnt.websocket.SocketMsg;
|
||||||
|
import org.nl.common.mnt.websocket.WebSocketServer;
|
||||||
|
import org.nl.config.language.LangProcess;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class TestWebSoctetConnect {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private WebSocketServer webSocketServer;
|
||||||
|
@SneakyThrows
|
||||||
|
public void run() {
|
||||||
|
JSONObject res = new JSONObject();
|
||||||
|
res.put("data", "库存不足!");
|
||||||
|
SocketMsg messageInfo = new SocketMsg(res, MsgType.INFO);
|
||||||
|
try {
|
||||||
|
webSocketServer.sendInfo(messageInfo, "sid");
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new BadRequestException(LangProcess.msg("error_Send"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -195,6 +195,7 @@ public class NETSLTask extends AbstractTask {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
|
||||||
// 获取参数
|
// 获取参数
|
||||||
|
SchBasePoint startPointObj = pointService.getById(taskObj.getPoint_code1());
|
||||||
SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2());
|
SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2());
|
||||||
// 起点清空
|
// 起点清空
|
||||||
if (ObjectUtil.isNotEmpty(endPointObj)) {
|
if (ObjectUtil.isNotEmpty(endPointObj)) {
|
||||||
@@ -212,24 +213,24 @@ public class NETSLTask extends AbstractTask {
|
|||||||
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
|
||||||
taskService.updateById(taskObj);
|
taskService.updateById(taskObj);
|
||||||
//判断起点区域库存是否小于预警值
|
//判断起点区域库存是否小于预警值
|
||||||
// List<SchBasePoint> samePoints = pointService.getSamePoints(startPointObj.getRegion_code(), taskObj.getMaterial_code());
|
List<SchBasePoint> samePoints = pointService.getSamePoints(startPointObj.getRegion_code(), taskObj.getMaterial_code());
|
||||||
// List<StIvtForewarningmaterial> list = stIvtForewarningmaterialMapper.selectList(new QueryWrapper<StIvtForewarningmaterial>().eq("material_code", taskObj.getMaterial_code()));
|
List<StIvtForewarningmaterial> list = stIvtForewarningmaterialMapper.selectList(new QueryWrapper<StIvtForewarningmaterial>().eq("material_code", taskObj.getMaterial_code()));
|
||||||
// if (list.size() > 0) {
|
if (list.size() > 0) {
|
||||||
// StIvtForewarningmaterial stIvtForewarningmaterial = list.get(0);
|
StIvtForewarningmaterial stIvtForewarningmaterial = list.get(0);
|
||||||
// StIvtForewarningconfig forewarningconfig = stIvtForewarningconfigMapper.selectOne(new QueryWrapper<StIvtForewarningconfig>().eq("id", stIvtForewarningmaterial.getConfig_id()));
|
StIvtForewarningconfig forewarningconfig = stIvtForewarningconfigMapper.selectOne(new QueryWrapper<StIvtForewarningconfig>().eq("id", stIvtForewarningmaterial.getConfig_id()));
|
||||||
// BigDecimal safe_qty_lower_limit = forewarningconfig.getSafe_qty_lower_limit();
|
BigDecimal safe_qty_lower_limit = forewarningconfig.getSafe_qty_lower_limit();
|
||||||
// int low = safe_qty_lower_limit.intValue();
|
int low = safe_qty_lower_limit.intValue();
|
||||||
// if (samePoints.size() < low) {
|
if (samePoints.size() < low) {
|
||||||
// String currentUserId = SecurityUtils.getCurrentUserId();
|
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||||
// SysUser userInfo = sysUserService.getOne(new QueryWrapper<SysUser>().eq("user_id", currentUserId));
|
SysUser userInfo = sysUserService.getOne(new QueryWrapper<SysUser>().eq("user_id", currentUserId));
|
||||||
// // 获取权限列表 - 登录查找权限
|
// 获取权限列表 - 登录查找权限
|
||||||
// List<String> permissionList = roleService.getPermissionList((JSONObject) JSON.toJSON(userInfo));
|
List<String> permissionList = roleService.getPermissionList((JSONObject) JSON.toJSON(userInfo));
|
||||||
// if (permissionList.contains("dd")) {
|
if (permissionList.contains("dd")) {
|
||||||
// MdMeMaterialbase mdMeMaterialbase = mdMeMaterialbaseMapper.selectOne(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_code, taskObj.getMaterial_code()));
|
MdMeMaterialbase mdMeMaterialbase = mdMeMaterialbaseMapper.selectOne(new LambdaQueryWrapper<MdMeMaterialbase>().eq(MdMeMaterialbase::getMaterial_code, taskObj.getMaterial_code()));
|
||||||
// noticeService.createNotice(startPointObj.getRegion_name()+"【"+mdMeMaterialbase.getMaterial_name()+"】物料数量低于库存预警值", "库存预警", "dd");
|
noticeService.createNotice(startPointObj.getRegion_name()+"【"+mdMeMaterialbase.getMaterial_name()+"】物料数量低于库存预警值", "库存预警", "dd");
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -159,6 +159,7 @@ public class NETXLTask extends AbstractTask {
|
|||||||
private SchBasePoint findNextPoint(List<String> nextRegionStr, String regionCode, SchBaseTask task) {
|
private SchBasePoint findNextPoint(List<String> nextRegionStr, String regionCode, SchBaseTask task) {
|
||||||
// 找到同一个区域下物料相同的所有点位
|
// 找到同一个区域下物料相同的所有点位
|
||||||
if ("E2".equals(regionCode)) {
|
if ("E2".equals(regionCode)) {
|
||||||
|
SchBasePoint nextPoint = null;
|
||||||
List<SchBasePoint> list = pointService.getSamePoints(regionCode, task.getMaterial_code());
|
List<SchBasePoint> list = pointService.getSamePoints(regionCode, task.getMaterial_code());
|
||||||
if (!CollectionUtils.isEmpty(list)) {
|
if (!CollectionUtils.isEmpty(list)) {
|
||||||
for (int i = 0; i < list.size(); i++) {
|
for (int i = 0; i < list.size(); i++) {
|
||||||
@@ -167,12 +168,12 @@ public class NETXLTask extends AbstractTask {
|
|||||||
if (col_num == 1) {
|
if (col_num == 1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
SchBasePoint newPoint;
|
|
||||||
String newPoint_code = "";
|
String newPoint_code = "";
|
||||||
|
SchBasePoint newPoint = null;
|
||||||
int new_col = col_num - 1;
|
int new_col = col_num - 1;
|
||||||
// 校验当前点位相邻的点是否空闲
|
// 校验当前点位相邻的点是否空闲
|
||||||
for (int j = 0; j < (col_num - 1); j++) {
|
for (int j = 0; j < new_col; j++) {
|
||||||
newPoint_code = forametDevice_code(point.getPoint_code(), new_col);
|
newPoint_code = forametDevice_code(point.getPoint_code(), (col_num - 1));
|
||||||
newPoint = pointService.findByCode(newPoint_code);
|
newPoint = pointService.findByCode(newPoint_code);
|
||||||
Boolean result = this.checkIsFree(newPoint_code);
|
Boolean result = this.checkIsFree(newPoint_code);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
@@ -180,15 +181,19 @@ public class NETXLTask extends AbstractTask {
|
|||||||
point = newPoint;
|
point = newPoint;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
nextPoint = newPoint;
|
||||||
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
|
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
|
||||||
return newPoint;
|
return nextPoint;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (CollectionUtils.isEmpty(list)) {
|
if (ObjectUtil.isEmpty(nextPoint)) {
|
||||||
//找一排都是空的点位 //todo: 两台机台有没有生成相同物料 机台速度
|
//找一排都是空的点位 //todo: 两台机台有没有生成相同物料 机台速度
|
||||||
//找最大列为空且没有任务的点位
|
//找最大列为空且没有任务的点位
|
||||||
List<SchBasePoint> points = pointService.getPointByMaxCol(regionCode, 3);
|
List<SchBasePoint> points = pointService.getPointByMaxCol(regionCode, 3);
|
||||||
|
if (CollectionUtils.isEmpty(points)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
for (int i = 0; i < points.size(); i++) {
|
for (int i = 0; i < points.size(); i++) {
|
||||||
SchBasePoint thirdColPoint = points.get(0);
|
SchBasePoint thirdColPoint = points.get(0);
|
||||||
String firstColPointCode = thirdColPoint.getPoint_code().substring(0, thirdColPoint.getPoint_code().length() - 1) + "1";
|
String firstColPointCode = thirdColPoint.getPoint_code().substring(0, thirdColPoint.getPoint_code().length() - 1) + "1";
|
||||||
@@ -231,7 +236,7 @@ public class NETXLTask extends AbstractTask {
|
|||||||
if (newPoint.getPoint_status().equals(PointStatusEnum.EMPTY_VEHICLE.getCode())) {
|
if (newPoint.getPoint_status().equals(PointStatusEnum.EMPTY_VEHICLE.getCode())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
List<SchBaseTask> list = taskService.findUnFinishTasksByTaskConfigAndPointCode("NETSLTask", point_code);
|
List<SchBaseTask> list = taskService.findUnFinishTasksByTaskConfigAndPointCode("NETXLTask", point_code);
|
||||||
if (list.size() > 0) {
|
if (list.size() > 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,6 +121,7 @@ public class THXLTask extends AbstractTask {
|
|||||||
|
|
||||||
private SchBasePoint findNextPoint(List<String> nextRegionStr, String regionCode, SchBaseTask task) {
|
private SchBasePoint findNextPoint(List<String> nextRegionStr, String regionCode, SchBaseTask task) {
|
||||||
// 找到同一个区域下物料相同的所有点位
|
// 找到同一个区域下物料相同的所有点位
|
||||||
|
SchBasePoint nextPoint = null;
|
||||||
List<SchBasePoint> list = pointService.getSamePoints(regionCode, task.getMaterial_code());
|
List<SchBasePoint> list = pointService.getSamePoints(regionCode, task.getMaterial_code());
|
||||||
if (!CollectionUtils.isEmpty(list)) {
|
if (!CollectionUtils.isEmpty(list)) {
|
||||||
for (int i = 0; i < list.size(); i++) {
|
for (int i = 0; i < list.size(); i++) {
|
||||||
@@ -129,12 +130,12 @@ public class THXLTask extends AbstractTask {
|
|||||||
if (col_num == 1) {
|
if (col_num == 1) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
SchBasePoint newPoint;
|
SchBasePoint newPoint = null;
|
||||||
String newPoint_code = "";
|
String newPoint_code = "";
|
||||||
int new_col = col_num - 1;
|
int new_col = col_num - 1;
|
||||||
// 校验当前点位相邻的点是否空闲
|
// 校验当前点位相邻的点是否空闲
|
||||||
for (int j = 0; j < (col_num - 1); j++) {
|
for (int j = 0; j < new_col; j++) {
|
||||||
newPoint_code = forametDevice_code(point.getPoint_code(), new_col);
|
newPoint_code = forametDevice_code(point.getPoint_code(), (col_num - 1));
|
||||||
newPoint = pointService.findByCode(newPoint_code);
|
newPoint = pointService.findByCode(newPoint_code);
|
||||||
Boolean result = this.checkIsFree(newPoint_code);
|
Boolean result = this.checkIsFree(newPoint_code);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
@@ -142,30 +143,34 @@ public class THXLTask extends AbstractTask {
|
|||||||
point = newPoint;
|
point = newPoint;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
nextPoint = newPoint;
|
||||||
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
|
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
|
||||||
return point;
|
return nextPoint;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (CollectionUtils.isEmpty(list)) {
|
if (ObjectUtil.isEmpty(nextPoint)) {
|
||||||
//找一排都是空的点位
|
//找一排都是空的点位
|
||||||
//找最大列为空且没有任务的点位
|
//找最大列为空且没有任务的点位
|
||||||
// if (regionCode.equals("KTP")) {
|
// if (regionCode.equals("KTP")) {
|
||||||
List<SchBasePoint> points = pointService.getPointByMaxCol(regionCode, 2);
|
List<SchBasePoint> points = pointService.getPointByMaxCol(regionCode, 2);
|
||||||
for (int i = 0; i < points.size(); i++) {
|
if (CollectionUtils.isEmpty(points)) {
|
||||||
SchBasePoint twoColPoint = points.get(0);
|
return null;
|
||||||
String firstColPointCode = twoColPoint.getPoint_code().substring(0, twoColPoint.getPoint_code().length() - 1) + "1";
|
}
|
||||||
// 查询第一列
|
for (int i = 0; i < points.size(); i++) {
|
||||||
SchBasePoint firstColPoint = pointService.findByCode(firstColPointCode);
|
SchBasePoint twoColPoint = points.get(0);
|
||||||
// 判断第一列否为空且没有任务
|
String firstColPointCode = twoColPoint.getPoint_code().substring(0, twoColPoint.getPoint_code().length() - 1) + "1";
|
||||||
boolean isFirstColFree = checkIsEmpty(firstColPoint);
|
// 查询第一列
|
||||||
// 如果第一列为空,则返回这个第二列点位
|
SchBasePoint firstColPoint = pointService.findByCode(firstColPointCode);
|
||||||
if (isFirstColFree) {
|
// 判断第一列否为空且没有任务
|
||||||
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
|
boolean isFirstColFree = checkIsEmpty(firstColPoint);
|
||||||
return twoColPoint;
|
// 如果第一列为空,则返回这个第二列点位
|
||||||
}
|
if (isFirstColFree) {
|
||||||
continue;
|
task.setVehicle_code2(PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
|
||||||
|
return twoColPoint;
|
||||||
}
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// }
|
// }
|
||||||
// if (regionCode.equals("DKB")){
|
// if (regionCode.equals("DKB")){
|
||||||
// //找一排都是空的点位 //todo: 两台机台有没有生成相同物料 机台速度
|
// //找一排都是空的点位 //todo: 两台机台有没有生成相同物料 机台速度
|
||||||
|
|||||||
@@ -291,7 +291,11 @@
|
|||||||
<el-table-column prop="region_code" label="区域编码" :min-width="flexWidth('region_code',crud.data,'区域编码')" />
|
<el-table-column prop="region_code" label="区域编码" :min-width="flexWidth('region_code',crud.data,'区域编码')" />
|
||||||
<el-table-column prop="region_name" label="区域名称" :min-width="flexWidth('region_name',crud.data,'区域名称')" />
|
<el-table-column prop="region_name" label="区域名称" :min-width="flexWidth('region_name',crud.data,'区域名称')" />
|
||||||
<el-table-column prop="point_type" label="点位类型" :min-width="flexWidth('point_type',crud.data,'点位类型')" />
|
<el-table-column prop="point_type" label="点位类型" :min-width="flexWidth('point_type',crud.data,'点位类型')" />
|
||||||
<el-table-column prop="point_status" label="点位状态" :min-width="flexWidth('point_status',crud.data,'点位状态')" />
|
<el-table-column prop="point_status" label="点位状态" :min-width="flexWidth('point_status',crud.data,'点位状态')">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ dict.label.sch_point_status[scope.row.point_status] }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- <el-table-column prop="point_type" label="点位类型" :min-width="flexWidth('point_type',crud.data,'点位类型')" />-->
|
<!-- <el-table-column prop="point_type" label="点位类型" :min-width="flexWidth('point_type',crud.data,'点位类型')" />-->
|
||||||
<!-- <el-table-column prop="point_status" label="点位状态" :min-width="flexWidth('point_status',crud.data,'点位状态')" />-->
|
<!-- <el-table-column prop="point_status" label="点位状态" :min-width="flexWidth('point_status',crud.data,'点位状态')" />-->
|
||||||
<el-table-column prop="vehicle_type" label="载具类型" :min-width="flexWidth('vehicle_type',crud.data,'载具类型', 30)">
|
<el-table-column prop="vehicle_type" label="载具类型" :min-width="flexWidth('vehicle_type',crud.data,'载具类型', 30)">
|
||||||
@@ -404,7 +408,7 @@ const defaultForm = {
|
|||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
name: 'SchBasePoint',
|
name: 'SchBasePoint',
|
||||||
dicts: ['vehicle_type', 'TrueOrFalse'],
|
dicts: ['vehicle_type', 'TrueOrFalse', 'sch_point_type', 'sch_point_status', 'sch_point_type2'],
|
||||||
components: { PointDialog, ViewDialog, pagination, crudOperation, rrOperation, udOperation },
|
components: { PointDialog, ViewDialog, pagination, crudOperation, rrOperation, udOperation },
|
||||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||||
cruds() {
|
cruds() {
|
||||||
|
|||||||
Reference in New Issue
Block a user