Commit dcc32d1c LN

1.设备上线时需要同步reel到韩华。

2.工单详情相同PN会有重复数据。
3.韩华RequestDeliveryOrder同时只执行一个工单,如有未关闭的返回2014。
4.
1 个父辈 1f4db1e4
...@@ -871,7 +871,10 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -871,7 +871,10 @@ public class BaseDeviceHandler implements IDeviceHandler {
//状态变化 //状态变化
if(statusBean.getStatus()!=preStatus){ if(statusBean.getStatus()!=preStatus){
smfApi.deviceStatusChanges(new String[]{statusBean.getCid()},new Integer[]{statusBean.getStatus()}); //如果是从离线到上线,或者从上线到离线才通知
if(preStatus==-1||preStatus==0){
smfApi.deviceStatusChanges(new String[]{statusBean.getCid()},new Integer[]{statusBean.getStatus()});
}
} }
// //判断是否刚刚上线 // //判断是否刚刚上线
......
...@@ -587,7 +587,8 @@ public class LiteOrderCache { ...@@ -587,7 +587,8 @@ public class LiteOrderCache {
List<String> availableStorageIds = dataCache.getAvailableStorageIds(); List<String> availableStorageIds = dataCache.getAvailableStorageIds();
CHECKOUT_TYPE checkoutType = dataCache.getCheckOutType(); CHECKOUT_TYPE checkoutType = dataCache.getCheckOutType();
log.info("工单[" + orderNo + "]出库前需要进行缺料检查"); log.info("工单[" + orderNo + "]出库前需要进行缺料检查"); //需要过滤掉刚刚查找到的库位号
List<String> findPosIds=new ArrayList<>();
//其他出库模式一次性全部生成任务 //其他出库模式一次性全部生成任务
List<LiteOrderItem> newItems = new ArrayList<>(); List<LiteOrderItem> newItems = new ArrayList<>();
for (LiteOrderItem orderItem : cacheOrder.getOrderItems()) { for (LiteOrderItem orderItem : cacheOrder.getOrderItems()) {
...@@ -600,6 +601,7 @@ public class LiteOrderCache { ...@@ -600,6 +601,7 @@ public class LiteOrderCache {
int remainReelCount = orderItem.getNeedReelCount() - orderItem.getTotalOutReelCount(); int remainReelCount = orderItem.getNeedReelCount() - orderItem.getTotalOutReelCount();
Collection<String> excludePosIds = excludeOutPosIds(); Collection<String> excludePosIds = excludeOutPosIds();
excludePosIds.addAll(findPosIds);
//此PN未完成 //此PN未完成
if (remainNum > 0 || remainReelCount > 0) { if (remainNum > 0 || remainReelCount > 0) {
if (outBom) { if (outBom) {
...@@ -640,9 +642,10 @@ public class LiteOrderCache { ...@@ -640,9 +642,10 @@ public class LiteOrderCache {
liteOrderItemManager.save(orderItem); liteOrderItemManager.save(orderItem);
break; break;
} else { } else {
findPosIds.add(pos.getId());
assignNum = assignNum + pos.getBarcode().getAmount(); assignNum = assignNum + pos.getBarcode().getAmount();
assignReelCount = assignReelCount + 1; assignReelCount = assignReelCount + 1;
excludePosIds.add(pos.getPosName()); // excludePosIds.add(pos.getId());
} }
} }
} }
......
...@@ -188,7 +188,7 @@ public class DevicesStatusUtil { ...@@ -188,7 +188,7 @@ public class DevicesStatusUtil {
if (oldMsgs != null) { if (oldMsgs != null) {
for (MsgInfo old : for (MsgInfo old :
oldMsgs) { oldMsgs) {
if (old.getMsgKey().equals(msg.getMsgKey()) && old.getMsg().equals(msg.getMsg())) { if (ObjectUtil.isNotEmpty(old.getMsgKey())&&ObjectUtil.isNotEmpty(msg.getMsgKey())&& old.getMsgKey().equals(msg.getMsgKey()) && old.getMsg().equals(msg.getMsg())) {
newMsg = false; newMsg = false;
break; break;
} }
......
...@@ -200,6 +200,7 @@ public class HanwhaApiHandler extends BaseSmfApiListener { ...@@ -200,6 +200,7 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
List<TMSRackStatus> SyncRackStatusDatas = new ArrayList<>(); List<TMSRackStatus> SyncRackStatusDatas = new ArrayList<>();
List<String> storageIds = new ArrayList<>(); List<String> storageIds = new ArrayList<>();
List<Storage> needSyncDataList=new ArrayList<>();
int i = 0; int i = 0;
for (String cid : cids) { for (String cid : cids) {
...@@ -224,6 +225,18 @@ public class HanwhaApiHandler extends BaseSmfApiListener { ...@@ -224,6 +225,18 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
} }
} }
if(status==-1||status==0||status>=1){
if(status>=1){
needSyncDataList.add(storage);
log.info("设备"+cid+"状态改变,当前状态:"+status+",需要通知韩华,并同步物料信息");
}else{
log.info("设备"+cid+"状态改变,当前状态:"+status+",需要通知韩华");
}
}else {
continue;
}
int flag = 0; int flag = 0;
if (status >= 1) { if (status >= 1) {
flag = 2; flag = 2;
...@@ -249,8 +262,40 @@ public class HanwhaApiHandler extends BaseSmfApiListener { ...@@ -249,8 +262,40 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
if (storageIds.size() > 0) { if (storageIds.size() > 0) {
tmsApis.RequestSyncRackStatusInfo(0, SyncRackStatusDatas); tmsApis.RequestSyncRackStatusInfo(0, SyncRackStatusDatas);
} }
if(needSyncDataList.size()>0){
for (Storage st :
needSyncDataList) {
SyncStorageData(st, "单个设备上线");
}
}
} }
private void SyncStorageData(Storage storage,String logName) {
List<TMSPartReelPos> list = new ArrayList<>();
List<StoragePos> allPos = storagePosManager.findByStorage(storage.getId());
// if (storage.isNLShelf() || storage.isMimoG2() ||storage.isBatchStorage()) {
if (allPos != null) {
for (StoragePos pos :
allPos) {
if (pos.getBarcode() == null) {
TMSPartReelPos bean = TMSPartReelPos.newBean("", "", -1,
storage.getCid(), pos.getPosName(), 4, -1, -1);
list.add(bean);
} else {
Barcode barcode = pos.getBarcode();
TMSPartReelPos bean = TMSPartReelPos.newBean(barcode.getPartNumber(), barcode.getBarcode(), barcode.getAmount(),
storage.getCid(), pos.getPosName(), 4, barcode.getPutInDate().getTime(), -1);
list.add(bean);
}
}
List<TMSPart> result = tmsApis.RequestSyncPartReelPosInfo(0, list);
log.info(logName+ "RequestSyncPartReelPosInfo storageCID=" + storage.getCid() + ", count=" + list.size());
}
}
public void UpdateStorageConnectionInfo(String[] cids, Integer[] statusList) { public void UpdateStorageConnectionInfo(String[] cids, Integer[] statusList) {
if (!TMSCommunicator.isEnable()) { if (!TMSCommunicator.isEnable()) {
return; return;
......
...@@ -83,12 +83,12 @@ public class TMS_Code { ...@@ -83,12 +83,12 @@ public class TMS_Code {
public static final String CODE_2001 = "2001"; public static final String CODE_2001 = "2001";
/** /**
* 2002 Out of part * 2002 Out of part 无材料
*/ */
public static final String CODE_2002 = "2002"; public static final String CODE_2002 = "2002";
/** /**
* 2003 Registered part but not on the rack * 2003 Registered part but not on the rack 缺料
*/ */
public static final String CODE_2003 = "2003"; public static final String CODE_2003 = "2003";
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!