fix:长短轴添加

This commit is contained in:
ls
2025-02-24 13:34:46 +08:00
parent ec5e6f81a8
commit 79066b8293
6 changed files with 77 additions and 28 deletions

View File

@@ -790,10 +790,10 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
cutpointivtTypeMap.put("A1_TZZC03", "2");
}
if (move3 == 1) {
cutpointivtTypeMap.put("A1_TZZC04", "1");
cutpointivtTypeMap.put("A1_TZZC04", "2");
}
if (move4 == 1) {
cutpointivtTypeMap.put("A1_TZZC04", "2");
cutpointivtTypeMap.put("A1_TZZC04", "1");
}
}

View File

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.config.lucene.TagNameEnum;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.pda.st.service.NbjPdaService;
import org.nl.wms.pdm.bi.dao.PdmBiSlittingproductionplan;
import org.nl.wms.pdm.bi.service.IpdmBiSlittingproductionplanService;
@@ -26,6 +27,7 @@ import org.nl.wms.sch.task_manage.tasks.nbj.PdaSendShaftAGVTask;
import org.nl.wms.sch.task_manage.tasks.nbj.SubRollDownAGVTask;
import org.nl.wms.util.PointUtils;
import org.nl.wms.util.TaskUtils;
import org.nl.wms.util.URLEnum;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
@@ -65,6 +67,11 @@ public class NbjPdaServiceImpl implements NbjPdaService {
private IBstIvtCutpointivtService bcutpointivtService;
@Autowired
private PdaSendShaftAGVTask pdaSendShaftAGVTask;
@Autowired
private WmsToAcsService wmsToAcsService;
@Override
public JSONObject changeLiftStatus(JSONObject param) {
MDC.put(GeneralDefinition.MDC_KEY, TagNameEnum.SWITCH_STATUS_OF_LIFT.getTag());
@@ -430,6 +437,7 @@ public class NbjPdaServiceImpl implements NbjPdaService {
taskParam.put("vehicle_code", currentUpPlan.getQzzno());
taskParam.put("vehicle_code2", currentDownPlan.getQzzno());
}
StIvtCutpointivt endPoint;
if (ObjectUtil.isEmpty(device)) {
if (plans.size() == 0) {
throw new BadRequestException("系统找不到对应的分切计划,请确保维护了点位信息,或者指定设备!");
@@ -437,14 +445,40 @@ public class NbjPdaServiceImpl implements NbjPdaService {
PdmBiSlittingproductionplan demoPlan = plans.get(0);
// 如果没有选择目的地,就是根据点位上维护的信息送
taskParam.put("is_flag", "1");
StIvtCutpointivt endPoint = stIvtCutpointivtService.getPintByExtCode(demoPlan.getResource_name(), false);
endPoint = stIvtCutpointivtService.getPintByExtCode(demoPlan.getResource_name(), false);
taskParam.put("point_code2", endPoint.getPoint_code());
} else {
StIvtCutpointivt endPoint = stIvtCutpointivtService.getPintByExtCode(device, false);
endPoint = stIvtCutpointivtService.getPintByExtCode(device, false);
taskParam.put("point_code2", endPoint.getPoint_code());
// 不需要修改点位信息
taskParam.put("is_flag", "0");
}
//校验终点和起点实际点位轴类型是否匹配
String endPointCode = (String) taskParam.get("point_code2");
String startPointCode = (String) taskParam.get("point_code1");
if (startPoint.getIvt_id().equals("3") || startPoint.getIvt_id().equals("4")) {
JSONArray acsArray = new JSONArray();
JSONObject acs = new JSONObject();
acs.put("device_code", endPointCode);
acs.put("product_area", URLEnum.ACS_URL_A1.getProduct_area());
acsArray.add(acs);
//acs查询缓存架类型
log.info("送轴,获取缓存架类型 - {}", acsArray);
JSONObject jsonObject = wmsToAcsService.getCutpointivtType(acsArray);
log.info("送轴,获取缓存架类型返回 - {}", jsonObject);
JSONObject message = (JSONObject) jsonObject.get("message");
if (message == null) {
throw new BadRequestException("获取缓存架类型失败!");
}
if (message.containsKey(startPointCode) && !endPoint.getPlan().equals(message.get(startPointCode))) {
throw new BadRequestException("请求搬运失败,缓存架气涨轴类型与分切机不匹配!");
}
}
pdaSendShaftAGVTask.createTask(taskParam);
}
}

View File

@@ -133,7 +133,6 @@ public class OtherPdaServiceImpl implements OtherPdaService {
taskService.updateById(nextTask);
}
// 通知ACS完成上一个任务
// 通知ACS完成上一个任务
JSONArray acs = new JSONArray();
JSONObject result = new JSONObject();
JSONObject acsParam = new JSONObject();

View File

@@ -53,16 +53,20 @@ public class StIvtHotpointivtServiceImpl extends ServiceImpl<StIvtHotpointivtMap
? (String) whereJson.get("point_status") : null;
String productArea = ObjectUtil.isNotEmpty(whereJson.get("product_area"))
? (String) whereJson.get("product_area") : null;
String isUsed = ObjectUtil.isNotEmpty(whereJson.get("is_used"))
String isUsed = ObjectUtil.isNotEmpty(whereJson.get("is_used")
)
? (String) whereJson.get("is_used") : null;
String pointLocation = ObjectUtil.isNotEmpty(whereJson.get("point_location"))
? (String) whereJson.get("point_location") : null;
String container_name = ObjectUtil.isNotEmpty(whereJson.get("container_name"))
? (String) whereJson.get("container_name") : null;
IPage<StIvtHotpointivt> resultPage = new Page<>(page.getPage() + 1, page.getSize());
LambdaQueryWrapper<StIvtHotpointivt> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(ObjectUtil.isNotEmpty(pointCode), StIvtHotpointivt::getPoint_code, pointCode)
.eq(ObjectUtil.isNotEmpty(pointStatus), StIvtHotpointivt::getPoint_status, pointStatus)
.eq(ObjectUtil.isNotEmpty(productArea), StIvtHotpointivt::getProduct_area, productArea)
.eq(ObjectUtil.isNotEmpty(isUsed), StIvtHotpointivt::getIs_used, isUsed)
.like(ObjectUtil.isNotEmpty(container_name), StIvtHotpointivt::getContainer_name, container_name)
.eq(ObjectUtil.isNotEmpty(pointLocation), StIvtHotpointivt::getPoint_location, pointLocation).orderByDesc(StIvtHotpointivt::getInstorage_time);
return stIvtHotpointivtMapper.selectPage(resultPage, queryWrapper);
}

View File

@@ -3,12 +3,14 @@ package org.nl.wms.sch.task_manage.tasks.nbj;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.CodeUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.ext.acs.service.WmsToAcsService;
import org.nl.wms.pdm.bi.dao.PdmBiSlittingproductionplan;
import org.nl.wms.pdm.bi.service.IpdmBiSlittingproductionplanService;
import org.nl.wms.pdm.ivt.bcut.service.IBstIvtCutpointivtService;
@@ -25,6 +27,7 @@ import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition;
import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum;
import org.nl.wms.util.PointUtils;
import org.nl.wms.util.TaskUtils;
import org.nl.wms.util.URLEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@@ -58,6 +61,7 @@ public class PdaSendShaftAGVTask extends AbstractTask {
private ISchBasePointService pointService;
@Autowired
private IBstIvtCutpointivtService bcutpointivtService;
@Override
public void create() throws BadRequestException {
@@ -65,6 +69,7 @@ public class PdaSendShaftAGVTask extends AbstractTask {
@Override
public String createTask(JSONObject form) {
// 创建任务
SchBaseTask task = new SchBaseTask();
task.setTask_id(IdUtil.getSnowflake(1,1).nextIdStr());
@@ -81,6 +86,7 @@ public class PdaSendShaftAGVTask extends AbstractTask {
task.setHandle_class(THIS_CLASS);
task.setTask_status(TaskStatus.START_AND_POINT.getCode());
TaskUtils.setCreateByDefault(task);
taskService.save(task);
return task.getTask_id();
}

View File

@@ -109,28 +109,9 @@ public class SlitterDownAGVTask extends AbstractTask {
acs.put("device_code", requestObj.getString("device_code"));
acs.put("product_area", URLEnum.ACS_URL_A1.getProduct_area());
acsArray.add(acs);
//acs查询缓存架类型
log.info("获取缓存架类型 - {}", acsArray);
JSONObject jsonObject = wmsToAcsService.getCutpointivtType(acsArray);
log.info("获取缓存架类型返回 - {}", jsonObject);
JSONObject message = (JSONObject)jsonObject.get("message");
if (message == null){
throw new BadRequestException("获取缓存架类型失败!");
}
for (BstIvtCutpointivt bstIvtCutpointivt : areaEmptyNotTaskPoint) {
if (message.containsKey(bstIvtCutpointivt.getPoint_code())){
if ( bstIvtCutpointivt.getPlan().equals(message.get(bstIvtCutpointivt.getPoint_code()))) {
endPoint = bstIvtCutpointivt;
} else {
throw new BadRequestException("请求搬运失败,缓存架光电信息不满足!");
}
} else {
endPoint = bstIvtCutpointivt;
}
}
if (endPoint == null) {
throw new BadRequestException("请求搬运失败,缓存架没有匹配的位置!");
}
//校验acs与lms气涨轴类型
endPoint = checkType(acsArray, areaEmptyNotTaskPoint, endPoint);
// endPoint = areaEmptyNotTaskPoint.get(0);
task.setPoint_code2(endPoint.getPoint_code());
// 设置气胀轴
task.setVehicle_code(currentUpPlan != null ? currentUpPlan.getQzzno() : "");
@@ -150,6 +131,31 @@ public class SlitterDownAGVTask extends AbstractTask {
});
}
private BstIvtCutpointivt checkType(JSONArray acsArray, List<BstIvtCutpointivt> areaEmptyNotTaskPoint, BstIvtCutpointivt endPoint) {
log.info("分切下料,获取缓存架类型 - {}", acsArray);
JSONObject jsonObject = wmsToAcsService.getCutpointivtType(acsArray);
log.info("分切下料,获取缓存架类型返回 - {}", jsonObject);
JSONObject message = (JSONObject)jsonObject.get("message");
if (message == null){
throw new BadRequestException("获取缓存架类型失败!");
}
for (BstIvtCutpointivt bstIvtCutpointivt : areaEmptyNotTaskPoint) {
if (message.containsKey(bstIvtCutpointivt.getPoint_code())){
if ( bstIvtCutpointivt.getPlan().equals(message.get(bstIvtCutpointivt.getPoint_code()))) {
endPoint = bstIvtCutpointivt;
} else {
throw new BadRequestException("请求搬运失败,缓存架气涨轴类型与分切机不匹配!");
}
} else {
endPoint = bstIvtCutpointivt;
}
}
if (endPoint == null) {
throw new BadRequestException("请求搬运失败,缓存架没有匹配的位置!");
}
return endPoint;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {