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