Commit eaa8af9e LN

SP回温任务增加重发

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