From c47f7b9c4899036c52ad0e4f46c4aff7102110bc Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 09 九月 2024 19:56:07 +0800 Subject: [PATCH] 最新版本 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 153 insertions(+), 4 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java index d7064fe..b8ee494 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/wms/WmsServiceImpl.java @@ -1,22 +1,26 @@ package com.doumee.service.business.impl.wms; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.utils.Constants; +import com.doumee.core.utils.HttpsUtil; import com.doumee.core.wms.model.request.*; import com.doumee.core.wms.model.response.WmsBaseDataResponse; import com.doumee.core.wms.model.response.WmsBaseResponse; +import com.doumee.core.wms.model.response.WmsInventoryDataResponse; import com.doumee.dao.business.*; import com.doumee.dao.business.model.*; import com.doumee.service.business.WmsService; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; /** * WMS骞冲彴瀵规帴Service瀹炵幇 @@ -24,6 +28,7 @@ * @date 2023/11/30 15:33 */ @Service +@Slf4j public class WmsServiceImpl implements WmsService { @Autowired private PlatformWmsJobMapper platformWmsJobMapper; @@ -35,7 +40,150 @@ private PlatformJobMapper platformJobMapper; @Autowired private PlatformWmsDetailMapper platformWmsDetailMapper; + @Autowired + private SystemDictDataBiz systemDictDataBiz; + @Autowired + private WmsInterfaceLogMapper wmsInterfaceLogMapper; + /** + * 鍏ュ簱閫氱煡浠诲姟涓氬姟澶勭悊 + * @param job 鍙傛暟 + * @return + */ + @Override + public WmsBaseResponse<WmsBaseDataResponse> orderPlatformBind(PlatformJob job) { + if(StringUtils.isBlank(job.getBillCode()) || StringUtils.isBlank(job.getPlatformWmsCode())){ + + return null; + } + int type = 0; + if(Constants.equalsInteger(job.getType(),Constants.ONE) + || Constants.equalsInteger(job.getType(),Constants.THREE)){ + //濡傛灉鏄璐э紙鍑哄簱锛� + type =1 ; + }else if(Constants.equalsInteger(job.getType(),Constants.ZERO) + || Constants.equalsInteger(job.getType(),Constants.TWO)){ + //濡傛灉鏄璐э紙鍑哄簱锛� + type =0 ; + }else{ + return null; + } + WmsOrderPlatformRequest param = new WmsOrderPlatformRequest(); + param.setData(new ArrayList<>()); + WmsOrderPlatformInfoRequest o = new WmsOrderPlatformInfoRequest(); + o.setCarrierBillCode(job.getBillCode()); + o.setRailwayNo(job.getPlatformWmsCode()); + param.getData().add(o); + String url = type == 0?systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_INBOUND_PLATFROM_URL).getCode():systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_OUTBOUND_PLATFROM_URL).getCode();; + String name = type ==0?"銆怶MS銆戝叆搴綔涓氬崟鍒嗛厤鏈堝彴":"銆怶MS銆戝嚭搴撲綔涓氱殑鍒嗛厤鏈堝彴"; + WmsBaseResponse<WmsBaseDataResponse> response = sendHttpRequest(url,name,JSONObject.toJSONString(param),new TypeReference< WmsBaseResponse<WmsBaseDataResponse>>(){}); + PlatformJob update = new PlatformJob(); + update.setId(job.getId()); + update.setWmsSendDate(new Date()); + update.setWmsSendNum(job.getWmsSendNum() + 1); + update.setWmsSendPlatformCode(job.getPlatformWmsCode()); + if(response!=null && response.getData() !=null + && response.getData().size()>0 && StringUtils.equals(response.getData().get(0).getSuccess(),WmsBaseResponse.CODE_SUCCESS)){ + //濡傛灉鎴愬姛 + update.setWmsSendStatus(Constants.ONE); + update.setWmsSendInfo("閫氱煡WMS浣滀笟鍗曞垎閰嶆湀鍙版垚鍔�"); + }else{ + //濡傛灉澶辫触 + update.setWmsSendStatus(Constants.TWO); + update.setWmsSendInfo("閫氱煡WMS浣滀笟鍗曞垎閰嶆湀鍙板け璐�:"+(response!=null?JSONObject.toJSONString(response):"鎺ュ彛璋冪敤澶辫触")); + } + platformJobMapper.updateById(update); + return response; + + } + /** + * 鍏ュ簱閫氱煡浠诲姟涓氬姟澶勭悊 + * @return + */ + @Override + public WmsBaseResponse<WmsInventoryDataResponse> getInventoryList(){ + String url = systemDictDataBiz.queryByCode(Constants.WSM_PARAM,Constants.WMS_GET_INVENTORYLIST_URL).getCode() ; + String name = "銆怶MS銆戝簱瀛樻煡璇�" ; + WmsBaseResponse<WmsInventoryDataResponse> response = sendHttpRequest(url,name,JSONObject.toJSONString(new JSONObject()),new TypeReference< WmsBaseResponse<WmsInventoryDataResponse>>(){}); + if(response!=null + && response.getData() !=null + && response.getData().size()>0 + && StringUtils.equals(response.getData().get(0).getSuccess(),WmsBaseResponse.CODE_SUCCESS)){ + //濡傛灉璇锋眰鎴愬姛 + + }else{ + //濡傛灉澶辫触 + if(response ==null){ + response = new WmsBaseResponse(); + response.setData(new ArrayList<>()); + } + if(response.getData() == null){ + response.setData(new ArrayList<>()); + } + } + return response; + + } + @Override + public void saveInterfaceLog(String url,String name,String param,Integer success,String respone,int type){ + if(wmsInterfaceLogMapper ==null){ + return; + } + WmsInterfaceLog log = new WmsInterfaceLog(); + log.setCreateDate(new Date()); + log.setUrl(url); + log.setEditDate(log.getCreateDate()); + log.setPlat(Constants.ZERO); + log.setName(name); + log.setIsdeleted(Constants.ZERO); + log.setRequest(param); + log.setType(type); + log.setSuccess(success); + log.setRepose(respone); + wmsInterfaceLogMapper.insert(log); + } + + /** + * 鍙戣捣wms鎺ュ彛璇锋眰 + * @param url + * @param name + * @param param + * @param typeReference + * @return + * @param <T> + */ + public <T> WmsBaseResponse<T> sendHttpRequest(String url, String name, String param,TypeReference<WmsBaseResponse<T>> typeReference){ + log.info("銆�"+name+"銆�================寮�濮�===="+ JSONObject.toJSONString(param)); + if ( StringUtils.isNotBlank(url)) { + String res = null; + int success = 0; + try { + Map<String,String> headers = new HashMap<>(); + res = HttpsUtil.postJson(url,param); + WmsBaseResponse result = JSONObject.parseObject(res, typeReference.getType()); + logResult(result,name); + if(result!=null && result.getData() !=null ){ + + }else{ + success =1; + } + return result; + }catch (Exception e){ + success = 1; + log.error("銆�"+name+"銆�================澶辫触===="+ JSONObject.toJSONString(param)); + }finally { + saveInterfaceLog(url,name,param,success,res,Constants.ZERO); + } + } + return null; + } + private static void logResult(WmsBaseResponse<WmsBaseDataResponse> res,String name) { + if(StringUtils.equals(res.getData().get(0).getSuccess(), WmsBaseResponse.CODE_SUCCESS)){ + log.info("銆怶MS鎺ュ彛锛�"+name+"銆�================鎴愬姛====\n"+res); + }else{ + log.error("銆怶MS鎺ュ彛锛�"+name+"銆�================澶辫触====锛歕n"+ res); + } + } /** * 鍏ュ簱閫氱煡浠诲姟涓氬姟澶勭悊 * @param list 鍙傛暟 @@ -43,7 +191,7 @@ */ @Override @Transactional - public WmsBaseResponse inboundNotice(List<WmsInboundNoticeRequest> list) { + public WmsBaseResponse<WmsBaseDataResponse> inboundNotice(List<WmsInboundNoticeRequest> list) { if(list ==null || list.size() ==0){ return returnFailReuslt("璇锋眰鍙傛暟涓嶆纭紝鍙傛暟涓嶈兘涓虹┖"); } @@ -342,6 +490,7 @@ * @return */ + private WmsBaseResponse returnSuccessReuslt(String msg) { WmsBaseResponse response = new WmsBaseResponse(); response.setData(new ArrayList<>()); -- Gitblit v1.9.3