Commit eaa8af9e LN

SP回温任务增加重发

1 个父辈 b5fa96fd
......@@ -3,10 +3,12 @@ package com.neotel.smfcore.core.device.bean;
import cn.hutool.core.util.ObjectUtil;
import com.google.common.base.Strings;
import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.message.enums.MessageType;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.system.service.po.AlarmInfo;
import com.neotel.smfcore.core.system.service.po.DataLog;
import lombok.Data;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;
......@@ -810,4 +812,12 @@ public class StatusBean {
setMsg(lanMsg);
}
}
public void addRewarmTask(DataLog task, DataLog putingTask ) {
setOp(OP.REWARM_TAKING);
addData("posId", task.getPosName());
addData("secondPosId", putingTask.getPosName());
addData("plateW", task.getW() + "");
addData("plateH", task.getH() + "");
}
}
......@@ -22,7 +22,6 @@ import com.neotel.smfcore.core.device.enums.BOX_STATUS;
import com.neotel.smfcore.core.device.enums.OP;
import com.neotel.smfcore.core.device.enums.OP_STATUS;
import com.neotel.smfcore.core.device.handler.impl.BaseDeviceHandler;
import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.storage.enums.DeviceType;
import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.storage.service.po.StoragePos;
......@@ -31,7 +30,6 @@ import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.security.annotation.AnonymousAccess;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
......@@ -329,23 +327,77 @@ public class SpBoxHandler extends BaseDeviceHandler {
*/
private StatusBean handleSolderPaste(String cid, StatusBean statusBean) {
if (statusBean.getStatus() == StorageConstants.STATUS.READY) {
//锡膏料仓空闲
//入库中,不发其他任务。
if (statusBean.getOp() == OP.PUT_IN) {
return null;
}
//判断是否有执行中的入库,出库,回温任务,有的话不需要发
int executTaskCount = 0;
//如果有执行中的任务先不发
Collection<DataLog> queueTasks = taskService.getQueueTasks();
for (DataLog task : queueTasks) {
if (cid.equals(task.getCid()) && task.isExecuting()) {
if(!task.isMixTask()){
executTaskCount++;
}
if (task.isRewarmTakingTask() && task.needReSendToClient()) {
log.error("cid[" + cid + "]的回温取料任务[" + task.getPosName() + "]" + task.getBarcode() + "超过60秒仍未完成,重新发送到客户端!");
task.setUpdateDate(new Date());
taskService.updateQueueTask(task);
DataLog rewarmPuttingTask = findAnotherTask(OP.REWARM_PUTTING, task.getBarcode());
if (rewarmPuttingTask == null) {
log.error("[" + cid + "]回温取料任务[" + task.getBarcode() + "][" + task.getPosName() + "]未找到回温放料任务");
} else {
statusBean.addRewarmTask(task, rewarmPuttingTask);
log.info(task.getBarcode() + "回温移库任务重发到客户端[" + task.getPosName() + "]=>" + rewarmPuttingTask.getPosName() + ",W:" + task.getW() + ",H:" + task.getH());
rewarmPuttingTask.setUpdateDate(new Date());
taskService.updateQueueTask(rewarmPuttingTask);
return statusBean;
}
} else if (task.isRewarmPuttingTask() && task.needReSendToClient()) {
log.error("cid[" + cid + "]的回温放料任务[" + task.getPosName() + "]" + task.getBarcode() + "超过60秒仍未完成,重新发送到客户端!");
task.setUpdateDate(new Date());
taskService.updateQueueTask(task);
DataLog rewarmTakeingTask = findAnotherTask(OP.REWARM_TAKING, task.getBarcode());
if (rewarmTakeingTask == null) {
log.error("[" + cid + "]回温放料任务[" + task.getBarcode() + "][" + task.getPosName() + "]未找到回温取料任务");
} else {
statusBean.addRewarmTask(rewarmTakeingTask, task);
log.info(task.getBarcode() + "回温移库任务重发到客户端[" + rewarmTakeingTask.getPosName() + "]=>" + task.getPosName() + ",W:" + task.getW() + ",H:" + task.getH());
rewarmTakeingTask.setUpdateDate(new Date());
taskService.updateQueueTask(rewarmTakeingTask);
return statusBean;
}
}
}
}
if (executTaskCount >= 2) {
return null;
}
//锡膏料仓空闲
queueTasks = taskService.getQueueTasks();
for (DataLog task : queueTasks) {
if (cid.equals(task.getCid()) && task.isWait()) {
if (task.isRewarmTakingTask()) {
//回温取料任务
statusBean.setOp(OP.REWARM_TAKING);
statusBean.addData("posId", task.getPosName());
statusBean.addData("plateW", task.getW()+"");
statusBean.addData("plateH", task.getH()+"");
DataLog rewarmPuttingTask = findRewarmPuttingTask(task);
// statusBean.setOp(OP.REWARM_TAKING);
// statusBean.addData("posId", task.getPosName());
// statusBean.addData("plateW", task.getW()+"");
// statusBean.addData("plateH", task.getH()+"");
DataLog rewarmPuttingTask = findAnotherTask(OP.REWARM_PUTTING, task.getBarcode());
if (rewarmPuttingTask == null) {
log.error("[" + cid + "]回温取料任务[" + task.getBarcode() + "][" + task.getPosName() + "]未找到回温放料任务");
} else {
statusBean.addData("secondPosId", rewarmPuttingTask.getPosName());
statusBean.addRewarmTask(task, rewarmPuttingTask);
// statusBean.addData("secondPosId", rewarmPuttingTask.getPosName());
log.info(task.getBarcode() + "回温移库信息发送到客户端[" + task.getPosName() + "]=>" + rewarmPuttingTask.getPosName()+",W:"+task.getW()+",H:"+task.getH());
log.info(task.getBarcode() + "回温移库信息发送到客户端[" + task.getPosName() + "]=>" + rewarmPuttingTask.getPosName() + ",W:" + task.getW() + ",H:" + task.getH());
rewarmPuttingTask.setStatus(OP_STATUS.EXECUTING.name());
taskService.updateQueueTask(rewarmPuttingTask);
......@@ -400,14 +452,14 @@ public class SpBoxHandler extends BaseDeviceHandler {
/**
* 根据回温取料任务查找回温放料任务
*
* @param rewarmTakingTask
* @param barcode
* @return
*/
private DataLog findRewarmPuttingTask(DataLog rewarmTakingTask) {
private DataLog findAnotherTask( int type,String barcode) {
Collection<DataLog> queueTasks = taskService.getQueueTasks();
for (DataLog dataLog : queueTasks) {
if (dataLog.isRewarmPuttingTask()) {
if (dataLog.getBarcode().equals(rewarmTakingTask.getBarcode())) {
if (dataLog.getType()==type) {
if (dataLog.getBarcode().equals(barcode)) {
return dataLog;
}
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!