Commit dcc32d1c LN

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

2.工单详情相同PN会有重复数据。
3.韩华RequestDeliveryOrder同时只执行一个工单,如有未关闭的返回2014。
4.
1 个父辈 1f4db1e4
......@@ -871,7 +871,10 @@ public class BaseDeviceHandler implements IDeviceHandler {
//状态变化
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 {
List<String> availableStorageIds = dataCache.getAvailableStorageIds();
CHECKOUT_TYPE checkoutType = dataCache.getCheckOutType();
log.info("工单[" + orderNo + "]出库前需要进行缺料检查");
log.info("工单[" + orderNo + "]出库前需要进行缺料检查"); //需要过滤掉刚刚查找到的库位号
List<String> findPosIds=new ArrayList<>();
//其他出库模式一次性全部生成任务
List<LiteOrderItem> newItems = new ArrayList<>();
for (LiteOrderItem orderItem : cacheOrder.getOrderItems()) {
......@@ -600,6 +601,7 @@ public class LiteOrderCache {
int remainReelCount = orderItem.getNeedReelCount() - orderItem.getTotalOutReelCount();
Collection<String> excludePosIds = excludeOutPosIds();
excludePosIds.addAll(findPosIds);
//此PN未完成
if (remainNum > 0 || remainReelCount > 0) {
if (outBom) {
......@@ -640,9 +642,10 @@ public class LiteOrderCache {
liteOrderItemManager.save(orderItem);
break;
} else {
findPosIds.add(pos.getId());
assignNum = assignNum + pos.getBarcode().getAmount();
assignReelCount = assignReelCount + 1;
excludePosIds.add(pos.getPosName());
// excludePosIds.add(pos.getId());
}
}
}
......
......@@ -188,7 +188,7 @@ public class DevicesStatusUtil {
if (oldMsgs != null) {
for (MsgInfo old :
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;
break;
}
......
......@@ -200,6 +200,7 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
List<TMSRackStatus> SyncRackStatusDatas = new ArrayList<>();
List<String> storageIds = new ArrayList<>();
List<Storage> needSyncDataList=new ArrayList<>();
int i = 0;
for (String cid : cids) {
......@@ -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;
if (status >= 1) {
flag = 2;
......@@ -249,8 +262,40 @@ public class HanwhaApiHandler extends BaseSmfApiListener {
if (storageIds.size() > 0) {
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) {
if (!TMSCommunicator.isEnable()) {
return;
......
......@@ -83,12 +83,12 @@ public class TMS_Code {
public static final String CODE_2001 = "2001";
/**
* 2002 Out of part
* 2002 Out of part 无材料
*/
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";
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!