rev:优化空轴退回功能

This commit is contained in:
2025-05-04 19:20:28 +08:00
parent 29d68a5174
commit 709595b91b
6 changed files with 184 additions and 54 deletions

View File

@@ -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);
}

View File

@@ -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());
}
}
}
}

View File

@@ -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,12 +116,16 @@ public class ReturnShaftAgvTask extends AbstractAcsTask {
log.info("点位信息:{}", endPointObj);
// 创建行架任务
if (ObjectUtil.isNotEmpty(endPointObj.getQzz_no1())){
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);
List<BstIvtShafttubeivt> shafttubeivts = checkIsHaveEmptyPoint(size, qzz_generation);
if (shafttubeivts.size() == 0) {
throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位");
}
@@ -130,14 +137,16 @@ 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())){
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);
List<BstIvtShafttubeivt> shafttubeivts = checkIsHaveEmptyPoint(size, qzz_generation);
if (shafttubeivts.size() == 0) {
throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位");
}
@@ -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(""))) {
@@ -163,7 +173,7 @@ public class ReturnShaftAgvTask extends AbstractAcsTask {
private List<BstIvtShafttubeivt> checkIsHaveEmptyPoint(String size, String qzz_generation) {
// 获取空位
List<BstIvtShafttubeivt> shafttubeivts = shafttubeivtService.getNotTaskEmptyShaftCache(size, qzz_generation,"0");
List<BstIvtShafttubeivt> shafttubeivts = shafttubeivtService.getNotTaskEmptyShaftCache(size, qzz_generation, "0");
return shafttubeivts;
}
@@ -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);

View File

@@ -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;
}
}

View File

@@ -298,9 +298,9 @@ public class SlitterServiceImpl implements SlitterService {
}
List<PdmBiSlittingproductionplan> plans = slittingproductionplanService.list(
new LambdaQueryWrapper<PdmBiSlittingproductionplan>()
.in(PdmBiSlittingproductionplan::getContainer_name, collect)
.eq(PdmBiSlittingproductionplan::getStatus, "01")
.eq(PdmBiSlittingproductionplan::getIs_delete, "0"));
.in(PdmBiSlittingproductionplan::getContainer_name, collect)
.eq(PdmBiSlittingproductionplan::getStatus, "01")
.eq(PdmBiSlittingproductionplan::getIs_delete, "0"));
// 去异常位
if (plans.size() == 0) {
log.error("找不到[{}]对应的分切计划,分切计划可能被删除或者拼接!", collect);
@@ -929,17 +929,17 @@ public class SlitterServiceImpl implements SlitterService {
throw new BadRequestException("托盘:" + vehicleCode + "" + param.getString("row_num") + "行没数据!");
}
log.debug("更新前:" + vehicleCode + "" + param.getString("row_num") + mdPbPapervehicle);
if (mdPbPapervehicle != null || mdPbPapervehicle.getQty().intValue() > 0) {
if (mdPbPapervehicle != null || mdPbPapervehicle.getQty().intValue() > 0) {
//数量减一
mdPbPapervehicle.setQty(BigDecimal.valueOf(mdPbPapervehicle.getQty().intValue()-1));
mdPbPapervehicle.setQty(BigDecimal.valueOf(mdPbPapervehicle.getQty().intValue() - 1));
log.debug("更新后:" + vehicleCode + "" + param.getString("row_num") + mdPbPapervehicle);
// 检查更新后的 qty 是否为 0然后删除相应的记录
if(mdPbPapervehicle.getQty().intValue() <= 0){
if (mdPbPapervehicle.getQty().intValue() <= 0) {
boolean remove = papervehicleService.removeById(mdPbPapervehicle);
log.debug("删除0结果" + vehicleCode + ":" + remove);
}else{
} else {
papervehicleService.update(mdPbPapervehicle);
}
// todo: 如果qty=0创建AGV送空任务新的task_type、后期优化可以新增诺宝取货完成提前释放货位任务状态变成071
@@ -1028,14 +1028,12 @@ public class SlitterServiceImpl implements SlitterService {
String device_code = param.getString("device_code");
//查询当前母卷所在的点位在哪
JSONObject cache_jo = WQLObject.getWQLObject("st_ivt_stpointcacheivt").query("container_name = '"+container_name+"'").uniqueResult(0);
JSONObject cache_jo = WQLObject.getWQLObject("st_ivt_stpointcacheivt").query("container_name = '" + container_name + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(cache_jo)) {
throw new BadRequestException("未查询到母卷所在的点位!");
}
return null;
}
@@ -1101,11 +1099,11 @@ public class SlitterServiceImpl implements SlitterService {
if (CollectionUtil.isNotEmpty(qzzNos)) {
List<PdmBiSlittingproductionplan> plans = slittingproductionplanService.getByQzzNos(qzzNos);
List<String> collect = plans.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList());
if(collect.size()==0){
if (collect.size() == 0) {
throw new BadRequestException("操作失败,点位[" + pointCode + "]未查到子卷分切计划,请先绑定子卷库存!");
}
taskParam.put("containers", collect);
}else{
} else {
throw new BadRequestException("操作失败,点位[" + pointCode + "]无气胀轴信息,请先绑定子卷库存!");
}
// List<BstIvtCutpointivt> areaEmptyNotTaskPoint = bcutpointivtService.getAreaNotTaskPointByStatus("1",
@@ -1617,7 +1615,7 @@ public class SlitterServiceImpl implements SlitterService {
if (ObjectUtil.isEmpty(vehicleCode)) {
throw new BadRequestException("托盘信息不能为空!");
}
if(!vehicleCode.contains("GX")){
if (!vehicleCode.contains("GX")) {
throw new BadRequestException("请扫描或输入正确的托盘码!");
}
@@ -1625,8 +1623,8 @@ public class SlitterServiceImpl implements SlitterService {
lam.eq(BstIvtStockingivt::getVehicle_code, vehicleCode)
.eq(BstIvtStockingivt::getIs_used, SlitterConstant.SLITTER_YES);
BstIvtStockingivt old = bstIvtStockingivtMapper.selectOne(lam);
if(ObjectUtil.isNotEmpty(old)){
throw new BadRequestException("当前托盘:"+vehicleCode+"已绑定在点位:"+old.getPoint_code()+"上,不允许重复绑定!");
if (ObjectUtil.isNotEmpty(old)) {
throw new BadRequestException("当前托盘:" + vehicleCode + "已绑定在点位:" + old.getPoint_code() + "上,不允许重复绑定!");
}
pointByCode.setVehicle_code(vehicleCode);
pointByCode.setIvt_status("1");
@@ -1681,7 +1679,7 @@ public class SlitterServiceImpl implements SlitterService {
List<String> containers = byQzzNos.stream().map(PdmBiSlittingproductionplan::getContainer_name).collect(Collectors.toList());
taskParam.put("containers", containers);
List<BstIvtCutpointivt> areaEmptyNotTaskPoint = bcutpointivtService.getAreaNotTaskPointByStatus("2",
"1", "0","0");
"1", "0", "0");
if (areaEmptyNotTaskPoint.size() == 0) {
throw new BadRequestException(cut.getProduct_area() + "该区域暂存位暂无位置存放满轴");
}
@@ -1725,7 +1723,7 @@ public class SlitterServiceImpl implements SlitterService {
PdmBiSlittingproductionplan plan = slittingproductionplanService.getByContainerName(containerName);
if (ObjectUtil.isNotEmpty(rollWeight)) {
BigDecimal bigDecimal = new BigDecimal(rollWeight);
if (bigDecimal.intValue()<50){
if (bigDecimal.intValue() < 50) {
throw new BadRequestException("子卷重量异常,不能小于50");
}
plan.setWeight(rollWeight);
@@ -2044,12 +2042,12 @@ public class SlitterServiceImpl implements SlitterService {
//判断是否有未配送完成的虚拟分切计划
if (ObjectUtil.isNotEmpty(checkPlans)) {
PdmBiSlittingproductionplan now_checkPlan = checkPlans.get(0);
if("01".equals(now_checkPlan.getStatus())){
log.debug(deviceCode+"气胀轴正在准备,不允许二次呼叫套轴!");
throw new BadRequestException(deviceCode+"气胀轴正在准备,不允许二次呼叫套轴!");
}else if("02".equals(now_checkPlan.getStatus())){
log.debug(deviceCode+"气胀轴配送中,不允许二次呼叫套轴!");
throw new BadRequestException(deviceCode+"气胀轴配送中,不允许二次呼叫套轴!");
if ("01".equals(now_checkPlan.getStatus())) {
log.debug(deviceCode + "气胀轴正在准备,不允许二次呼叫套轴!");
throw new BadRequestException(deviceCode + "气胀轴正在准备,不允许二次呼叫套轴!");
} else if ("02".equals(now_checkPlan.getStatus())) {
log.debug(deviceCode + "气胀轴配送中,不允许二次呼叫套轴!");
throw new BadRequestException(deviceCode + "气胀轴配送中,不允许二次呼叫套轴!");
}
}
//判断分切暂存位是否有已配送的气胀轴或未下料完成的子卷
@@ -2062,8 +2060,8 @@ public class SlitterServiceImpl implements SlitterService {
SlitterTaskUtil.getNumberByResourceCode(deviceCode),
deviceCut.getProduct_area()));
if (emptyPoint.size() == 0) {
log.debug(deviceCode+"对接缓存位不是空位或存在执行中的任务!");
throw new BadRequestException(deviceCode+"对接缓存位不是空位或存在执行中的任务!");
log.debug(deviceCode + "对接缓存位不是空位或存在执行中的任务!");
throw new BadRequestException(deviceCode + "对接缓存位不是空位或存在执行中的任务!");
}
List<PdmBiSlittingproductionplan> plans = new ArrayList<>();
@@ -2073,7 +2071,7 @@ public class SlitterServiceImpl implements SlitterService {
PdmBiSlittingproductionplan plan = slittingproductionplanService.getByContainerNameNotStatus(containerName);
if (ObjectUtil.isEmpty(plan)) {
plan = new PdmBiSlittingproductionplan();
plan.setWorkorder_id(IdUtil.getSnowflake(1,1).nextIdStr());
plan.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr());
}
// 公共部分插入
plan.setOrder_type("1");
@@ -2110,7 +2108,7 @@ public class SlitterServiceImpl implements SlitterService {
plan.setPaper_tube_material("");
plan.setPaper_tube_description("");
// 区分位置创建
if (i==0 && ObjectUtil.isNotEmpty(upLeftSizeK)) {
if (i == 0 && ObjectUtil.isNotEmpty(upLeftSizeK)) {
// 上左
plan.setPaper_tube_or_FRP(upLeftSizeV.startsWith("48") ? "1" : "2");
String[] split = upLeftSizeK.split("\\|");
@@ -2133,7 +2131,7 @@ public class SlitterServiceImpl implements SlitterService {
plan.setLeft_or_right("1");
uLeftLen = SlitterTaskUtil.getPaperLengthInt(plan);
}
if (i==1 && ObjectUtil.isNotEmpty(upRightSizeK)) {
if (i == 1 && ObjectUtil.isNotEmpty(upRightSizeK)) {
// 上右
plan.setPaper_tube_or_FRP(upRightSizeV.startsWith("48") ? "1" : "2");
String[] split = upRightSizeK.split("\\|");
@@ -2156,7 +2154,7 @@ public class SlitterServiceImpl implements SlitterService {
}
uRightLen = SlitterTaskUtil.getPaperLengthInt(plan);
}
if (i==2 && ObjectUtil.isNotEmpty(downLeftSizeK)) {
if (i == 2 && ObjectUtil.isNotEmpty(downLeftSizeK)) {
// 下左
plan.setPaper_tube_or_FRP(downLeftSizeV.startsWith("48") ? "1" : "2");
String[] split = downLeftSizeK.split("\\|");
@@ -2179,7 +2177,7 @@ public class SlitterServiceImpl implements SlitterService {
}
dLeftLen = SlitterTaskUtil.getPaperLengthInt(plan);
}
if (i==4 && ObjectUtil.isNotEmpty(downRightSizeK)) {
if (i == 4 && ObjectUtil.isNotEmpty(downRightSizeK)) {
// 下右
plan.setPaper_tube_or_FRP(downRightSizeV.startsWith("48") ? "1" : "2");
String[] split = downRightSizeK.split("\\|");
@@ -2202,16 +2200,16 @@ public class SlitterServiceImpl implements SlitterService {
}
dRightLen = SlitterTaskUtil.getPaperLengthInt(plan);
}
if (i==0 && ObjectUtil.isEmpty(upLeftSizeK)) {
if (i == 0 && ObjectUtil.isEmpty(upLeftSizeK)) {
plan.setIs_delete("1");
}
if (i==1 && ObjectUtil.isEmpty(upRightSizeK)) {
if (i == 1 && ObjectUtil.isEmpty(upRightSizeK)) {
plan.setIs_delete("1");
}
if (i==2 && ObjectUtil.isEmpty(downLeftSizeK)) {
if (i == 2 && ObjectUtil.isEmpty(downLeftSizeK)) {
plan.setIs_delete("1");
}
if (i==3 && ObjectUtil.isEmpty(downRightSizeK)) {
if (i == 3 && ObjectUtil.isEmpty(downRightSizeK)) {
plan.setIs_delete("1");
}
plans.add(plan);
@@ -2219,7 +2217,7 @@ public class SlitterServiceImpl implements SlitterService {
if (uLeftLen + uRightLen > 1700 || dLeftLen + dRightLen > 1700) {
throw new BadRequestException("同一根轴长度不能超过气胀轴长度,请确认是否选择正确!");
}
log.warn("forcedFeedShaft_______:{}",deviceCode);
log.warn("forcedFeedShaft_______:{}", deviceCode);
slittingproductionplanService.saveOrUpdateBatch(plans);
// 机台打开
LambdaUpdateWrapper<StIvtCutpointivt> lamu = new LambdaUpdateWrapper<>();
@@ -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();
@@ -2256,12 +2255,12 @@ public class SlitterServiceImpl implements SlitterService {
String workorder_id = param.getString("workorder_id");
PdmBiSlittingproductionplan plan = slittingproductionplanService.getById(workorder_id);
log.info("当前加急送轴的计划为:{}", plan);
if(!"01".equals(plan.getStatus())){
if (!"01".equals(plan.getStatus())) {
res.put("status", HttpStatus.HTTP_OK);
res.put("message", "加急失败,当前计划正在套轴!");
return res;
}
if(!"P1".equals(plan.getManufacture_sort())){
if (!"P1".equals(plan.getManufacture_sort())) {
res.put("status", HttpStatus.HTTP_OK);
res.put("message", "加急失败,当前计划已加急过一次!");
return res;
@@ -2274,15 +2273,16 @@ public class SlitterServiceImpl implements SlitterService {
.eq(PdmBiSlittingproductionplan::getIs_delete, SlitterConstant.SLITTER_NO);
//判断更新是否成功
boolean flag = slittingproductionplanService.update(updateWrapper);
if(flag){
if (flag) {
res.put("status", HttpStatus.HTTP_OK);
res.put("message", "加急成功!");
}else{
} else {
res.put("status", HttpStatus.HTTP_OK);
res.put("message", "加急失败,请刷新再试!");
}
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);
@@ -2493,7 +2497,7 @@ public class SlitterServiceImpl implements SlitterService {
for (int i = 0; i < num; i++) {
String containerName = area + code + "-" + i;
PdmBiSlittingproductionplan plan = new PdmBiSlittingproductionplan();
plan.setWorkorder_id(IdUtil.getSnowflake(1,1).nextIdStr());
plan.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr());
// 公共部分插入
plan.setOrder_type("1");
plan.setContainer_name(containerName);

View File

@@ -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];