Commit 8aa2b2db LN

bug修改

1 个父辈 beeed935
package com.neotel.smfcore.core.device.handler.impl; package com.neotel.smfcore.core.device.handler.impl;
import com.google.common.base.Strings;
import com.neotel.smfcore.common.exception.ValidateException;
import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean; import com.neotel.smfcore.core.device.bean.StatusBean;
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.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.system.service.po.DataLog;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
import java.util.Map;
@Service @Service
@Slf4j @Slf4j
public class LineBoxHandler extends BaseDeviceHandler { public class LineBoxHandler extends BaseDeviceHandler {
...@@ -42,6 +50,117 @@ public class LineBoxHandler extends BaseDeviceHandler { ...@@ -42,6 +50,117 @@ public class LineBoxHandler extends BaseDeviceHandler {
return statusBean; return statusBean;
} }
@Override
protected StatusBean handleInOutFinished(StatusBean statusBean) {
Map<String, BoxStatusBean> statusOfBoxes = statusBean.getBoxStatus();
if (statusOfBoxes != null) {
for (BoxStatusBean boxStatus : statusOfBoxes.values()) {
try {
//出库入库完成处理
int status = boxStatus.getStatus();
String posName = boxStatus.getPosId();
String barcode=boxStatus.getBarcode();
int executeTime=boxStatus.getExecuteTime();
if ((!Strings.isNullOrEmpty(posName))||(!Strings.isNullOrEmpty(barcode))) {//客户端发一次完成之后,会发空的 posName,不需要处理
if (BOX_STATUS.IN_FINISHED == status) {//入仓完成
finishedPutIn(statusBean.getCid(),posName,barcode,executeTime);
} else if (BOX_STATUS.IN_FAILED == status) {//入库失败
//暂不处理
} else if (BOX_STATUS.OUT_FINISHED == status) {//出仓完成
finishedOutPos(statusBean.getCid(), posName,barcode, executeTime,OP_STATUS.OUT_BOX);
} else if (BOX_STATUS.OUT_END == status) {//出库完成(放到仓门口
// endOutTask(statusBean.getCid(),posName,barcode);
//更改出库状态为OUT_DOOR
List<DataLog> finishedTasks = taskService.getFinishedTasks();
for (DataLog finishedTask : finishedTasks) {
if (finishedTask.getCid().equals(statusBean.getCid()) && finishedTask.isCheckOutTask() && finishedTask.isOutBox()) {
if (posName.equals(finishedTask.getPosName())) {
//已出仓但未放到门口,更改状态
finishedTask.setStatus(OP_STATUS.BOXDOOR.name());
taskService.updateFinishedTask(finishedTask);
log.info("物料" + finishedTask.getBarcode() + "已从库位" + finishedTask.getPosName() + "取出放到门口,更改状态="+finishedTask.getStatus());
return statusBean;
}
}
}
log.error(posName + "出库放到门口时,未找到对应的出库任务");
}
// else if (BOX_STATUS.REWARM_TAKING_END == status) {
// //回温取料完成, 将库位清空
// DataLog takingTask = taskService.findExecutingTask(statusBean.getCid(), boxStatus.getPosId());
// if (takingTask == null) {
// //从已完成列表中找,如果还找不到就忽略
// takingTask = taskService.findFinishedTask(statusBean.getCid(), boxStatus.getPosId());
// }
// if (takingTask != null) {
// if (takingTask.isCancel()) {//被取消的任务,客户端发完成信号过来,修改取消状态为已完成
// log.warn(statusBean.getCid() + "回温取料[" + boxStatus.getPosId() + "]完成时任务不存在");
// }
// DataLog puttingTask = null;
// for (DataLog dataLog : taskMap.values()) {
// if (dataLog.getCid().equals(statusBean.getCid())) {
// if (dataLog.getBarcode().equals(takingTask.getBarcode())) {
// if (dataLog.isRewarmPuttingTask()) {
// puttingTask = dataLog;
// }
// }
// }
// }
// rewarmTakingEnd(takingTask);
// if (puttingTask != null) {
// puttingTask.setStatus(OP_STATUS.EXECUTING.name());
// //dataLog.setSourceType();
//
// dataLogDao.save(puttingTask);
// taskMap.put(puttingTask.getId(), puttingTask);
// statusBean.addData("secondPosId", puttingTask.getPosName());
// }
// } else {
// log.warn(statusBean.getCid() + "出仓位[" + boxStatus.getPosId() + "]完成时任务不存在");
// }
// } else if (BOX_STATUS.REWARM_PUTTING_END == status) {
// //回温放料结束
// DataLog puttingTask = findExecutingTask(statusBean.getCid(), boxStatus.getPosId());
// if (puttingTask == null) {
// //从已完成列表中找,如果还找不到就忽略
// puttingTask = findFinishedTask(statusBean.getCid(), boxStatus.getPosId());
// }
// if (puttingTask != null) {
// if (puttingTask.isCancel()) {//被取消的任务,客户端发完成信号过来,修改取消状态为已完成
// log.warn(statusBean.getCid() + "回温取料[" + boxStatus.getPosId() + "]完成时任务不存在");
// }
// }
// rewarmPuttingEnd(puttingTask);
//
// } else if (BOX_STATUS.MIX_TAKING == status) {
// //搅拌取料
//
// } else if (BOX_STATUS.WAIT_MIX == status) {
// //搅拌取料结束,等待搅拌
//
// } else if (BOX_STATUS.MIXING == status) {
// //搅拌中
// changeSolderStatus(boxStatus.getPosId(), SOLDER_STATUS.MIXING);
// } else if (BOX_STATUS.MIX_PUTTING == status) {
// //搅拌完成
//
// } else if (BOX_STATUS.MIX_END == status) {
// //搅拌放回原位完成
// DataLog mixTask = findExecutingTask(statusBean.getCid(), boxStatus.getPosId());
// mixEnd(mixTask);
// }
}
} catch (ValidateException e) {
log.error("更新状态时出错" + e.getMessage());
}
}
}
return statusBean;
}
@Override @Override
public DeviceType getDeviceType() { public DeviceType getDeviceType() {
return DeviceType.LINE; return DeviceType.LINE;
......
...@@ -529,34 +529,34 @@ public class DeviceController { ...@@ -529,34 +529,34 @@ public class DeviceController {
@ResponseBody @ResponseBody
@AnonymousAccess @AnonymousAccess
public ResultBean updateLocInfo(HttpServletRequest request) { public ResultBean updateLocInfo(HttpServletRequest request) {
// String code = request.getParameter("barcode"); String code = request.getParameter("barcode");
// String status = request.getParameter("status"); String status = request.getParameter("status");
// String loc = request.getParameter("loc"); String loc = request.getParameter("loc");
// String cid = request.getParameter("cid"); String cid = request.getParameter("cid");
// //获取到当前执行的任务 //获取到当前执行的任务
// DataLog opTask = null; DataLog opTask = null;
// Collection<DataLog> allTasks = taskService.getAllTasks(); Collection<DataLog> allTasks = taskService.getAllTasks();
// for (DataLog task : allTasks) { for (DataLog task : allTasks) {
// if (task.isCheckOutTask() && code.equals(task.getBarcode())) { if (task.isCheckOutTask() && code.equals(task.getBarcode())) {
// opTask = task; opTask = task;
// break; break;
// } }
// } }
// if (opTask == null) { if (opTask == null) {
// return ResultBean.newErrorResult(303, "smfcore.task.notExist", "任务不存在"); return ResultBean.newErrorResult(303, "smfcore.task.notExist", "任务不存在");
// } }
// status = status.toUpperCase(); status = status.toUpperCase();
// log.info("更新任务["+code+"]状态:{}-->{}", opTask.getStatus(), status); log.info("更新任务["+code+"]状态:{}-->{}", opTask.getStatus(), status);
// OP_STATUS updateStatus = OP_STATUS.valueOf(status); OP_STATUS updateStatus = OP_STATUS.valueOf(status);
// if (updateStatus != null) { if (updateStatus != null) {
// DataLog task = taskService.findFinishedOutTask(cid, opTask.getPosName()); DataLog task = taskService.findFinishedOutTask(cid, opTask.getPosName());
// if(task != null){ if(task != null){
// task.setStatus(updateStatus.name()); task.setStatus(updateStatus.name());
// taskService.updateFinishedTask(task); taskService.updateFinishedTask(task);
// } }
// } else { } else {
// log.info(code + "更新状态时未找到状态:" + status + ""); log.info(code + "更新状态时未找到状态:" + status + "");
// } }
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
} }
@ApiOperation("全部出库") @ApiOperation("全部出库")
......
...@@ -322,4 +322,26 @@ public class TaskShelfController { ...@@ -322,4 +322,26 @@ public class TaskShelfController {
return ResultBean.newOkResult(TaskShelfUtil.taskShelfMap); return ResultBean.newOkResult(TaskShelfUtil.taskShelfMap);
} }
@ApiOperation("产线扫码亮灯")
@PostMapping(value = "/codeLed")
@ResponseBody
@AnonymousAccess
public ResultBean codeLed(HttpServletRequest request) {
//扫码后,解析条码,从料架列表中查找对应位置
String barcodeStr = request.getParameter("code");
Barcode barcode = codeResolve.resolveOneValideBarcode(barcodeStr);
if (barcode == null) {
log.info("codeLed 未找到有效条码[" + barcodeStr + "]");
return ResultBean.newErrorResult(99, "smfcore.error.barcode.invalid", "未找到有效条码");
}
int loc = TaskShelfUtil.getLastLoc(barcode.getBarcode());
return ResultBean.newOkResult(loc);
}
} }
...@@ -452,4 +452,14 @@ public class TaskShelfUtil { ...@@ -452,4 +452,14 @@ public class TaskShelfUtil {
saveShelfLocMap(shelfLocMap); saveShelfLocMap(shelfLocMap);
} }
public static int getLastLoc(String barcode){
for (Map<String, ShelfInfo> shelfInfoMap : taskShelfMap.values()) {
for (ShelfInfo shelf : shelfInfoMap.values()) {
int loc=shelf.getBarcodeLoc(barcode);
return loc;
}
}
return -1;
}
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!