Commit 2f87ae75 LN

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/com/neotel/smfcore/custom/micron20031/Micron20031Api.java
#	src/main/java/com/neotel/smfcore/custom/micron20031/bean/MatOrderBean.java
2 个父辈 960715a3 40aa49ce
...@@ -46,12 +46,23 @@ public class HttpHelper { ...@@ -46,12 +46,23 @@ public class HttpHelper {
private static final int READ_DATA_TIMEOUT = 10000; private static final int READ_DATA_TIMEOUT = 10000;
public static String postJson(String url, Map<String, Object> params) throws ApiException { public static String postJson(String url, Map<String, Object> params) throws ApiException {
// 设置请求参数
if (params == null || params.isEmpty()) {
params = null;
}
return postJsonWithAuth(url,params, null);
}
public static String postJsonWithAuth(String url, Object params, String auth) throws ApiException {
HttpPost httpPost = new HttpPost(url); HttpPost httpPost = new HttpPost(url);
httpPost.addHeader("Content-Type", "application/json;charset=utf-8"); httpPost.addHeader("Content-Type", "application/json;charset=utf-8");
if (auth != null && !auth.isEmpty()){
httpPost.addHeader("Authorization",auth);
}
// 设置请求参数 // 设置请求参数
if (params != null && !params.isEmpty()) { if (params != null) {
ObjectMapper mapper = new ObjectMapper();
try { try {
ObjectMapper mapper = new ObjectMapper();
String requestBody = mapper.writeValueAsString(params); String requestBody = mapper.writeValueAsString(params);
httpPost.setEntity(new StringEntity(requestBody,CONTENT_CHARSET)); httpPost.setEntity(new StringEntity(requestBody,CONTENT_CHARSET));
} catch (JsonProcessingException e) { } catch (JsonProcessingException e) {
...@@ -71,7 +82,6 @@ public class HttpHelper { ...@@ -71,7 +82,6 @@ public class HttpHelper {
}catch (Exception e){ }catch (Exception e){
throw new ApiException("Request to [" + url + "] failed:" + e.getMessage()); throw new ApiException("Request to [" + url + "] failed:" + e.getMessage());
} }
} }
/** /**
......
...@@ -225,6 +225,35 @@ public class Barcode extends BasePo implements Serializable { ...@@ -225,6 +225,35 @@ public class Barcode extends BasePo implements Serializable {
* 呆滞到期时间(入库时间+呆滞日期) * 呆滞到期时间(入库时间+呆滞日期)
*/ */
private Date sluggishTime; private Date sluggishTime;
/**
* 自定义的附加信息
*/
private Map<String,Object> appendData = new HashMap<>();
/**
* 添加或更新自定义附加信息
* @param appendKey
* @param appendValue
*/
public void updateAppendData(String appendKey, Object appendValue){
appendData.put(appendKey, appendValue);
}
/**
* 获取自定义附加信息
* @param appendKey
* @param <T>
* @return
*/
public <T> T getAppendData(String appendKey){
Object value = appendData.get(appendKey);
if(value != null){
return (T)value;
}
return null;
}
/** /**
* 添加相关联条码 * 添加相关联条码
* *
......
package com.neotel.smfcore.custom.micron20031; package com.neotel.smfcore.custom.micron20031;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.exception.ApiException; import com.neotel.smfcore.common.exception.ApiException;
import com.neotel.smfcore.common.utils.DateUtil;
import com.neotel.smfcore.common.utils.HttpHelper; 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.barcode.service.po.Barcode;
import com.neotel.smfcore.custom.micron20031.bean.DepositMatReqBean;
import com.neotel.smfcore.custom.micron20031.bean.MatOrderBean; import com.neotel.smfcore.custom.micron20031.bean.MatOrderBean;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* @author sunke * @author sunke
...@@ -19,13 +18,17 @@ import java.util.Map; ...@@ -19,13 +18,17 @@ import java.util.Map;
@Slf4j @Slf4j
public class Micron20031Api { public class Micron20031Api {
public static void getToken(){ private static String AUTH_TOKEN = "";
private static String MATERIAL_TYPE = "SOLDER_PASTE";
public static String getAuthToken(){
String url = "https://boapi3testgtwy.micron.com/token"; String url = "https://boapi3testgtwy.micron.com/token";
try { try {
log.info("get token from MES");
Map<String,Object> dataMap = new HashMap<>(); Map<String,Object> dataMap = new HashMap<>();
dataMap.put("grant_type","client_credentials"); dataMap.put("grant_type","client_credentials");
String resultStr = HttpHelper.postFormParam(url, dataMap); String resultStr = HttpHelper.postFormParam(url, dataMap);
log.info("get token from MES 返回:" + resultStr);
Map<String, Object> resultMap = JsonUtil.toMap(resultStr); Map<String, Object> resultMap = JsonUtil.toMap(resultStr);
Object username1 = resultMap.get("Username"); Object username1 = resultMap.get("Username");
...@@ -33,9 +36,14 @@ public class Micron20031Api { ...@@ -33,9 +36,14 @@ public class Micron20031Api {
Object MaterialType = resultMap.get("MaterialType"); Object MaterialType = resultMap.get("MaterialType");
Object Message = resultMap.get("Message"); Object Message = resultMap.get("Message");
Object Status = resultMap.get("Status"); Object Status = resultMap.get("Status");
AUTH_TOKEN = "Bearer 03400c52-9b1d-3e10-b40c-a95fbfdcec67";
return AUTH_TOKEN;
} catch (ApiException e) { } catch (ApiException e) {
log.error("checkUserRights Error", e); log.error("checkUserRights Error", e);
} }
return "";
} }
/** /**
...@@ -49,22 +57,15 @@ public class Micron20031Api { ...@@ -49,22 +57,15 @@ public class Micron20031Api {
* //Output: Username, Role, MaterialType, Message, Status * //Output: Username, Role, MaterialType, Message, Status
* @param username * @param username
*/ */
public static void checkUserRights(String username){ public static void checkUserRights(String username) throws ApiException {
String checkUserRightsUrl = ""; String checkUserRightsUrl = "";
try { Map<String,Object> dataMap = new HashMap<>();
Map<String,Object> dataMap = new HashMap<>(); dataMap.put("Username",username);
dataMap.put("Username",username); dataMap.put("MaterialType","SOLDER_PASTE");
dataMap.put("MaterialType","SOLDER_PASTE"); log.info("调用MES接口 checkUserRights,参数:"+JsonUtil.toJsonStr(dataMap));
String resultStr = HttpHelper.postJson(checkUserRightsUrl, dataMap); String resultStr = HttpHelper.postJson(checkUserRightsUrl, dataMap);
Map<String, Object> resultMap = JsonUtil.toMap(resultStr); log.info("调用MES接口 checkUserRights 返回:" + resultStr);
Object username1 = resultMap.get("Username"); getResult(resultStr,"");
Object Role = resultMap.get("Role");
Object MaterialType = resultMap.get("MaterialType");
Object Message = resultMap.get("Message");
Object Status = resultMap.get("Status");
} catch (ApiException e) {
log.error("checkUserRights Error", e);
}
} }
/** /**
...@@ -85,54 +86,387 @@ public class Micron20031Api { ...@@ -85,54 +86,387 @@ public class Micron20031Api {
* ] * ]
* //Input: Micron Part Number, MaterialType * //Input: Micron Part Number, MaterialType
* //Output: Micron Part Number, Quantity, UnitOfMeasures, MaterialType, Message, Status * //Output: Micron Part Number, Quantity, UnitOfMeasures, MaterialType, Message, Status
*
*/ */
public static List<MatOrderBean> checkStockAvailable(List<String> pnList){ public static List<MatOrderBean> checkStockAvailable(Map<String,Integer> pnMap) throws ApiException {
//pnMap的key为pn, value为库存数量
String checkStockAvailableUrl = ""; String checkStockAvailableUrl = "";
String auth = getAuthToken();
if(ObjectUtil.isEmpty(checkStockAvailableUrl)){ List<Map<String,String>> paramList = new ArrayList<>();
List<MatOrderBean> orderBeans=new ArrayList<>(); for (String pn : pnMap.keySet()) {
for (String pn :pnList){ Map<String,String> dataMap = new HashMap<>();
MatOrderBean matOrderBean=new MatOrderBean(pn,"TRUE",10,"SOLDER_PASTE","",""); dataMap.put("MicronPN",pn);
orderBeans.add(matOrderBean); dataMap.put("MaterialType",MATERIAL_TYPE);
paramList.add(dataMap);
}
log.info("调用MES接口 checkStockAvailable,参数:"+JsonUtil.toJsonStr(paramList));
String resultStr = HttpHelper.postJsonWithAuth(checkStockAvailableUrl, paramList, auth);
log.info("调用MES接口 checkStockAvailable 返回:" + resultStr);
List<MatOrderBean> orderBeanList = JsonUtil.toList(resultStr,MatOrderBean.class);
for (MatOrderBean matOrderBean : orderBeanList) {
Integer qty = pnMap.get(matOrderBean.getMicronPN());
if(qty != null){
matOrderBean.setStockRoomQty(qty);
} }
return orderBeans;
} }
return orderBeanList;
}
/**
*TriggerMatReqOrder
* {
* "MicronPN": "501-10187",
* "UnitOfMeasures": "TUBE",
* "Quantity": 1,
* "MaterialType": "SOLDER_PASTE"
* }
* //Input: Micron Part Numbers, Quantity, UnitOfMeasures, MaterialType
* //Output: Micron Part Numbers, Quantity, UnitOfMeasures, MatReqNo, MaterialType, Message, Status
*/
public static MatOrderBean triggerMatReqOrder(MatOrderBean orderBean) throws ApiException {
//pnMap的key为pn, value为库存数量
String checkStockAvailableUrl = "";
String auth = getAuthToken();
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("MicronPN",orderBean.getMicronPN());
dataMap.put("UnitOfMeasures",orderBean.getUnitOfMeasures());
dataMap.put("Quantity",orderBean.getQuantity());
dataMap.put("MaterialType",MATERIAL_TYPE);
log.info("调用MES接口 triggerMatReqOrder,参数:"+JsonUtil.toJsonStr(dataMap));
String resultStr = HttpHelper.postJsonWithAuth(checkStockAvailableUrl, dataMap, auth);
log.info("调用MES接口 triggerMatReqOrder 返回:" + resultStr);
MatOrderBean resultOrderBean = JsonUtil.toObj(resultStr,MatOrderBean.class);
return resultOrderBean;
}
/**
* Deposit
* GetMatReqDetail
* {
* "MatReqNo": "0730000956",
* "MaterialType": "SOLDER_PASTE"
* }
* //Input: MatReqNo, MaterialType
* //Output: MatReqNo, Micron Part Number, Lot No, Quantity, UnitOfMeasures, MaterialType, Message, Status
*/
public static DepositMatReqBean getMatReqDetail(String matReqNo) throws ApiException {
//pnMap的key为pn, value为库存数量
String getMatReqDetailUrl = "";
String auth = getAuthToken();
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("MatReqNo",matReqNo);
dataMap.put("MaterialType",MATERIAL_TYPE);
log.info("调用MES接口 getMatReqDetail,参数:"+JsonUtil.toJsonStr(dataMap));
String resultStr = HttpHelper.postJsonWithAuth(getMatReqDetailUrl, dataMap, auth);
log.info("调用MES接口 getMatReqDetail 返回:" + resultStr);
DepositMatReqBean depositMatReqBean = JsonUtil.toObj(resultStr,DepositMatReqBean.class);
return depositMatReqBean;
}
/**
* DepositCreateMA 扫码之后调用,获取ExposureStartDate和StabilizationEndDate
* {
* "MicronPN": "501-10187",
* "LotNo": "10819093SP-0148",
* "Quantity": 1,
* "ExpiredDate": "02-15-2022",
* "SystemID": "SPMMS",
* "MaterialType": "SOLDER_PASTE",
* "Username": "KHIENYONGCHE"
* }
* //Input: MicronPN, LotNo, Quantity, ExpiredDate, Username, SystemID, MaterialType
* //Output: MicronPN, LotNo, Quantity, ExpiredDate, Username, SystemID, MaterialType, StabilizationEndDate, Message, Status, ExposureStartDate
*/
public static Barcode depositCreateMA(Barcode barcode,String username) throws ApiException {
//pnMap的key为pn, value为库存数量
String depositCreateMAUrl = "";
String auth = getAuthToken();
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("MicronPN",barcode.getPartNumber());
dataMap.put("LotNo",barcode.getBarcode());
dataMap.put("Quantity",barcode.getAmount());
dataMap.put("ExpiredDate",barcode.getExpireDate());
dataMap.put("SystemID","SPMMS");
dataMap.put("MaterialType",MATERIAL_TYPE);
dataMap.put("Username",username);
log.info("调用MES接口 depositCreateMA,参数:"+JsonUtil.toJsonStr(dataMap));
String resultStr = HttpHelper.postJsonWithAuth(depositCreateMAUrl, dataMap, auth);
log.info("调用MES接口 depositCreateMA 返回:" + resultStr);
Map<String, Object> resultMap = JsonUtil.toMap(resultStr);
Object resultStatus = resultMap.get("Status");
if(resultStatus != null && !resultStatus.toString().equalsIgnoreCase("PASS")){
String msg = resultMap.get("Message").toString();
throw new ApiException(msg);
}
Object stabilizationEndDateObj = resultMap.get("StabilizationEndDate");
Date stabilizationEndDate = DateUtil.toDate(stabilizationEndDateObj.toString(),"MM-dd-yyyy");
barcode.updateAppendData("stabilizationEndDate",stabilizationEndDate);
barcode.updateAppendData("opUsername",username);
Object exposureStartDateObj = resultMap.get("ExposureStartDate");
Date exposureStartDate = DateUtil.toDate(exposureStartDateObj.toString(),"MM-dd-yyyy");
barcode.setOpenTime(exposureStartDate);
return barcode;
}
/**
* matreq order超过一小时还未完成,发送邮件
* SendEmail
* {
* "To": "SELECTEDMTGROUP",
* "From": "SPMMS",
* "CC": "KHIENYONGCHE",
* "BCC": "",
* "Subject": "This is Title",
* "Text": "This is message content"
* }
* //Input: To, From, CC, BCC, Subject, Text
* //Output: To, From, CC, BCC, Subject, Text, Status, Message
*/
public static void sendEmail(String to, String cc, String subject, String conent){
String url = "";
String auth = getAuthToken();
try { try {
List<Map<String,String>> paramList = new ArrayList<>(); Map<String,Object> dataMap = new HashMap<>();
for (String pn : pnList) { dataMap.put("To",to);
Map<String,String> dataMap = new HashMap<>(); dataMap.put("From","SPMMS");
dataMap.put("MicronPN",pn); dataMap.put("CC",cc);
dataMap.put("MaterialType","SOLDER_PASTE"); dataMap.put("BCC","");
paramList.add(dataMap); dataMap.put("Subject",subject);
} dataMap.put("Text",conent);
String resultStr = HttpHelper.posJsonParams(checkStockAvailableUrl, paramList);
List<MatOrderBean> orderBeanList = JsonUtil.toList(resultStr,MatOrderBean.class); log.info("调用MES接口 SendEmail,参数:"+JsonUtil.toJsonStr(dataMap));
return orderBeanList; String resultStr = HttpHelper.postJsonWithAuth(url, dataMap, auth);
log.info("调用MES接口 SendEmail 返回:" + resultStr);
} catch (ApiException e) { } catch (ApiException e) {
log.error("CheckStockAvailable Error", e); log.error("SendEmail Error", e);
} }
return new ArrayList<>();
} }
public static MatOrderBean triggerMatReqOrder (String partNumber,Integer qty){ /**
* 到达stabilizationEndDate时间后调用
MatOrderBean orderBean=new MatOrderBean(partNumber,"TUBE",qty,"SOLDER_PASTE","",""); * {
String triggerMatReqOrderUrl = ""; * "LotNo": "10819093SP-0148",
* "SystemID": "SPMMS",
* "MaterialType": "SOLDER_PASTE",
* "Username": "KHIENYONGCHE"
* }
* //Input: Lot No, Username, SystemID, MaterialType
* //Output: Lot No, Username, SystemID, MaterialType, Message, Status
*/
public static void mATrackOut(Barcode barcode){
String url = "";
String auth = getAuthToken();
try { try {
Map<String,Object> paramMap = new HashMap<>(); Map<String,Object> dataMap = new HashMap<>();
dataMap.put("LotNo",barcode.getBarcode());
dataMap.put("SystemID","SPMMS");
dataMap.put("MaterialType",MATERIAL_TYPE);
dataMap.put("Username","KHIENYONGCHE");
paramMap.put("MicronPN",orderBean.getMicronPN()); log.info("调用MES接口 mATrackOut,参数:"+JsonUtil.toJsonStr(dataMap));
paramMap.put("UnitOfMeasures","TRUE"); String resultStr = HttpHelper.postJsonWithAuth(url, dataMap, auth);
paramMap.put("Quantity",orderBean.getQuantity()); log.info("调用MES接口 mATrackOut 返回:" + resultStr);
paramMap.put("MaterialType","SOLDER_PASTE");
String resultStr = HttpHelper.postJson(triggerMatReqOrderUrl, paramMap);
MatOrderBean orderBean1 = JsonUtil.toObj(resultStr,MatOrderBean.class);
return orderBean1;
} catch (ApiException e) { } catch (ApiException e) {
log.error("TriggerMatReqOrder Error", e); log.error("mATrackOut Error", e);
}
}
/**
* GetEquipIDList
* Input:
* {
* "Facility": "MODULE SINGAPORE",
* "Area": "MSA MODSSD-ASSEMBLY",
* "EquipmentGroup" :"SMT AUTO ETA"
* }
* Sample Output:
* {
* "equipList": [
* {
* "equipId": "LINE007",
* "facility": "MODULE SINGAPORE",
* "area": "MSA MODSSD-ASSEMBLY",
* "equipmentGroup": "SMT AUTO ETA"
* },
* {
* "equipId": "LINE008",
* "facility": "MODULE SINGAPORE",
* "area": "MSA MODSSD-ASSEMBLY",
* "equipmentGroup": "SMT AUTO ETA"
* },
* {
* "equipId": "LINE011",
* "facility": "MODULE SINGAPORE",
* "area": "MSA MODSSD-ASSEMBLY",
* "equipmentGroup": "SMT AUTO ETA"
* },
* {
* "equipId": "LINE013",
* "facility": "MODULE SINGAPORE",
* "area": "MSA MODSSD-ASSEMBLY",
* "equipmentGroup": "SMT AUTO ETA"
* },
* {
* "equipId": "LINE015",
* "facility": "MODULE SINGAPORE",
* "area": "MSA MODSSD-ASSEMBLY",
* "equipmentGroup": "SMT AUTO ETA"
* },
* {
* "equipId": "LINE016",
* "facility": "MODULE SINGAPORE",
* "area": "MSA MODSSD-ASSEMBLY",
* "equipmentGroup": "SMT AUTO ETA"
* }
* ],
* "message": "",
* "status": "PASS"
* }
* @return
*/
public static List<String> getEquipIDList() throws ApiException {
List<String> equipIdList = new ArrayList<>();
String checkStockAvailableUrl = "";
String auth = getAuthToken();
Map<String,String> dataMap = new HashMap<>();
dataMap.put("Facility","MODULE SINGAPORE");
dataMap.put("Area","MSA MODSSD-ASSEMBLY");
dataMap.put("EquipmentGroup","SMT AUTO ETA");
log.info("调用MES接口 GetEquipIDList,参数:"+JsonUtil.toJsonStr(dataMap));
String resultStr = HttpHelper.postJsonWithAuth(checkStockAvailableUrl, dataMap, auth);
log.info("调用MES接口 GetEquipIDList 返回:" + resultStr);
List<Map<String,String>> equipList = getResult(resultStr,"equipList");
if(equipList != null){
List<Map<String,String>> listMap = (List<Map<String,String>>)equipList;
for (Map<String, String> eqiup : listMap) {
equipIdList.add(eqiup.get("equipId"));
}
}
return equipIdList;
}
/**
* GetMicronPN 获取PartNumber
* {
* "MicronLotID": "CBNN5PG009",
* "EquipID": "LINE011",
* "MaterialType": "SOLDER_PASTE"
* }
* //Input: Equip ID, Micron LotID, MaterialType
* //Output: Equip ID, Micron LotID, Micron Part Number, Status, MaterialType
*/
public static String getMicronPN(String micronLotId, String equipId) throws ApiException {
String checkStockAvailableUrl = "";
String auth = getAuthToken();
Map<String,String> dataMap = new HashMap<>();
dataMap.put("MicronLotID",micronLotId);
dataMap.put("EquipID",equipId);
log.info("调用MES接口 GetMicronPN,参数:"+JsonUtil.toJsonStr(dataMap));
String resultStr = HttpHelper.postJsonWithAuth(checkStockAvailableUrl, dataMap, auth);
log.info("调用MES接口 GetMicronPN 返回:" + resultStr);
String pn = getResult(resultStr,"MicronPN");
return pn;
}
/**
* ChkAuthoriseToDispatch 判定是否可出库
* {
* "MicronPN": "501-10187",
* "LotNo": "10819093SP-0148",
* "BatchNo": "10819093SP",
* "SpoolStatus": "NEW", //Indicate new material
* "Quantity": 1,
* "Mode": "ENABLE_MAM_SAP",
* "Username": "KHIENYONGCHE",
* "MaterialType": "SOLDER_PASTE"
* }
* //Input: MicronPN, LotNo, BatchNo, SpoolStatus, Quantity, Username, Mode, MaterialType
* //Output: MicronPN, LotNo, BatchNo, SpoolStatus, Quantity, Username, Mode, MaterialType, MaterialDocumentNo, Message, Status
*/
public static void chkAuthoriseToDispatch(Barcode barcode, String mode, String username) throws ApiException {
String checkStockAvailableUrl = "";
String auth = getAuthToken();
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("MicronPN",barcode.getPartNumber());
dataMap.put("LotNo",barcode.getBarcode());
dataMap.put("BatchNo",barcode.getBatch());
dataMap.put("SpoolStatus","NEW");
dataMap.put("Quantity",barcode.getAmount());
dataMap.put("Mode",mode);
dataMap.put("Username",username);
dataMap.put("MaterialType",MATERIAL_TYPE);
log.info("调用MES接口 ChkAuthoriseToDispatch,参数:"+JsonUtil.toJsonStr(dataMap));
String resultStr = HttpHelper.postJsonWithAuth(checkStockAvailableUrl, dataMap, auth);
log.info("调用MES接口 ChkAuthoriseToDispatch 返回:" + resultStr);
getResult(resultStr,null);
}
private static <T> T getResult(String resultJson, String key) throws ApiException {
Map<String,Object> resultMap = JsonUtil.toMap(resultJson);
Object resultStatus = resultMap.get("Status");
if(resultStatus != null && !resultStatus.toString().equalsIgnoreCase("PASS")){
String msg = resultMap.get("Message").toString();
throw new ApiException(msg);
}
if(key != null && !key.isEmpty()){
Object value = resultMap.get(key);
if(value != null){
return (T) value;
}
} }
return null; return null;
} }
/**
* ReturnMaterial
* {
* "TypeOfReturn": "NORMAL_RETURN",
* "MicronPN": "501-10187",
* "LotNo": "10819093SP-0148",
* "BatchNo": "10819093SP",
* "Location": "SF01",
* "RemainingQuantity": 1, //Always 1 because will not allow partially return
* "Mode": "ENABLE_MAM_SAP",
* "Username": "KHIENYONGCHE",
* "SystemID": "SPMMS",
* "MaterialType": "SOLDER_PASTE"
* }
* //Input: TypeofReturn, MicronPN, LotNo, BatchNo, Location, RemainingQuantity, Mode, Username, SystemId, MaterialType
* //Output: TypeofReturn, MicronPN, LotNo, BatchNo, Location, RemainingQuantity, Mode, Username, SystemId, MaterialType, Message, Status, ExpiredDate
*/
public static Barcode returnMaterial(Barcode barcode, String mode, String username) throws ApiException {
String checkStockAvailableUrl = "";
String auth = getAuthToken();
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("TypeofReturn","NORMAL_RETURN");
dataMap.put("MicronPN",barcode.getPartNumber());
dataMap.put("LotNo",barcode.getBarcode());
dataMap.put("BatchNo",barcode.getBatch());
dataMap.put("Location","");
dataMap.put("RemainingQuantity",1);
dataMap.put("Mode","ENABLE_MAM_SAP");
dataMap.put("Username",username);
dataMap.put("SystemID","SPMMS");
dataMap.put("MaterialType",MATERIAL_TYPE);
log.info("调用MES接口 ReturnMaterial,参数:"+JsonUtil.toJsonStr(dataMap));
String resultStr = HttpHelper.postJsonWithAuth(checkStockAvailableUrl, dataMap, auth);
log.info("调用MES接口 ReturnMaterial 返回:" + resultStr);
String expiredDateStr = getResult(resultStr,"ExpiredDate");
Date expiredDate = DateUtil.toDate(expiredDateStr.toString(),"MM-dd-yyyy");
barcode.setExpireDate(expiredDate);
return barcode;
}
} }
package com.neotel.smfcore.custom.micron20031.bean;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* @author sunke
* @date 2023/1/3 3:28 PM
*/
@Data
public class DepositMatReqBean{
/**
* {
* * "MatReqNo": "0730000956",
* * "MaterialType": "SOLDER_PASTE"
* * }
* * //Input: MatReqNo, MaterialType
* * //Output: MatReqNo, Micron Part Number, Lot No, Quantity, UnitOfMeasures, MaterialType, Message, Status
*/
@JsonProperty("MicronPN")
private String micronPN;
@JsonProperty("LotNo")
private String lotNo;
@JsonProperty("Quantity")
private Integer quantity;
@JsonProperty("UnitOfMeasures")
private String unitOfMeasures;
@JsonProperty("MaterialType")
private String materialType;
@JsonProperty("MatReqNo")
private String matReqNo;
@JsonProperty("Message")
private String message;
@JsonProperty("Status")
private String status;
}
package com.neotel.smfcore.custom.micron20031.bean; package com.neotel.smfcore.custom.micron20031.bean;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
/** /**
* @author sunke * @author sunke
* @date 2022/12/21 9:33 AM * @date 2022/12/21 9:33 AM
*/ */
@Data @Data
@NoArgsConstructor public class MatOrderBean{
@AllArgsConstructor
public class MatOrderBean {
@JsonProperty("MicronPN") @JsonProperty("MicronPN")
private String micronPN; private String micronPN;
...@@ -23,10 +19,13 @@ public class MatOrderBean { ...@@ -23,10 +19,13 @@ public class MatOrderBean {
@JsonProperty("MaterialType") @JsonProperty("MaterialType")
private String materialType; private String materialType;
private Integer stockRoomQty;
@JsonProperty("MatReqNo")
private String matReqNo;
@JsonProperty("Message") @JsonProperty("Message")
private String Message; private String message;
@JsonProperty("Status") @JsonProperty("Status")
private String Status; private String status;
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!