package com.doumee.service.business.impl.thrid; 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.tms.model.request.TmsLockStatusQueryRequest; import com.doumee.core.tms.model.request.TmsOrderInfoRequest; import com.doumee.core.tms.model.request.TmsOrderListRequest; import com.doumee.core.tms.model.response.TmsBaseResponse; import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse; import com.doumee.core.tms.model.response.TmsOrderInfoResponse; import com.doumee.core.tms.model.response.TmsOrderListResponse; 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.dao.SmsEmailMapper; import com.doumee.dao.business.model.*; import com.doumee.service.business.impl.SmsEmailServiceImpl; import com.doumee.service.business.third.TmsService; import com.doumee.service.business.third.WmsService; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; /** * TMS平台对接Service实现 * @author 江蹄蹄 * @date 2023/11/30 15:33 */ @Service @Slf4j public class TmsServiceImpl implements TmsService { @Autowired private SmsEmailMapper smsEmailMapper; @Autowired private PlatformWmsJobMapper platformWmsJobMapper; @Autowired private PlatformGroupMapper platformGroupMapper; @Autowired private CarsMapper carsMapper; @Autowired private MemberMapper memberMapper; @Autowired private PlatformJobMapper platformJobMapper; @Autowired private PlatformWmsDetailMapper platformWmsDetailMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired private WmsInterfaceLogMapper wmsInterfaceLogMapper; @Value("${debug_model}") private Boolean isDebug; /** * 电子锁上锁时间接口 * 根据合同号,查询电子锁上锁情况;存在批量查询的情况; * @param param 参数 * @return TmsBaseResponse */ @Override public TmsBaseResponse> lockStatusQuery(TmsLockStatusQueryRequest param){ String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode() +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_LOCK_STATUS_URL).getCode(); TmsBaseResponse> response = sendHttpRequest(url,"【TMS】电子锁上锁时间接口",JSONObject.toJSONString(param) ,new TypeReference< TmsBaseResponse>>(){}); return response; } /** * 合同列表接口 * 根据区域ID集合+筛选条件(合同号、制单开始日期、制单结束日期、发货地、到货地、省份,非需要),返回合同列表信息,按照时间倒序展示; * @param param 参数 * @return TmsBaseResponse */ @Override public TmsBaseResponse> orderList(TmsOrderListRequest param){ SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,param.getPhoneNumber(),param.getCode()); String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode() +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_LIST_URL).getCode(); TmsBaseResponse> response = sendHttpRequest(url,"合同列表接口",JSONObject.toJSONString(param) ,new TypeReference< TmsBaseResponse>>(){}); return response; } /** * 合同详情接口 * @param param 参数 * @return TmsBaseResponse */ @Override public TmsBaseResponse orderInfo(TmsOrderInfoRequest param){ String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode() +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_DETAIL_URL).getCode(); TmsBaseResponse response = sendHttpRequest(url,"合同详情接口",JSONObject.toJSONString(param) ,new TypeReference< TmsBaseResponse>(){}); return response; } /** * 发起 tms接口请求 * @param url * @param name * @param param * @param typeReference * @return * @param */ public TmsBaseResponse sendHttpRequest(String url, String name, String param,TypeReference> typeReference){ log.info("【"+name+"】================开始===="+ JSONObject.toJSONString(param)); if ( StringUtils.isNotBlank(url)) { String res = null; int success = 0; try { Map headers = new HashMap<>(); res = HttpsUtil.postJson(url,param); TmsBaseResponse 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 { } } return null; } private static void logResult(TmsBaseResponse res,String name) { if(StringUtils.equals(res.getCode(), TmsBaseResponse.CODE_SUCCESS)){ log.info("【TMS接口:"+name+"】================成功====\n"+res); }else{ log.error("【TMS接口:"+name+"】================失败====:\n"+ res); } } }