This commit is contained in:
psh
2023-11-27 16:29:46 +08:00
parent 61bb0c42ed
commit 715cc94e76
11 changed files with 142 additions and 95 deletions

View File

@@ -99,7 +99,7 @@ public abstract class AbstractTask {
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, config_code));
taskDto.setPriority(taskConfig.getPriority());
taskDto.setTask_type(taskConfig.getAcs_task_type());
taskDto.setTask_type(taskConfig.getTask_type());
taskDto.setRoute_plan_code(taskConfig.getRoute_plan_code());
return taskDto;
}

View File

@@ -94,7 +94,7 @@ public class BPSLTask extends AbstractTask {
//发起任务时先把点位占用,防止发起重复任务
point.setIng_task_code(task.getTask_code());
point.setVehicle_qty(point.getVehicle_qty() - 1);
// point.setVehicle_qty(point.getVehicle_qty() - 1);
point.setVehicle_type(materialType);
pointService.update(point);
@@ -111,8 +111,15 @@ public class BPSLTask extends AbstractTask {
* @return
*/
private SchBasePoint findNextPoint(JSONObject extGroupData) {
String regionCode = "HCQ1";
String regionCode = "";
String materialType = extGroupData.getString("material_type");
if("1".equals(materialType)){
regionCode="HCQ4";
}else if("2".equals(materialType)){
regionCode="HCQ1";
}else if ("3".equals(materialType)){
regionCode="HCQ2";
}
List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode,"2");
for(int i=schBasePointList.size()-1;i>=0;i--){
SchBasePoint schBasePoint=schBasePointList.get(i);
@@ -179,6 +186,7 @@ public class BPSLTask extends AbstractTask {
}
startPointObj.setVehicle_code(vehicle_code.toString());
}
startPointObj.setVehicle_qty(startPointObj.getVehicle_qty() - 1);
startPointObj.setIng_task_code("");
startPointObj.setUpdate_time(DateUtil.now());
pointService.updateById(startPointObj);
@@ -198,7 +206,7 @@ public class BPSLTask extends AbstractTask {
// 起点解锁
if (ObjectUtil.isNotEmpty(startPointObj)) {
startPointObj.setIng_task_code("");
startPointObj.setVehicle_qty(startPointObj.getVehicle_qty()+1);
// startPointObj.setVehicle_qty(startPointObj.getVehicle_qty()+1);
pointService.update(endPointObj);
}
taskObj.setRemark("任务取消");
@@ -223,6 +231,7 @@ public class BPSLTask extends AbstractTask {
JSONObject jsonObject = JSONObject.parseObject(schBaseTask.getExt_group_data());
SchBasePoint point = this.findNextPoint(jsonObject);
// 设置起点并修改创建成功状态
schBaseTask.setPoint_code1(point.getPoint_code());
List<String> vehicleCodeList = Arrays.stream(point.getVehicle_code().split(",")).collect(Collectors.toList());
schBaseTask.setPoint_code1(point.getPoint_code()+"0"+vehicleCodeList.size());
}
}

View File

@@ -80,18 +80,17 @@ public class MJXLTask extends AbstractTask {
task.setRemark("未找到所需点位!");
taskService.update(task);
// 消息通知
log.info("满架下料未找到当前符合条件的点位materialType:{},",materialType);
log.info("满架下料未找到当前符合条件的点位materialType:{},", materialType);
continue;
}
// 设置终点并修改创建成功状态
task.setPoint_code2(point.getPoint_code());
task.setPoint_code2(point.getNext_wait_point());
task.setTask_status(TaskStatus.CREATED.getCode());
task.setRemark("");
taskService.update(task);
//发起任务时先把点位占用,防止发起重复任务
point.setIng_task_code(task.getTask_code());
point.setVehicle_qty(point.getVehicle_qty() + 1);
point.setVehicle_type(materialType);
pointService.update(point);
@@ -122,17 +121,17 @@ public class MJXLTask extends AbstractTask {
//TBX2找B区
regionCode = "GHS2";
}
List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode,"2");
List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode, "2");
for (SchBasePoint schBasePoint : schBasePointList) {
if (!schBasePoint.getPoint_code().endsWith("01") &&
!schBasePoint.getPoint_code().endsWith("06")) {
continue;
}
if ((ObjectUtil.isEmpty(schBasePoint.getVehicle_type())||
if ((ObjectUtil.isEmpty(schBasePoint.getVehicle_type()) ||
materialType.equals(schBasePoint.getVehicle_type()))
&& "2".equals(schBasePoint.getPoint_status())
&& schBasePoint.getVehicle_qty() < 3) {
log.info("满架下料找到当前符合条件的点位{}",schBasePoint.getPoint_code());
log.info("满架下料找到当前符合条件的点位{}", schBasePoint.getPoint_code());
return schBasePoint;
}
}
@@ -163,7 +162,7 @@ public class MJXLTask extends AbstractTask {
.eq(PdmBdWorkorder::getWorkorder_code, extGroupData.getString("workorder_code")))
: null;
String startPoint = taskObj.getPoint_code1(); // 获取起点
String endPoint = taskObj.getPoint_code2(); // 获取终点
String endPoint = taskObj.getPoint_code2().substring(0,taskObj.getPoint_code2().length()-2); // 获取终点
SchBasePoint startPointObj = pointService.getById(startPoint);
SchBasePoint endPointObj = pointService.getById(endPoint);
// 根据传来的类型去对任务进行操作
@@ -179,6 +178,7 @@ public class MJXLTask extends AbstractTask {
// 终点解锁
endPointObj.setIng_task_code("");
endPointObj.setVehicle_code(ObjectUtil.isEmpty(endPointObj.getVehicle_code()) ? vehicle_code + "," : endPointObj.getVehicle_code() + vehicle_code + ",");
endPointObj.setVehicle_qty(endPointObj.getVehicle_qty() + 1);
pointService.update(endPointObj);
// 要把数据存到组盘表 -> 改造公共方法返回id
SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
@@ -222,8 +222,7 @@ public class MJXLTask extends AbstractTask {
if (ObjectUtil.isNotEmpty(endPointObj)) {
endPointObj.setIng_task_code("");
//任务取消把原先占用的位置释放
endPointObj.setVehicle_qty(endPointObj.getVehicle_qty()-1);
if(endPointObj.getVehicle_qty()<=0){
if (endPointObj.getVehicle_qty() <= 0) {
endPointObj.setVehicle_type(null);
}
pointService.update(endPointObj);
@@ -245,7 +244,16 @@ public class MJXLTask extends AbstractTask {
}
@Override
protected void feedbackTaskState(JSONObject param,SchBaseTask schBaseTask, BaseResponse result) {
//无需重算,返回当前点位即可
protected void feedbackTaskState(JSONObject param, SchBaseTask schBaseTask, BaseResponse result) {
//重新计算固化室放货点位
try {
JSONObject extGroupData = JSONObject.parseObject(schBaseTask.getExt_group_data());
SchBasePoint startPoint = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, schBaseTask.getPoint_code1()));
SchBasePoint point = findNextPoint(startPoint, extGroupData);
schBaseTask.setPoint_code2(point.getPoint_code()+"0"+(point.getVehicle_qty()+1));
} catch (Exception e) {
log.error("error:{}", e, e.getMessage());
}
}
}

View File

@@ -113,12 +113,12 @@ public class TBXBKJTask extends AbstractTask {
private SchBasePoint findNextPoint(SchBasePoint startPoint) {
String regionCode = null;
if ("TBX1".equals(startPoint.getRegion_code())) {
//KGHJ1找A区
regionCode = "KGHJ1";
//TBX1找A区
regionCode = "HCQ3";
} else if ("TBX2".equals(startPoint.getRegion_code())) {
//KGHJ2找B区
regionCode = "KGHJ2";
//TBX2找B区
regionCode = "KGHJ1";
}
List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode,null);
for (SchBasePoint schBasePoint : schBasePointList) {

View File

@@ -156,6 +156,7 @@ public class GHSQHTask extends AbstractTask {
/**
* 1.根据当前固化室所处区域,判断到哪个区的缓存位
* 正极板到HCQ4,负极板到HCQ1边负极板到HCQ2
* 2.从1010列到0101列倒叙判断当前列物料类型是否与起点一致且存在空位
* 3.将当前点位设置为目标点
* 4.如果没有符合条件的点位,跳过执行暂时等待
@@ -163,12 +164,15 @@ public class GHSQHTask extends AbstractTask {
private SchBasePoint findNextPoint(SchBasePoint startPoint) {
String regionCode = null;
String materialType = startPoint.getVehicle_type();
if ("GHS1".equals(startPoint.getRegion_code())) {
//HCQ1找A区
regionCode = "HCQ1";
if ("1".equals(startPoint.getVehicle_type())) {
//正极板到缓存区4
regionCode = "HCQ4";
} else if ("GHS2".equals(startPoint.getRegion_code())) {
//GHS2找B区
} else if ("2".equals(startPoint.getVehicle_type())) {
//负极板到缓存区1
regionCode = "HCQ1";
} else if ("3".equals(startPoint.getVehicle_type())) {
//边负极板到缓存区1
regionCode = "HCQ2";
}
List<SchBasePoint> schBasePointList = pointMapper.findPointByRegion(regionCode,"2");
@@ -306,6 +310,7 @@ public class GHSQHTask extends AbstractTask {
if(ObjectUtil.isEmpty(nextPoint)){
throw new Exception("当前起点"+schBaseTask.getPoint_code1()+"未找到合适的放货点位");
}
schBaseTask.setPoint_code2(nextPoint.getPoint_code());
//上位记的是整一个缓存区三个点整体搬运时反馈点位带01
schBaseTask.setPoint_code2(nextPoint.getPoint_code()+"01");
}
}