HttpRequestUtil
import cn.hutool.http.HttpRequest; import net.sf.json.JSONObject; import java.util.HashMap; import java.util.Map; public final class HttpRequestUtil { public final static String get(String url,Map<String,String> header,Map<String,Object> param){ return request(RequestTypeEnum.GET,url,header,param); } public final static String post(String url,Map<String,String> header,Map<String,Object> param){ return request(RequestTypeEnum.POST,url,header,param); } public final static String request(RequestTypeEnum typeEnum, String url, Map<String,String> header,Map<String,Object> param){ String result = ""; HttpRequest request = null; if(RequestTypeEnum.GET.equals(typeEnum)){ request = HttpRequest.get(url); }else { request = HttpRequest.post(url); } if(header!=null){ for(String key : header.keySet()){ request.header(key,header.get(key)); } } result = request.body(JSONObject.fromObject(param).toString()) .execute().body(); return result; } }
ObjectToMapUtil
import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; public final class ObjectToMapUtil { public final static Map<String, Object> objectToMapFirstUp(Object object){ Map<String,Object> dataMap = new HashMap<>(); Class<?> clazz = object.getClass(); for (Field field : clazz.getDeclaredFields()) { try { field.setAccessible(true); String key = field.getName().substring(0, 1).toUpperCase() + field.getName().substring(1); dataMap.put(key,field.get(object)); } catch (IllegalAccessException e) { e.printStackTrace(); } } return dataMap; } public final static Map<String, Object> objectToMap(Object object){ Map<String,Object> dataMap = new HashMap<>(); Class<?> clazz = object.getClass(); for (Field field : clazz.getDeclaredFields()) { try { field.setAccessible(true); String key = field.getName(); dataMap.put(key,field.get(object)); } catch (IllegalAccessException e) { e.printStackTrace(); } } return dataMap; } }
RequestTypeEnum
public enum RequestTypeEnum { POST("POST"),GET("GET"); RequestTypeEnum(String name){ this.name = name; } private String name; public String getName() { return name; } }
Interface sample code
import com.jeeplus.common.json.AjaxJson; import com.jeeplus.common.utils.DateUtils; import com.jeeplus.modules.http.HttpRequestUtil; import com.jeeplus.modules.http.ObjectToMapUtil; import com.jeeplus.modules.http.wms.entity.*; import com.jeeplus.modules.mes.business.baogong.erporder.entity.BusinessProductionOrderErp; import com.jeeplus.modules.mes.business.baogong.erporder.service.BusinessProductionOrderErpService; import net.sf.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.Map; /** * WMS completion and warehousing notice Product warehousing notice * @date 2023/7/16 */ @Service public class WMSCompleteInStoreApi { @Autowired private WSMConfig wsmConfig; @Autowired private BusinessProductionOrderErpService businessProductionOrderErpService; public AjaxJson doCompleteInStore(String orgcode, String mescode, String ordercode, String cinvcode, int num, String unitcode, Date date,String devNo){ AjaxJson json = new AjaxJson(); try { //Check customers and departments BusinessProductionOrderErp ordererp = businessProductionOrderErpService.getAgDeByCo(orgcode, ordercode); //transmission WmsCompleteInStoreNoticeRequest WmsCompleteInStoreNoticeRequest= new WmsCompleteInStoreNoticeRequest(); WmsCompleteInStoreNoticeRequest.setRequestType("LIP_3_0301") .setUserId(wsmConfig.getUserid()).setToken(wsmConfig.getToken()); WmsCompleteInStoreNoticeBean WmsCompleteInStoreNoticeBean = new WmsCompleteInStoreNoticeBean(); WmsCompleteInstoreNoticeHead head = new WmsCompleteInstoreNoticeHead(); head.setSrcBillNo(mescode) //Source bill number (unique) (encoding) .setSrcBillType("MO04") //Source bill type .setfstBillNo(ordercode) .setAgentCode(ordererp.getCustomercode()) //Customer code .setAgentName(ordererp.getCustomername()) .setDepartCode(ordererp.getDeptcode()) //Department code .setDepartName(ordererp.getDeptname()) .setSrcSystem("MES"); //Source system fill in MES WmsCompleteInStoreNoticeBean.setHead(head); WmsCompleteInstoreNoticeDetail detail = new WmsCompleteInstoreNoticeDetail(); detail.setOrgCode(orgcode) //Organization code .setSkuCode(cinvcode) //Item code .setEstMainQty(num) //Quantity .setMainUnit(ordererp.getUnitcode()) //Unit code .setLotAtt01(DateUtils.formatDate(date, "yyyy-MM-dd")) //Production date 2023-08-25 .setSrcRowId(mescode); //Required (standard interface), just fill it in as you like // .setFstRowNo(ordercode); //Production order number WmsCompleteInstoreNoticePkg pkg = new WmsCompleteInstoreNoticePkg(); pkg.setSrcRowId(mescode) .setDevNo(devNo) //Pallet material number .setLpn(mescode); //Pallet code WmsCompleteInStoreNoticeBean.getDetail().add(detail); WmsCompleteInStoreNoticeBean.getPkg().add(pkg); WmsCompleteInStoreNoticeRequest.setData(WmsCompleteInStoreNoticeBean); System.out.println(JSONObject.fromObject(WmsCompleteInStoreNoticeRequest).toString());// Map<String,Object> map = ObjectToMapUtil.objectToMap(WmsCompleteInStoreNoticeRequest); String result = HttpRequestUtil.post(wsmConfig.getUrl(),null,map); JSONObject rsJson = JSONObject.fromObject(result); System.out.println(rsJson.toString());// String code = rsJson.getString("code"); String message = rsJson.getString("message"); if(!"200".equals(code)){ json.setSuccess(false); json.setMsg(message); return json; } JSONObject dataJson = rsJson.getJSONObject("data"); dataJson = dataJson.getJSONObject("head"); json.put("wmscode",dataJson.getString("code")); json.setSuccess(true); json.setMsg(message); }catch (Exception e){ e.printStackTrace(); json.setMsg("WMS completion storage notification interface call failed"); json.setSuccess(false); } return json; } public static void main(String[] args) { String result = "{"code":"200","message":"Operation successful","data":{"head":{"srcBillNo": "WGRK003","srcBillType":"MO04","code":"23072711171104389"}}}"; JSONObject rsJson = JSONObject.fromObject(result); String code = rsJson.getString("code"); String message = rsJson.getString("message"); JSONObject dataJson = rsJson.getJSONObject("data"); dataJson = dataJson.getJSONObject("head"); System.out.println(dataJson.getString("code")); } }
Entity class
WmsCompleteInStoreNoticeBean
import com.google.common.collect.Lists; import java.io.Serializable; import java.util.List; /** * Notice of completion and storage * @date 2023/7/24 */ public class WmsCompleteInStoreNoticeBean implements Serializable { private WmsCompleteInstoreNoticeHead head; private List<WmsCompleteInstoreNoticeDetail> detail = Lists.newArrayList(); private List<WmsCompleteInstoreNoticePkg> pkg = Lists.newArrayList(); public WmsCompleteInstoreNoticeHead getHead() { return head; } public WmsCompleteInStoreNoticeBean setHead(WmsCompleteInstoreNoticeHead head) { this.head = head; return this; } public List<WmsCompleteInstoreNoticeDetail> getDetail() { return detail; } public WmsCompleteInStoreNoticeBean setDetail(List<WmsCompleteInstoreNoticeDetail> detail) { this.detail = detail; return this; } public List<WmsCompleteInstoreNoticePkg> getPkg() { return pkg; } public WmsCompleteInStoreNoticeBean setPkg(List<WmsCompleteInstoreNoticePkg> pkg) { this.pkg = pkg; return this; } }
WmsCompleteInstoreNoticeDetail
import java.io.Serializable; /** */ public class WmsCompleteInstoreNoticeDetail implements Serializable { private String orgCode; //Organization code private String skuCode; // Product code * private String mainUnit; // Main unit code * private Integer estMainQty; // Number of main units * private String srcRowId; // Source single row ID * private String fstRowNo; // Source single row number * private String lotAtt01; // Production date }
WmsCompleteInstoreNoticeHead
private String srcBillNo; // Source bill number * private String srcBillType; // Source single type * private String srcSystem;// source system * private String fstBillNo;// Source bill number * private String agentCode;//Customer code //S-00190 private String agentName;//Customer name //163 //Preparation barcode number (product name of R00307 barcode ps:705911781122) private String departCode; //department code private String departName; //Department name
WmsCompleteInstoreNoticePkg
private String srcRowId; //Source single row ID private String lpn; //tray code private String devNo; //Pallet material number
WmsCompleteInStoreNoticeRequest
import com.jeeplus.common.utils.DateUtils; import java.io.Serializable; import java.util.UUID; /** * @author * @date 2023/7/24 */ public class WmsCompleteInStoreNoticeRequest implements Serializable { private String requestType; // Request interface number required, see interface list - interface number private String requestId; // Request unique code required, UUID, to prevent repeated requests private String requestTime; //Request timestamp required, format: 2023-06-09 12:00:00 private String systemId; // Request system ID required, refer to enumeration information-source system private String userId; // Request user ID required, assigned by WMS private String token; // Request authentication code required, assigned by WMS private String signature; // Request signature optional, lower(md5(application identity ID + data + application encryption key)) private WmsCompleteInStoreNoticeBean data; public WmsCompleteInStoreNoticeRequest(){ this.requestId = UUID.randomUUID().toString(); this.requestTime = DateUtils.getDate("yyyy-MM-dd HH:mm:ss"); this.systemId = "MES"; } public static WmsCompleteInStoreNoticeRequest init(String requestType, String userId, String token){ WmsCompleteInStoreNoticeRequest common = new WmsCompleteInStoreNoticeRequest(); common.setRequestType(requestType); common.setUserId(userId) .setToken(token); return common; } public String getRequestType() { return requestType; } public WmsCompleteInStoreNoticeRequest setRequestType(String requestType) { this.requestType = requestType; return this; } public String getRequestId() { return requestId; } public WmsCompleteInStoreNoticeRequest setRequestId(String requestId) { this.requestId = requestId; return this; } public String getRequestTime() { return requestTime; } public WmsCompleteInStoreNoticeRequest setRequestTime(String requestTime) { this.requestTime = requestTime; return this; } public String getSystemId() { return systemId; } public WmsCompleteInStoreNoticeRequest setSystemId(String systemId) { this.systemId = systemId; return this; } public String getUserId() { return userId; } public WmsCompleteInStoreNoticeRequest setUserId(String userId) { this.userId = userId; return this; } public String getToken() { return token; } public WmsCompleteInStoreNoticeRequest setToken(String token) { this.token = token; return this; } public String getSignature() { return signature; } public WmsCompleteInStoreNoticeRequest setSignature(String signature) { this.signature = signature; return this; } public WmsCompleteInStoreNoticeBean getData() { return data; } public WmsCompleteInStoreNoticeRequest setData(WmsCompleteInStoreNoticeBean data) { this.data = data; return this; } }