rev:优化空轴退回功能
This commit is contained in:
@@ -7,6 +7,7 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
|
||||
|
||||
@@ -51,6 +52,8 @@ public interface IstIvtShaftivtService extends IService<StIvtShaftivt> {
|
||||
*/
|
||||
void deleteAll(Set<String> ids);
|
||||
|
||||
void handleGroupTask(SchBaseTask baseTask);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,24 @@
|
||||
package org.nl.b_lms.sch.point.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt;
|
||||
import org.nl.b_lms.sch.point.dao.StIvtShaftivt;
|
||||
import org.nl.b_lms.sch.point.dao.mapper.StIvtShaftivtMapper;
|
||||
import org.nl.b_lms.sch.point.service.IstIvtShaftivtService;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.tasks.slitter.SendShaftToCacheTask;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
@@ -29,6 +40,10 @@ public class StIvtShaftivtServiceImpl extends ServiceImpl<StIvtShaftivtMapper, S
|
||||
|
||||
@Resource
|
||||
private StIvtShaftivtMapper stIvtShaftivtMapper;
|
||||
@Autowired
|
||||
private IschBaseTaskService taskService;
|
||||
@Autowired
|
||||
private SendShaftToCacheTask sendShaftToCacheTask;
|
||||
|
||||
|
||||
/**
|
||||
@@ -100,6 +115,21 @@ public class StIvtShaftivtServiceImpl extends ServiceImpl<StIvtShaftivtMapper, S
|
||||
return entity;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleGroupTask(SchBaseTask baseTask) {
|
||||
if (StringUtils.isNotBlank(baseTask.getTask_group_id())) {
|
||||
//存在关联的未完成的任务组任务
|
||||
SchBaseTask groupTask = taskService.getOne(new LambdaQueryWrapper<SchBaseTask>()
|
||||
.eq(SchBaseTask::getTask_group_id, baseTask.getTask_group_id())
|
||||
.eq(SchBaseTask::getIs_delete, IOSEnum.IS_SEND.code("否"))
|
||||
.ne(SchBaseTask::getTask_id, baseTask.getTask_id())
|
||||
.lt(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode()));
|
||||
if (groupTask != null) {
|
||||
sendShaftToCacheTask.immediateNotifyAcs(groupTask.getTask_id());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -22,6 +24,7 @@ import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.AcsUtil;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.tasks.InHotTask;
|
||||
@@ -113,9 +116,13 @@ public class ReturnShaftAgvTask extends AbstractAcsTask {
|
||||
log.info("点位信息:{}", endPointObj);
|
||||
|
||||
// 创建行架任务
|
||||
String task_group_id = org.nl.common.utils.IdUtil.getStringId();
|
||||
String task1 = null;
|
||||
String task2 = null;
|
||||
if (ObjectUtil.isNotEmpty(endPointObj.getQzz_no1())) {
|
||||
String qzzSize = endPointObj.getQzz_no1();
|
||||
String[] split = qzzSize.split("-");
|
||||
String qzz = qzzSize.substring(qzzSize.length() - 3);
|
||||
String[] split = qzz.split("-");
|
||||
String size = split[0];
|
||||
String qzz_generation = split[1];
|
||||
List<BstIvtShafttubeivt> shafttubeivts = checkIsHaveEmptyPoint(size, qzz_generation);
|
||||
@@ -130,11 +137,13 @@ public class ReturnShaftAgvTask extends AbstractAcsTask {
|
||||
param.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||
param.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴缓存<>气胀轴缓存位"));
|
||||
param.put("is_bushing", "0");
|
||||
sendShaftToCacheTask.createTask(param);
|
||||
param.put("task_group_id", task_group_id);
|
||||
task1 = sendShaftToCacheTask.createTask(param);
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(endPointObj.getQzz_no2())) {
|
||||
String qzzSize = endPointObj.getQzz_no2();
|
||||
String[] split = qzzSize.split("-");
|
||||
String qzz = qzzSize.substring(qzzSize.length() - 3);
|
||||
String[] split = qzz.split("-");
|
||||
String size = split[0];
|
||||
String qzz_generation = split[1];
|
||||
List<BstIvtShafttubeivt> shafttubeivts = checkIsHaveEmptyPoint(size, qzz_generation);
|
||||
@@ -149,9 +158,10 @@ public class ReturnShaftAgvTask extends AbstractAcsTask {
|
||||
param.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴缓存<>气胀轴缓存位"));
|
||||
param.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||
param.put("is_bushing", "0");
|
||||
sendShaftToCacheTask.createTask(param);
|
||||
param.put("task_group_id", task_group_id);
|
||||
task2 = sendShaftToCacheTask.createTask(param);
|
||||
}
|
||||
|
||||
sendShaftToCacheTask.immediateNotifyAcs(ObjectUtil.isNotEmpty(task1) ? task1 : task2);
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
@@ -203,6 +213,7 @@ public class ReturnShaftAgvTask extends AbstractAcsTask {
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
|
||||
@@ -5,21 +5,26 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService;
|
||||
import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt;
|
||||
import org.nl.b_lms.bst.ivt.shafttubeivt.service.IBstIvtShafttubeivtService;
|
||||
import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt;
|
||||
import org.nl.b_lms.sch.point.service.IstIvtShaftivtService;
|
||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||
import org.nl.b_lms.sch.task.service.IschBaseTaskService;
|
||||
import org.nl.b_lms.sch.tasks.slitter.constant.SlitterEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.common.utils.TaskUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.AcsTaskDto;
|
||||
import org.nl.wms.sch.AcsUtil;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -44,6 +49,10 @@ public class SendShaftToCacheTask extends AbstractAcsTask {
|
||||
private IBstIvtShafttubeivtService shafttubeivtService;
|
||||
@Autowired
|
||||
private IBstIvtCutpointivtService bcutpointivtService;
|
||||
@Autowired
|
||||
private IstIvtShaftivtService shaftivtService;
|
||||
@Autowired
|
||||
AcsUtil acsUtil;
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
@@ -109,6 +118,7 @@ public class SendShaftToCacheTask extends AbstractAcsTask {
|
||||
startPointParam.setPoint_status("1");
|
||||
bcutpointivtService.updateById(startPointParam);
|
||||
}
|
||||
shaftivtService.handleGroupTask(task);
|
||||
}
|
||||
// 取消
|
||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||
@@ -118,11 +128,17 @@ public class SendShaftToCacheTask extends AbstractAcsTask {
|
||||
taskService.updateById(task);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String currentUsername = SecurityUtils.getCurrentUsername();
|
||||
|
||||
String point_code1 = form.getString("point_code1");
|
||||
JSONObject task1 = isSingleTask(point_code1);
|
||||
if (ObjectUtil.isNotEmpty(task1)) {
|
||||
throw new BadRequestException("所在点位:" + point_code1 + "存在未完成的任务:" + task1.getString("task_code"));
|
||||
}
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
task.setTask_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
task.setTask_code(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
@@ -132,6 +148,7 @@ public class SendShaftToCacheTask extends AbstractAcsTask {
|
||||
task.setVehicle_code(form.getString("qzz_size"));
|
||||
task.setTask_type("010815");
|
||||
task.setAcs_task_type("6");
|
||||
task.setTask_group_id(form.getString("task_group_id"));
|
||||
task.setIs_delete("0");
|
||||
task.setRequest_param(form.toJSONString());
|
||||
task.setTask_type(form.getString("task_type"));
|
||||
@@ -148,7 +165,7 @@ public class SendShaftToCacheTask extends AbstractAcsTask {
|
||||
task.setPriority(priority_jo.getString("value"));
|
||||
}
|
||||
taskService.save(task);
|
||||
this.immediateNotifyAcs(null);
|
||||
// this.immediateNotifyAcs(null);
|
||||
return task.getTask_id();
|
||||
}
|
||||
|
||||
@@ -164,4 +181,68 @@ public class SendShaftToCacheTask extends AbstractAcsTask {
|
||||
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
this.updateTaskStatus(taskObj, "0");
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject immediateNotifyAcs(String task_id) {
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (Exception ex) {
|
||||
|
||||
}
|
||||
|
||||
List<SchBaseTask> taskList = new ArrayList<>();
|
||||
SchBaseTask baseTask = taskService.getById(task_id);
|
||||
taskList.add(baseTask);
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
String agv_system_type = "2";
|
||||
for (SchBaseTask task : taskList) {
|
||||
String requestParam = task.getRequest_param();
|
||||
JSONObject requestParamObj = JSONObject.parseObject(requestParam);
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.ext_task_id(task.getTask_id())
|
||||
.task_code(task.getTask_code())
|
||||
.task_type(task.getAcs_task_type())
|
||||
.start_device_code(task.getPoint_code1())
|
||||
.next_device_code(task.getPoint_code2())
|
||||
.start_device_code2(task.getPoint_code3())
|
||||
.next_device_code2(task.getPoint_code4())
|
||||
.vehicle_code(task.getVehicle_code())
|
||||
.agv_system_type(agv_system_type)
|
||||
.priority(task.getPriority())
|
||||
.remark(task.getRemark())
|
||||
.product_area(task.getProduct_area())
|
||||
.build();
|
||||
resultList.add(dto);
|
||||
}
|
||||
// List<AcsTaskDto> taskList = this.schedule();
|
||||
if (ObjectUtil.isNotEmpty(resultList)) {
|
||||
JSONArray arr = JSONArray.parseArray(JSON.toJSONString(resultList));
|
||||
if (acsUtil == null) {
|
||||
return AcsUtil.notifyAcs("api/wms/task", arr);
|
||||
} else {
|
||||
return acsUtil.notifyAcs3("api/wms/task", arr);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
public JSONObject isSingleTask(String point_code) {
|
||||
JSONObject task1 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code1 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
|
||||
JSONObject task2 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code2 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
|
||||
JSONObject task3 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code3 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
|
||||
JSONObject task4 = WQLObject.getWQLObject("SCH_BASE_Task").query("point_code4 = '" + point_code + "' AND task_status < '07' AND is_delete = '0'").uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(task1)) {
|
||||
return task1;
|
||||
} else if (ObjectUtil.isNotEmpty(task2)) {
|
||||
return task2;
|
||||
} else if (ObjectUtil.isNotEmpty(task3)) {
|
||||
return task3;
|
||||
} else if (ObjectUtil.isNotEmpty(task4)) {
|
||||
return task4;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1034,8 +1034,6 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -2249,6 +2247,7 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
public List<CallPlanViewVO> showManualView(JSONObject param) {
|
||||
return slitterMapper.showManualView();
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject urgentPlan(JSONObject param) {
|
||||
JSONObject res = new JSONObject();
|
||||
@@ -2283,6 +2282,7 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject downRolls2(JSONObject param) {
|
||||
log.info("下卷2的输入参数为:{}", param);
|
||||
@@ -2440,8 +2440,12 @@ public class SlitterServiceImpl implements SlitterService {
|
||||
if (tryLock) {
|
||||
taskParam.put("point_code1", point.getPoint_code());
|
||||
taskParam.put("point_code2", endPoint.getPoint_code());
|
||||
taskParam.put("vehicle_code1", size1);
|
||||
taskParam.put("vehicle_code2", size2);
|
||||
if (ObjectUtil.isNotEmpty(size1)) {
|
||||
taskParam.put("vehicle_code1", IdUtil.getSnowflake(1, 1).nextIdStr() + size1);
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(size2)) {
|
||||
taskParam.put("vehicle_code2", IdUtil.getSnowflake(1, 1).nextIdStr() + size2);
|
||||
}
|
||||
taskParam.put("task_type", SlitterEnum.TASK_TYPE.code("分切机下料AGV到内包间"));
|
||||
taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA);
|
||||
returnShaftAgvTask.createTask(taskParam);
|
||||
|
||||
@@ -2873,7 +2873,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
if (ObjectUtil.isEmpty(qzzSize)) {
|
||||
throw new BadRequestException("气涨轴规格不能为空!");
|
||||
}
|
||||
String[] split = qzzSize.split("-");
|
||||
String qzz= qzzSize.substring(qzzSize.length() - 3);
|
||||
String[] split = qzz.split("-");
|
||||
String size = split[0];
|
||||
String qzz_generation = split[1];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user