Commit 819ef0ac sunke

PannaCIM对接

1 个父辈 19888dd5
...@@ -7,8 +7,10 @@ import com.neotel.smfcore.common.utils.HttpHelper; ...@@ -7,8 +7,10 @@ import com.neotel.smfcore.common.utils.HttpHelper;
import com.neotel.smfcore.common.utils.JsonUtil; import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.core.api.bean.ApiResult; import com.neotel.smfcore.core.api.bean.ApiResult;
import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager; import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.api.bean.CodeValidateParam; import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.core.device.util.DataCache; import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.core.inList.service.manager.IInListManager; import com.neotel.smfcore.core.inList.service.manager.IInListManager;
import com.neotel.smfcore.core.inList.service.po.InList; import com.neotel.smfcore.core.inList.service.po.InList;
...@@ -49,6 +51,26 @@ public abstract class BaseSmfApiListener implements ISmfApiListener { ...@@ -49,6 +51,26 @@ public abstract class BaseSmfApiListener implements ISmfApiListener {
@Autowired @Autowired
protected DataCache dataCache; protected DataCache dataCache;
@Autowired
private IComponentManager componentManager;
protected Component resolveComponent(Barcode barcode){
Component component = componentManager.findByPartNumberAndProvider(barcode.getPartNumber(),barcode.getProvider());
if(component == null){
log.info("自动添加["+barcode.getPartNumber()+"]["+barcode.getProvider()+"]的档案信息");
component = new Component();
component.setPartNumber(barcode.getPartNumber());
component.setAmount(barcode.getAmount());
int w = barcode.getPlateSize();
int h = barcode.getHeight();
component.setPlateSize(w);
component.setHeight(h);
component.setProvider(barcode.getProvider());
component = componentManager.save(component);
}
return component;
}
@Override @Override
public void inTaskStatusChange(String inNotifyUrl, DataLog task){ public void inTaskStatusChange(String inNotifyUrl, DataLog task){
......
...@@ -240,10 +240,4 @@ public class DefaultSmfApiListener extends BaseSmfApiListener { ...@@ -240,10 +240,4 @@ public class DefaultSmfApiListener extends BaseSmfApiListener {
} }
} }
public LiteOrder fetchOrder(String fetchOrderUrl, String orderNumber, String username){
return null;
}
} }
...@@ -36,12 +36,6 @@ public class NeotelApi extends BaseSmfApiListener { ...@@ -36,12 +36,6 @@ public class NeotelApi extends BaseSmfApiListener {
@Autowired @Autowired
private ILiteOrderItemManager liteOrderItemManager; private ILiteOrderItemManager liteOrderItemManager;
@Autowired
private CodeResolve codeResolve;
@Autowired
private IComponentManager componentManager;
@Override @Override
public boolean isForThisApi(String apiName) { public boolean isForThisApi(String apiName) {
return apiName != null && apiName.equalsIgnoreCase("neotel"); return apiName != null && apiName.equalsIgnoreCase("neotel");
...@@ -218,22 +212,6 @@ public class NeotelApi extends BaseSmfApiListener { ...@@ -218,22 +212,6 @@ public class NeotelApi extends BaseSmfApiListener {
} }
private Component resolveComponent(Barcode barcode){
Component component = componentManager.findByPartNumberAndProvider(barcode.getPartNumber(),barcode.getProvider());
if(component == null){
log.info("自动添加["+barcode.getPartNumber()+"]["+barcode.getProvider()+"]的档案信息");
component = new Component();
component.setPartNumber(barcode.getPartNumber());
component.setAmount(barcode.getAmount());
int w = barcode.getPlateSize();
int h = barcode.getHeight();
component.setPlateSize(w);
component.setHeight(h);
component.setProvider(barcode.getProvider());
component = componentManager.save(component);
}
return component;
}
/** /**
* 入库判定 * 入库判定
...@@ -314,9 +292,4 @@ public class NeotelApi extends BaseSmfApiListener { ...@@ -314,9 +292,4 @@ public class NeotelApi extends BaseSmfApiListener {
public void onOrderStatusChange(String orderNotifyUrl, LiteOrder liteOrder) { public void onOrderStatusChange(String orderNotifyUrl, LiteOrder liteOrder) {
} }
@Override
public LiteOrder fetchOrder(String fetchOrderUrl, String orderNumber, String username) {
return null;
}
} }
...@@ -9,7 +9,10 @@ import com.neotel.smfcore.common.utils.HttpHelper; ...@@ -9,7 +9,10 @@ import com.neotel.smfcore.common.utils.HttpHelper;
import com.neotel.smfcore.common.utils.StorageConstants; import com.neotel.smfcore.common.utils.StorageConstants;
import com.neotel.smfcore.core.api.bean.CodeValidateParam; import com.neotel.smfcore.core.api.bean.CodeValidateParam;
import com.neotel.smfcore.core.api.listener.BaseSmfApiListener; import com.neotel.smfcore.core.api.listener.BaseSmfApiListener;
import com.neotel.smfcore.core.barcode.bean.CodeBean;
import com.neotel.smfcore.core.barcode.enums.COMPONENT_TYPE;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.utils.CodeResolve;
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.util.DataCache; import com.neotel.smfcore.core.device.util.DataCache;
...@@ -45,6 +48,10 @@ public class PanaApiController extends BaseSmfApiListener { ...@@ -45,6 +48,10 @@ public class PanaApiController extends BaseSmfApiListener {
protected static DataCache dataCache; protected static DataCache dataCache;
@Autowired
protected CodeResolve codeResolve;
@Autowired @Autowired
public void setDataCache(DataCache dataCache) { public void setDataCache(DataCache dataCache) {
PanaApiController.dataCache = dataCache; PanaApiController.dataCache = dataCache;
...@@ -59,7 +66,6 @@ public class PanaApiController extends BaseSmfApiListener { ...@@ -59,7 +66,6 @@ public class PanaApiController extends BaseSmfApiListener {
private static String PanaCIMPort = ""; private static String PanaCIMPort = "";
private static String TowerID = "InoAutoB";
private static AtomicLong seq = new AtomicLong(0); private static AtomicLong seq = new AtomicLong(0);
@RequestMapping(value = "/setConfiguration") @RequestMapping(value = "/setConfiguration")
...@@ -111,7 +117,8 @@ public class PanaApiController extends BaseSmfApiListener { ...@@ -111,7 +117,8 @@ public class PanaApiController extends BaseSmfApiListener {
return "OK"; return "OK";
} }
private static String nextSeq(){ private static String nextSeq(String TowerID){
TowerID = TowerID.replaceAll(" ","_");
return "SMDBOX_"+TowerID+"_"+seq.incrementAndGet(); return "SMDBOX_"+TowerID+"_"+seq.incrementAndGet();
} }
...@@ -373,20 +380,34 @@ public class PanaApiController extends BaseSmfApiListener { ...@@ -373,20 +380,34 @@ public class PanaApiController extends BaseSmfApiListener {
return result; return result;
} }
@Override @Override
public Barcode canPutInAfterResolve(String inCheckUrl, CodeValidateParam codeParams, Barcode barcode) throws ValidateException { public Barcode canPutInBeforeResolve(String codeResolveUrl, CodeValidateParam codeParams) throws ValidateException {
String requestReelUrl = getRequestReelUrl(); String requestReelUrl = getRequestReelUrl();
try { try {
if(!Strings.isNullOrEmpty(requestReelUrl)){ if(!Strings.isNullOrEmpty(requestReelUrl)){
log.info("向 PanaCIM["+requestReelUrl+"]请求料盘【"+barcode.getBarcode()+"】的信息"); log.info("向 PanaCIM["+requestReelUrl+"]请求料盘【"+codeParams.getCode()+"】的信息");
//String url = getApiUrl("/api/Storage/requestReel"); Collection<CodeBean> codeBeans = codeResolve.resolveCodeStr(codeParams.getCode(), COMPONENT_TYPE.COMPONENT);
String errorMsg = "";
for (CodeBean codebean : codeBeans) {
if (codebean.getReelHeight() <= 0) {
codebean.setReelHeight(1);
}
if (codebean.getReelWidth() <= 0) {
codebean.setReelWidth(1);
}
Barcode barcode = codebean.getBarcode();
if(codebean.getBarcode() == null){
barcode = new Barcode();
barcode.setBarcode(codebean.getCodeStr());
}
barcode.setPlateSize(codebean.getReelWidth());
barcode.setHeight(codebean.getReelHeight());
Map<String, Object> params = new HashMap<String, Object>(); Map<String, Object> params = new HashMap<String, Object>();
params.put("TransactionID", nextSeq()); params.put("TransactionID", nextSeq("PANA"));
params.put("ErrorCode","0"); params.put("ErrorCode","0");
params.put("Reelbarcode",barcode.getBarcode()); params.put("Reelbarcode",barcode.getBarcode());
String result = HttpHelper.postJson(requestReelUrl,params); String result = HttpHelper.postJson(requestReelUrl,params);
log.info("PanaCIM 返回料盘【"+barcode.getBarcode()+"】的信息:"+result); log.info("PanaCIM 返回料盘【"+codebean.getCodeStr()+"】的信息:"+result);
if(!Strings.isNullOrEmpty(result)){ if(!Strings.isNullOrEmpty(result)){
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
HashMap<String,String> jsonMap = mapper.readValue(result, HashMap.class); HashMap<String,String> jsonMap = mapper.readValue(result, HashMap.class);
...@@ -411,18 +432,25 @@ public class PanaApiController extends BaseSmfApiListener { ...@@ -411,18 +432,25 @@ public class PanaApiController extends BaseSmfApiListener {
if(qty > 0){ if(qty > 0){
barcode.setAmount(qty); barcode.setAmount(qty);
} }
String partNo = jsonMap.get("PartNo");
barcode.setPartNumber(partNo);
} }
resolveComponent(barcode);
barcode = barcodeManager.saveBarcode(barcode);
return barcode; return barcode;
}else{ }else{
throw new ValidateException("PanaCIM [" + barcode.getBarcode() + "] NG:"+ ErrorCode, "PanaCIM验证失败"); errorMsg = "PanaCIM [" + barcode.getBarcode() + "] NG:"+ ErrorCode;
}
} }
} }
throw new ValidateException(errorMsg, "PanaCIM验证失败");
}else{ }else{
log.info("没有配置PanaCIM条码检测接口,查找setConfiguration注册的IP 及端口"); log.info("没有配置PanaCIM条码检测接口,查找setConfiguration注册的IP 及端口");
return null; return null;
} }
} catch (Exception e) { } catch (Exception e) {
log.error("向 PanaCIM请求料盘【"+barcode.getBarcode()+"】的信息出错",e); log.error("Request to PanaCIM["+codeParams.getCode()+"] Error",e);
} }
return null; return null;
} }
...@@ -461,7 +489,7 @@ public class PanaApiController extends BaseSmfApiListener { ...@@ -461,7 +489,7 @@ public class PanaApiController extends BaseSmfApiListener {
log.info("向 PanaCIM["+inNotifyApi+"] 通知料盘【"+task.getBarcode()+"】的入库信息"); log.info("向 PanaCIM["+inNotifyApi+"] 通知料盘【"+task.getBarcode()+"】的入库信息");
//String url = getApiUrl("/api/Storage/checkInNotification"); //String url = getApiUrl("/api/Storage/checkInNotification");
Map<String, Object> params = new LinkedHashMap<>(); Map<String, Object> params = new LinkedHashMap<>();
params.put("TransactionID",nextSeq()); params.put("TransactionID",nextSeq(task.getStorageName()));
params.put("ReelBarcode",task.getBarcode()); params.put("ReelBarcode",task.getBarcode());
params.put("PartNo",task.getPartNumber()); params.put("PartNo",task.getPartNumber());
params.put("Quantity",task.getNum()); params.put("Quantity",task.getNum());
...@@ -491,14 +519,14 @@ public class PanaApiController extends BaseSmfApiListener { ...@@ -491,14 +519,14 @@ public class PanaApiController extends BaseSmfApiListener {
log.info("向 PanaCIM["+outNotifyApi+"] 通知料盘【"+task.getBarcode()+"】的出库信息"); log.info("向 PanaCIM["+outNotifyApi+"] 通知料盘【"+task.getBarcode()+"】的出库信息");
//String url = getApiUrl("/api/Storage/deliverNotification"); //String url = getApiUrl("/api/Storage/deliverNotification");
Map<String, Object> params = new HashMap<String, Object>(); Map<String, Object> params = new HashMap<String, Object>();
params.put("TransactionID",nextSeq()); params.put("TransactionID",nextSeq(task.getStorageName()));
params.put("ReelBarcode",task.getBarcode()); params.put("ReelBarcode",task.getBarcode());
params.put("PartNO",task.getPartNumber()); params.put("PartNO",task.getPartNumber());
params.put("Quantity",task.getNum()); params.put("Quantity",task.getNum());
SimpleDateFormat dataformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat dataformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
params.put("Timestamp",dataformat.format(new Date())); params.put("Timestamp",dataformat.format(new Date()));
params.put("TowerID",task.getStorageName()); params.put("TowerID",task.getStorageName());
params.put("JobID",""); params.put("JobID",task.getSourceId());
params.put("Msd",false); params.put("Msd",false);
params.put("MsdLevel","1"); params.put("MsdLevel","1");
params.put("Location","0"); params.put("Location","0");
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!