Commit 9cc55175 sunke

料架取消任务时关灯

西门子接口验证修改
1 个父辈 6bc63691
...@@ -247,7 +247,7 @@ public class StatusBean { ...@@ -247,7 +247,7 @@ public class StatusBean {
public void addOp(Map<String, String> opMap){ public void addOp(Map<String, String> opMap){
if(opMap != null && !opMap.isEmpty()){ if(opMap != null && !opMap.isEmpty()){
for (Map.Entry<String, String> op : opMap.entrySet()) { for (Map.Entry<String, String> op : opMap.entrySet()) {
data.put(op.getKey(), op.getValue()); addData(op.getKey(), op.getValue());
} }
} }
} }
......
...@@ -59,6 +59,16 @@ public class NLMShelfHandler extends BaseDeviceHandler { ...@@ -59,6 +59,16 @@ public class NLMShelfHandler extends BaseDeviceHandler {
Map<String, List<DataLog>> outMap = new HashMap<>(); Map<String, List<DataLog>> outMap = new HashMap<>();
if (statusBean != null) { if (statusBean != null) {
String cid = statusBean.getCid();
List<DataLog> finishedTasks = taskService.getFinishedTasks();
for (DataLog finishedTask : finishedTasks) {
if(finishedTask.getCid().equals(cid) && finishedTask.isCheckOutTask() && finishedTask.isCancel()){
//取消的任务,需要关灯
taskService.removeFinishedTask(finishedTask);
statusBean.addData("close",finishedTask.getPosName());
}
}
Map<String, String> opMap = DevicesStatusUtil.getAndRemoveOp(statusBean.getCid()); Map<String, String> opMap = DevicesStatusUtil.getAndRemoveOp(statusBean.getCid());
statusBean.addOp(opMap); statusBean.addOp(opMap);
} }
......
...@@ -94,7 +94,6 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -94,7 +94,6 @@ public class NLPShelfHandler extends BaseDeviceHandler{
} }
} }
Barcode barcodeSave = smfApi.resolveBarcode(new CodeValidateParam( loginUser,groupId,storageId,code,token)); Barcode barcodeSave = smfApi.resolveBarcode(new CodeValidateParam( loginUser,groupId,storageId,code,token));
if(barcodeSave == null){ if(barcodeSave == null){
barcodeSave = smfApi.canPutInBeforeResolve(code); barcodeSave = smfApi.canPutInBeforeResolve(code);
...@@ -104,14 +103,6 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -104,14 +103,6 @@ public class NLPShelfHandler extends BaseDeviceHandler{
barcodeSave = codeResolve.resolveOneValideBarcode("=1x1="+code); barcodeSave = codeResolve.resolveOneValideBarcode("=1x1="+code);
} }
Date expireDate = barcodeSave.getExpireDate();
if (expireDate != null) {
if (System.currentTimeMillis() > expireDate.getTime()) {
throw new ValidateException("smfcore.error.barcode.expired", "物料已过期,无法入库.");
}
}
//从API验证 //从API验证
Barcode verResult = smfApi.canPutInAfterResolve(barcodeSave); Barcode verResult = smfApi.canPutInAfterResolve(barcodeSave);
...@@ -128,6 +119,14 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -128,6 +119,14 @@ public class NLPShelfHandler extends BaseDeviceHandler{
return ResultBean.newErrorResult(1, "smfcore.error.barcode.noValidCode", "无效的条码"); return ResultBean.newErrorResult(1, "smfcore.error.barcode.noValidCode", "无效的条码");
} }
Date expireDate = barcode.getExpireDate();
if (expireDate != null) {
if (System.currentTimeMillis() > expireDate.getTime()) {
throw new ValidateException("smfcore.error.barcode.expired", "物料已过期,无法入库.");
}
}
String pn = barcode.getPartNumber(); String pn = barcode.getPartNumber();
String reelId = barcode.getBarcode(); String reelId = barcode.getBarcode();
String num = barcode.getAmount() + ""; String num = barcode.getAmount() + "";
...@@ -180,6 +179,22 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -180,6 +179,22 @@ public class NLPShelfHandler extends BaseDeviceHandler{
handleMsg(statusBean); handleMsg(statusBean);
statusBean = saveAlarmAndHumidity(statusBean); statusBean = saveAlarmAndHumidity(statusBean);
if (statusBean != null) {
String cid = statusBean.getCid();
List<DataLog> finishedTasks = taskService.getFinishedTasks();
for (DataLog finishedTask : finishedTasks) {
if(finishedTask.getCid().equals(cid) && finishedTask.isCheckOutTask() && finishedTask.isCancel()){
//取消的任务,需要关灯
taskService.removeFinishedTask(finishedTask);
statusBean.addData("close",finishedTask.getPosName());
}
}
Map<String, String> opMap = DevicesStatusUtil.getAndRemoveOp(statusBean.getCid());
statusBean.addOp(opMap);
}
OrderSetting orderSetting = dataCache.getOrderSetting(); OrderSetting orderSetting = dataCache.getOrderSetting();
boolean openZhiYin = orderSetting.getShelfLightType().equals(1); boolean openZhiYin = orderSetting.getShelfLightType().equals(1);
Map<String, List<DataLog>> outMap = new HashMap<>(); Map<String, List<DataLog>> outMap = new HashMap<>();
...@@ -223,8 +238,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{ ...@@ -223,8 +238,7 @@ public class NLPShelfHandler extends BaseDeviceHandler{
} }
List<DataLog> dataLogs = getLightGuideTask(outMap); List<DataLog> dataLogs = getLightGuideTask(outMap);
for (DataLog task : for (DataLog task : dataLogs) {
dataLogs) {
statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name()); statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name());
} }
......
...@@ -67,6 +67,17 @@ public class NLShelfHandler extends BaseDeviceHandler { ...@@ -67,6 +67,17 @@ public class NLShelfHandler extends BaseDeviceHandler {
Map<String, List<DataLog>> outMap = new HashMap<>(); Map<String, List<DataLog>> outMap = new HashMap<>();
if (statusBean != null) { if (statusBean != null) {
String cid = statusBean.getCid();
List<DataLog> finishedTasks = taskService.getFinishedTasks();
for (DataLog finishedTask : finishedTasks) {
if(finishedTask.getCid().equals(cid) && finishedTask.isCheckOutTask() && finishedTask.isCancel()){
//取消的任务,需要关灯
taskService.removeFinishedTask(finishedTask);
statusBean.addData("close",finishedTask.getPosName());
}
}
Map<String, String> opMap = DevicesStatusUtil.getAndRemoveOp(statusBean.getCid()); Map<String, String> opMap = DevicesStatusUtil.getAndRemoveOp(statusBean.getCid());
statusBean.addOp(opMap); statusBean.addOp(opMap);
} }
...@@ -99,8 +110,7 @@ public class NLShelfHandler extends BaseDeviceHandler { ...@@ -99,8 +110,7 @@ public class NLShelfHandler extends BaseDeviceHandler {
} }
List<DataLog> dataLogs = getLightGuideTask(outMap); List<DataLog> dataLogs = getLightGuideTask(outMap);
for (DataLog task : for (DataLog task : dataLogs) {
dataLogs) {
statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name()); statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name());
} }
return statusBean; return statusBean;
......
...@@ -55,7 +55,7 @@ public class DataLog extends BasePo implements Serializable { ...@@ -55,7 +55,7 @@ public class DataLog extends BasePo implements Serializable {
/** /**
* 所属料仓 * 所属料仓
*/ */
private String storageName; private String storageName = "";
/** /**
* 料仓 cid * 料仓 cid
*/ */
......
...@@ -133,52 +133,49 @@ public class SiemensApi extends BaseSmfApiListener { ...@@ -133,52 +133,49 @@ public class SiemensApi extends BaseSmfApiListener {
try { try {
Collection<CodeBean> codeBeans = codeResolve.resolveCodeStr(codeStr, COMPONENT_TYPE.COMPONENT); Collection<CodeBean> codeBeans = codeResolve.resolveCodeStr(codeStr, COMPONENT_TYPE.COMPONENT);
for (CodeBean codebean : codeBeans) { for (CodeBean codebean : codeBeans) {
if (codebean.hasReelSizeInfo()) { LotCheckInfo info = lotCheckIn(codebean.getCodeStr(),inCheckUrl);
LotCheckInfo info = lotCheckIn(codebean.getCodeStr(),inCheckUrl); if (info != null && info.isStatus() && ObjectUtil.isNotEmpty(info.getPartnum()) && ObjectUtil.isNotEmpty(info.getQuantity())) {
if (info != null && info.isStatus() && ObjectUtil.isNotEmpty(info.getPartnum()) && ObjectUtil.isNotEmpty(info.getQuantity())) { //查找元器件是否存在
//查找元器件是否存在 com.neotel.smfcore.core.barcode.service.po.Component component = componentManager.findOneByPN(info.getPartnum());
com.neotel.smfcore.core.barcode.service.po.Component component = componentManager.findOneByPN(info.getPartnum()); if (component == null) {
if (component == null) { //新建元器件和条码
//新建元器件和条码 component = new com.neotel.smfcore.core.barcode.service.po.Component();
component = new com.neotel.smfcore.core.barcode.service.po.Component(); component.setPartNumber(info.getPartnum());
component.setPartNumber(info.getPartnum()); component.setAmount(info.getQuantity());
component.setAmount(info.getQuantity()); component.setHeight(1);
component.setHeight(codebean.getReelHeight()); component.setPlateSize(1);
component.setPlateSize(codebean.getReelWidth()); component = componentManager.saveComponent(component);
component = componentManager.saveComponent(component); log.info("siemensCheckCode 新增 元器件:[" + component.getPartNumber() + "][" + component.getAmount() + "][" + component.getPlateSize() + "]X[" + component.getHeight() + "]");
log.info("siemensCheckCode 新增 元器件:[" + component.getPartNumber() + "][" + component.getAmount() + "][" + component.getPlateSize() + "]X[" + component.getHeight() + "]"); } else if (component.getAmount() != info.getQuantity()) {
} else if (component.getAmount() != info.getQuantity()) { component.setAmount(info.getQuantity());
component.setAmount(info.getQuantity()); component = componentManager.saveComponent(component);
component = componentManager.saveComponent(component); log.info("siemensCheckCode 修改 元器件:[" + component.getPartNumber() + "]数量为[" + component.getAmount() + "] ");
log.info("siemensCheckCode 修改 元器件:[" + component.getPartNumber() + "]数量为[" + component.getAmount() + "] ");
}
//判断条码是否存在
Barcode barcode = barcodeManager.findByBarcode(codebean.getCodeStr());
if (barcode == null) {
barcode = new Barcode();
barcode.setPlateSize(component.getPlateSize());
barcode.setHeight(component.getHeight());
barcode.setBarcode(codebean.getCodeStr());
barcode.setAmount(component.getAmount());
barcode.setFullCode(codebean.getCodeStr());
barcode.setPartNumber(component.getPartNumber());
barcode = barcodeManager.saveBarcode(barcode);
log.info("siemensCheckCode 新增 条码:[" + barcode.getBarcode() + "] ");
}else if(!barcode.getPartNumber().equals(component.getPartNumber())){
barcode.setPlateSize(component.getPlateSize());
barcode.setHeight(component.getHeight());
barcode.setBarcode(codebean.getCodeStr());
barcode.setAmount(component.getAmount());
barcode.setPartNumber(component.getPartNumber());
log.info("siemensCheckCode 修改 条码:[" + barcode.getBarcode() + "] pn为 ["+barcode.getPartNumber()+"] ");
}
return barcode;
} }
//判断条码是否存在
Barcode barcode = barcodeManager.findByBarcode(codebean.getCodeStr());
if (barcode == null) {
barcode = new Barcode();
barcode.setPlateSize(component.getPlateSize());
barcode.setHeight(component.getHeight());
barcode.setBarcode(codebean.getCodeStr());
barcode.setAmount(component.getAmount());
barcode.setFullCode(codebean.getCodeStr());
barcode.setPartNumber(component.getPartNumber());
barcode = barcodeManager.saveBarcode(barcode);
log.info("siemensCheckCode 新增 条码:[" + barcode.getBarcode() + "] ");
}else if(!barcode.getPartNumber().equals(component.getPartNumber())){
barcode.setPlateSize(component.getPlateSize());
barcode.setHeight(component.getHeight());
barcode.setBarcode(codebean.getCodeStr());
barcode.setAmount(component.getAmount());
barcode.setPartNumber(component.getPartNumber());
log.info("siemensCheckCode 修改 条码:[" + barcode.getBarcode() + "] pn为 ["+barcode.getPartNumber()+"] ");
}
return barcode;
} }
} }
throw new ValidateException("siemens.barcode.failed","SIEMENS条码验证失败"); throw new ValidateException("siemens.barcode.failed","SIEMENS验证条码["+codeStr+"]失败");
} catch (Exception ex) { } catch (Exception ex) {
log.info("siemensCheckCode 验证条码 [" + codeStr + "] 出错:", ex); log.info("siemensCheckCode 验证条码 [" + codeStr + "] 出错:", ex);
throw new ValidateException("siemens.barcode.error","SIEMENS条码验证出错:" + ex.getMessage()); throw new ValidateException("siemens.barcode.error","SIEMENS条码验证出错:" + ex.getMessage());
...@@ -208,7 +205,7 @@ public class SiemensApi extends BaseSmfApiListener { ...@@ -208,7 +205,7 @@ public class SiemensApi extends BaseSmfApiListener {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("Siemens[" + url + "]:料盘[" + lot + "][" + action + "]出错:", e); log.error("Siemens[" + url + "]:料盘[" + lot + "][" + action + "]出错:" + e.getMessage());
} }
return null; return null;
// { // {
......
...@@ -27,29 +27,27 @@ public class LotCheckInfo implements Serializable { ...@@ -27,29 +27,27 @@ public class LotCheckInfo implements Serializable {
public static LotCheckInfo toObj(String lotId,String result) { public static LotCheckInfo toObj(String lotId,String result) {
try { try {
Map<String, Object> map = JsonUtil.toMap(result); Map<String, Object> map = JsonUtil.toMap(result);
if (map.containsKey("Status")) { Object statusStr = map.containsKey("Status");
boolean s = Boolean.parseBoolean(map.get("Status").toString()); if (statusStr != null) {
boolean s = Boolean.parseBoolean(statusStr.toString());
LotCheckInfo lotCheckInfo = new LotCheckInfo(); LotCheckInfo lotCheckInfo = new LotCheckInfo();
lotCheckInfo.setStatus(s); lotCheckInfo.setStatus(s);
lotCheckInfo.setLotId(lotId); lotCheckInfo.setLotId(lotId);
if (map.containsKey("Message")) { Object messageStr = map.get("Message");
lotCheckInfo.setMessage(map.get("Message").toString()); if (messageStr != null) {
lotCheckInfo.setMessage(messageStr.toString());
} }
if (map.containsKey("Code")) { Object codeStr = map.get("Code");
lotCheckInfo.setCode(map.get("Code").toString()); if (codeStr != null) {
lotCheckInfo.setCode(codeStr.toString());
} }
if (map.containsKey("partnum")) { Object partnum = map.get("partnum");
Object partnum = map.get("partnum"); if(partnum != null){
if(partnum != null){ lotCheckInfo.setPartnum(partnum.toString());
lotCheckInfo.setPartnum(partnum.toString());
}
} }
if (map.containsKey("quantity")) { Object quantity = map.get("quantity");
Object quantity = map.get("quantity"); if(quantity != null){
if(quantity != null){ lotCheckInfo.setQuantity(Integer.parseInt(quantity.toString()));
lotCheckInfo.setQuantity(Integer.parseInt(quantity.toString()));
}
} }
return lotCheckInfo; return lotCheckInfo;
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!