V3版本修改

v3_back
anthonywj 1 year ago
parent 00a048406e
commit 0cb7316059

@ -20,6 +20,8 @@ import com.glxp.udidl.admin.util.DateUtil;
import com.glxp.udidl.admin.util.FilterUdiUtils; import com.glxp.udidl.admin.util.FilterUdiUtils;
import com.glxp.udidl.admin.util.ResultVOUtils; import com.glxp.udidl.admin.util.ResultVOUtils;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -31,7 +33,7 @@ import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@Slf4j
@RestController @RestController
public class UdiInfoController { public class UdiInfoController {
@ -457,7 +459,7 @@ public class UdiInfoController {
return ResultVOUtils.success(pageSimpleResponse); return ResultVOUtils.success(pageSimpleResponse);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); log.error(ExceptionUtils.getStackTrace(e));
return ResultVOUtils.error(500, "连接UDI数据下载服务出错"); return ResultVOUtils.error(500, "连接UDI数据下载服务出错");
} }
} }
@ -552,6 +554,7 @@ public class UdiInfoController {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
log.error(ExceptionUtils.getStackTrace(e));
return ResultVOUtils.error(500, "连接UDI数据下载服务出错"); return ResultVOUtils.error(500, "连接UDI数据下载服务出错");
} }
} }

@ -49,7 +49,7 @@ public class CompanyController {
public BaseResponse vailUdiToken(@RequestBody TokenRequest tokenRequest) { public BaseResponse vailUdiToken(@RequestBody TokenRequest tokenRequest) {
if (StrUtil.isEmpty(tokenRequest.getTyshxydm())) { if (StrUtil.isEmpty(tokenRequest.getTYSHXYDM())) {
return ResultVOUtils.error(500, "统一社会信用代码不能为空!"); return ResultVOUtils.error(500, "统一社会信用代码不能为空!");
} }

@ -12,6 +12,8 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -27,6 +29,7 @@ import java.util.List;
@Api(tags = "阳光采购平台产品信息接口") @Api(tags = "阳光采购平台产品信息接口")
@RestController @RestController
@RequestMapping("udplat/goods") @RequestMapping("udplat/goods")
@Slf4j
public class UdplatGoodsController { public class UdplatGoodsController {
@Autowired @Autowired
@ -47,6 +50,7 @@ public class UdplatGoodsController {
try { try {
return udplatGoodsService.importExcel(file.getInputStream(), type); return udplatGoodsService.importExcel(file.getInputStream(), type);
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
return ResultVOUtils.error(-1, e.getMessage()); return ResultVOUtils.error(-1, e.getMessage());
} }
} }

@ -1,6 +1,8 @@
package com.glxp.udidl.admin.converter; package com.glxp.udidl.admin.converter;
import org.apache.commons.lang3.exception.ExceptionUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;

@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.toolkit.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.glxp.udidl.admin.util.BeanCopyUtils; import com.glxp.udidl.admin.util.BeanCopyUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.ibatis.binding.MapperMethod; import org.apache.ibatis.binding.MapperMethod;
import org.apache.ibatis.logging.Log; import org.apache.ibatis.logging.Log;
import org.apache.ibatis.logging.LogFactory; import org.apache.ibatis.logging.LogFactory;
@ -263,6 +264,7 @@ public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
log.error("insertIgnoreBatch fail", e); log.error("insertIgnoreBatch fail", e);
return false; return false;
} }
@ -314,6 +316,7 @@ public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
log.error("insertIgnoreBatch fail", e); log.error("insertIgnoreBatch fail", e);
return false; return false;
} }

@ -15,17 +15,22 @@ public class DeviceRequest {
* currentPageNumber : , 1 * currentPageNumber : , 1
*/ */
@ApiModelProperty(value = "接口调用凭据")
private String accessToken;
@ApiModelProperty(value = "数据类型", example = "1 新发布") @ApiModelProperty(value = "数据类型", example = "1 新发布")
private String dataType; private String dataType;
@ApiModelProperty(value = "请求时间范围")
private String rangeValue;
@ApiModelProperty(value = "请求分页数,初始请求时,从 1 开始")
private String currentPageNumber;
///无用数据
@ApiModelProperty(value = "接口调用凭据")
private String accessToken;
@ApiModelProperty(value = "请求范围1 按天请求2 按月请求") @ApiModelProperty(value = "请求范围1 按天请求2 按月请求")
private String requestType; private String requestType;
@ApiModelProperty(value = "请求时间范围")
private String rangeValue;
@ApiModelProperty(value = "最小销售单元产品标识;精准查询") @ApiModelProperty(value = "最小销售单元产品标识;精准查询")
@JsonProperty("ZXXSDYCPBS") @JsonProperty("ZXXSDYCPBS")
@ -47,8 +52,6 @@ public class DeviceRequest {
@JsonProperty("ZCZBHHZBAPZBH") @JsonProperty("ZCZBHHZBAPZBH")
private String ZCZBHHZBAPZBH; private String ZCZBHHZBAPZBH;
@ApiModelProperty(value = "请求分页数,初始请求时,从 1 开始")
private String currentPageNumber;
@ApiModelProperty(value = "下载方式: auto自动 manual手动") @ApiModelProperty(value = "下载方式: auto自动 manual手动")
private String downloadType; private String downloadType;

@ -0,0 +1,18 @@
package com.glxp.udidl.admin.req.udid;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
public class DeviceV3Request {
private String dataType;
private String rangeValue;
private Integer currentPageNumber;
private String ZXXSDYCPBS;
}

@ -1,29 +1,14 @@
package com.glxp.udidl.admin.req.udid; package com.glxp.udidl.admin.req.udid;
import lombok.Data;
@Data
public class DownloadDiRequest { public class DownloadDiRequest {
/** /**
* accessToken : 70ACE0818B99E99D10046C6AAA6271109A0FD7643D57E0B4E4936E271757EF79F905F86F4492CC6C4388019B0AB925927216652B7D17090B794A9F34B10CD3B101A09182AF0AC9313FF8436964D5AF47E1600795405BCF94 * accessToken : 70ACE0818B99E99D10046C6AAA6271109A0FD7643D57E0B4E4936E271757EF79F905F86F4492CC6C4388019B0AB925927216652B7D17090B794A9F34B10CD3B101A09182AF0AC9313FF8436964D5AF47E1600795405BCF94
* primaryDeviceId : 08714729040347 * primaryDeviceId : 08714729040347
*/ */
private String ZXXSDYCPBS;
private String accessToken;
private String primaryDeviceId;
public String getAccessToken() {
return accessToken;
}
public void setAccessToken(String accessToken) {
this.accessToken = accessToken;
}
public String getPrimaryDeviceId() {
return primaryDeviceId;
}
public void setPrimaryDeviceId(String primaryDeviceId) {
this.primaryDeviceId = primaryDeviceId;
}
} }

@ -12,5 +12,5 @@ public class TokenRequest {
private String appSecret; private String appSecret;
@ApiModelProperty(value = "统一社会信用代码", required = true) @ApiModelProperty(value = "统一社会信用代码", required = true)
@JSONField(name = "TYSHXYDM") @JSONField(name = "TYSHXYDM")
private String tyshxydm;//统一社会信用代码 必须大写 private String TYSHXYDM;//统一社会信用代码 必须大写
} }

@ -1,6 +1,7 @@
package com.glxp.udidl.admin.service.dataSync; package com.glxp.udidl.admin.service.dataSync;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
@ -11,10 +12,7 @@ import com.glxp.udidl.admin.entity.udi.ProductInfoEntity;
import com.glxp.udidl.admin.entity.udid.Device; import com.glxp.udidl.admin.entity.udid.Device;
import com.glxp.udidl.admin.entity.udid.JobLog; import com.glxp.udidl.admin.entity.udid.JobLog;
import com.glxp.udidl.admin.entity.udid.TokenEntity; import com.glxp.udidl.admin.entity.udid.TokenEntity;
import com.glxp.udidl.admin.req.udid.DeviceRequest; import com.glxp.udidl.admin.req.udid.*;
import com.glxp.udidl.admin.req.udid.DownloadDiRequest;
import com.glxp.udidl.admin.req.udid.DownloadHistoryRequest;
import com.glxp.udidl.admin.req.udid.TokenRequest;
import com.glxp.udidl.admin.res.BaseResponse; import com.glxp.udidl.admin.res.BaseResponse;
import com.glxp.udidl.admin.res.udid.DataSetHistoryResult; import com.glxp.udidl.admin.res.udid.DataSetHistoryResult;
import com.glxp.udidl.admin.res.udid.DataSetResult; import com.glxp.udidl.admin.res.udid.DataSetResult;
@ -24,11 +22,9 @@ import com.glxp.udidl.admin.service.info.CompanyService;
import com.glxp.udidl.admin.service.inout.DeviceService; import com.glxp.udidl.admin.service.inout.DeviceService;
import com.glxp.udidl.admin.service.inout.ProductInfoService; import com.glxp.udidl.admin.service.inout.ProductInfoService;
import com.glxp.udidl.admin.service.udi.JobLogService; import com.glxp.udidl.admin.service.udi.JobLogService;
import com.glxp.udidl.admin.util.DateUtil; import com.glxp.udidl.admin.util.*;
import com.glxp.udidl.admin.util.HttpClient;
import com.glxp.udidl.admin.util.RedisUtil;
import com.glxp.udidl.admin.util.ResultVOUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -46,14 +42,9 @@ import java.util.stream.Collectors;
public class DeviceDownloadService { public class DeviceDownloadService {
private String token = ""; private String token = "";
private int reCount = 0; private int reCount = 0;
private CompanyEntity companyEntity; private CompanyEntity companyEntity;
private String url = "sharing/get";
@Resource @Resource
private CompanyService companyService; private CompanyService companyService;
@Resource @Resource
@ -73,6 +64,10 @@ public class DeviceDownloadService {
private static List<Map<String, String>> tokenList = new ArrayList<>(); private static List<Map<String, String>> tokenList = new ArrayList<>();
@Resource
OkHttpCli okHttpCli;
/** /**
* token * token
* *
@ -86,8 +81,10 @@ public class DeviceDownloadService {
TokenRequest tokenRequest = new TokenRequest(); TokenRequest tokenRequest = new TokenRequest();
tokenRequest.setAppId(companyEntity.getAppId()); tokenRequest.setAppId(companyEntity.getAppId());
tokenRequest.setAppSecret(companyEntity.getAppSecret()); tokenRequest.setAppSecret(companyEntity.getAppSecret());
tokenRequest.setTyshxydm(companyEntity.getTyshxydm()); tokenRequest.setTYSHXYDM(companyEntity.getTyshxydm());
String response = HttpClient.post("token/get", tokenRequest); String json = JSONUtil.toJsonStr(tokenRequest);
String response = okHttpCli.doPostJson(UdidConfig.apiUrl + "token/get", json);
// String response = HttpClient.post("token/get", tokenRequest);
TokenEntity tokenEntity = (TokenEntity) JSONObject.parseObject(response, TokenEntity.class); TokenEntity tokenEntity = (TokenEntity) JSONObject.parseObject(response, TokenEntity.class);
token = tokenEntity.getAccessToken(); token = tokenEntity.getAccessToken();
redisUtil.setEx("UDISYNC_TOKEN", token, 1 * 60 * 60 * 6); redisUtil.setEx("UDISYNC_TOKEN", token, 1 * 60 * 60 * 6);
@ -97,7 +94,8 @@ public class DeviceDownloadService {
public String getTokenNow(TokenRequest tokenRequest) { public String getTokenNow(TokenRequest tokenRequest) {
try { try {
String response = HttpClient.post("token/get", tokenRequest); String json = JSONUtil.toJsonStr(tokenRequest);
String response = okHttpCli.doPostJson(UdidConfig.apiUrl + "token/get", json);
TokenEntity tokenEntity = (TokenEntity) JSONObject.parseObject(response, TokenEntity.class); TokenEntity tokenEntity = (TokenEntity) JSONObject.parseObject(response, TokenEntity.class);
if (tokenEntity.getReturnCode() == 1) { if (tokenEntity.getReturnCode() == 1) {
token = tokenEntity.getAccessToken(); token = tokenEntity.getAccessToken();
@ -107,6 +105,7 @@ public class DeviceDownloadService {
} }
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
log.error("国家库网络服务器异常", e); log.error("国家库网络服务器异常", e);
return "国家库网络服务器异常!"; return "国家库网络服务器异常!";
} }
@ -122,12 +121,13 @@ public class DeviceDownloadService {
public DataSetSingleResult downloadByDi(String deviceId) { public DataSetSingleResult downloadByDi(String deviceId) {
DataSetSingleResult result = new DataSetSingleResult(); DataSetSingleResult result = new DataSetSingleResult();
DownloadDiRequest downloadDiRequest = new DownloadDiRequest(); DownloadDiRequest downloadDiRequest = new DownloadDiRequest();
downloadDiRequest.setAccessToken(getToken()); downloadDiRequest.setZXXSDYCPBS(deviceId);
downloadDiRequest.setPrimaryDeviceId(deviceId); String json = JSONUtil.toJsonStr(downloadDiRequest);
String response = ""; String response = "";
try { try {
response = HttpClient.post("sharing/single", downloadDiRequest); response = okHttpCli.doPostJson(UdidConfig.apiUrl + "sharing/single", json, getHeaders());
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
log.error("下载产品标识详情数据异常,响应结果:{}", response); log.error("下载产品标识详情数据异常,响应结果:{}", response);
result.setReturnCode(-1); result.setReturnCode(-1);
result.setReturnMsg(e.getMessage()); result.setReturnMsg(e.getMessage());
@ -136,6 +136,14 @@ public class DeviceDownloadService {
return JSONObject.parseObject(response, DataSetSingleResult.class); return JSONObject.parseObject(response, DataSetSingleResult.class);
} }
public String[] getHeaders() {
List<String> header = new ArrayList<>();
header.add("accessToken");
header.add(getToken());
String[] strArray = new String[header.size()];
return header.toArray(strArray);
}
/** /**
* *
* *
@ -146,15 +154,18 @@ public class DeviceDownloadService {
*/ */
private DataSetResult getData(String rangeValue, int requestType, int page) { private DataSetResult getData(String rangeValue, int requestType, int page) {
DataSetResult result = new DataSetResult(); DataSetResult result = new DataSetResult();
DeviceRequest deviceRequest = new DeviceRequest();
deviceRequest.setAccessToken(getToken()); DeviceV3Request deviceRequest = DeviceV3Request.builder()
deviceRequest.setRequestType(requestType + ""); .dataType("1")
deviceRequest.setRangeValue(rangeValue); .currentPageNumber(page)
deviceRequest.setCurrentPageNumber(page + ""); .ZXXSDYCPBS(null)
.rangeValue(rangeValue).build();
String response = ""; String response = "";
try { try {
Thread.sleep(3 * 1000); Thread.sleep(3 * 1000);
response = HttpClient.post(url, deviceRequest); String json = JSONUtil.toJsonStr(deviceRequest);
response = okHttpCli.doPostJson(UdidConfig.apiUrl + "sharing/get", json, getHeaders());
} catch (InterruptedException e) { } catch (InterruptedException e) {
result.setReturnCode(-1); result.setReturnCode(-1);
result.setReturnMsg(e.getMessage()); result.setReturnMsg(e.getMessage());
@ -170,17 +181,18 @@ public class DeviceDownloadService {
* @return * @return
*/ */
private synchronized DataSetResult getData(DeviceRequest deviceRequest, int page) { private synchronized DataSetResult getData(DeviceRequest deviceRequest, int page) {
deviceRequest.setAccessToken(getToken());
deviceRequest.setCurrentPageNumber(page + "");
String response = ""; String response = "";
DeviceV3Request deviceV3Request = new DeviceV3Request();
BeanUtil.copyProperties(deviceRequest, deviceV3Request);
deviceV3Request.setCurrentPageNumber(page);
String key = "downloadUdiData"; String key = "downloadUdiData";
if (redisUtil.getLock(key)) { if (redisUtil.getLock(key)) {
log.info("获取到锁"); log.info("获取到锁");
redisUtil.setEx("downloadUdiData", "1", 5); redisUtil.setEx("downloadUdiData", "1", 5);
//目前限制为5秒访问一次 //目前限制为5秒访问一次
log.info("获取到锁的参数:" + page); log.info("获取到锁的参数:" + page);
response = HttpClient.post(url, deviceRequest); String json = JSONUtil.toJsonStr(deviceV3Request);
response = okHttpCli.doPostJson(UdidConfig.apiUrl + "sharing/get", json, getHeaders());
log.info("获取到结果," + response); log.info("获取到结果," + response);
} }
log.info("开始解析结果"); log.info("开始解析结果");
@ -292,7 +304,7 @@ public class DeviceDownloadService {
} }
boolean hasData = true; //是否还有数据,如无退出 boolean hasData = true; //是否还有数据,如无退出
while (hasData) { while (hasData) {
redisUtil.set("allUpdatePage", page+""); redisUtil.set("allUpdatePage", page + "");
DataSetResult dataSetResult = getData(deviceRequest, page); DataSetResult dataSetResult = getData(deviceRequest, page);
if (dataSetResult.getReturnCode() != 1 && reCount == 0) { if (dataSetResult.getReturnCode() != 1 && reCount == 0) {
token = ""; token = "";
@ -300,6 +312,7 @@ public class DeviceDownloadService {
try { try {
dataSetResult = getData(deviceRequest, page); dataSetResult = getData(deviceRequest, page);
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
jobLog.setStatus(1); jobLog.setStatus(1);
jobLog.setType(Constant.LOG_TYPE_ERROR); jobLog.setType(Constant.LOG_TYPE_ERROR);
jobLog.setMsg("下载失败:" + e.getMessage()); jobLog.setMsg("下载失败:" + e.getMessage());
@ -334,7 +347,7 @@ public class DeviceDownloadService {
jobLog.setLastUploadRequest(JSONUtil.toJsonStr(deviceRequest)); jobLog.setLastUploadRequest(JSONUtil.toJsonStr(deviceRequest));
jobLogService.update(jobLog); jobLogService.update(jobLog);
} catch (Exception e) { } catch (Exception e) {
log.error("插入数据失败", e); log.error(ExceptionUtils.getStackTrace(e));
jobLog.setStatus(1); jobLog.setStatus(1);
jobLog.setType(Constant.LOG_TYPE_ERROR); jobLog.setType(Constant.LOG_TYPE_ERROR);
jobLog.setMsg("数据写入失败" + e.getMessage()); jobLog.setMsg("数据写入失败" + e.getMessage());
@ -414,7 +427,8 @@ public class DeviceDownloadService {
String response = ""; String response = "";
try { try {
Thread.sleep(3 * 1000); Thread.sleep(3 * 1000);
response = HttpClient.post(historyUrl, deviceHistoryRequest); String json = JSONUtil.toJsonStr(deviceHistoryRequest);
response = okHttpCli.doPostJson(historyUrl, json, getHeaders());
} catch (InterruptedException e) { } catch (InterruptedException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
results.setCode(-1); results.setCode(-1);
@ -544,7 +558,7 @@ public class DeviceDownloadService {
jobLog.setCreateTime(new Date()); jobLog.setCreateTime(new Date());
jobLogService.insert(jobLog); jobLogService.insert(jobLog);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(ExceptionUtils.getStackTrace(e));
JobLog jobLog = new JobLog(); JobLog jobLog = new JobLog();
jobLog.setDownloadType(Constant.DOWNLOAD_TYPE_MANUAL); jobLog.setDownloadType(Constant.DOWNLOAD_TYPE_MANUAL);
jobLog.setTaskType(Constant.JOB_TASK_TYPE_DOWNLOAD); jobLog.setTaskType(Constant.JOB_TASK_TYPE_DOWNLOAD);
@ -610,7 +624,7 @@ public class DeviceDownloadService {
jobLog.setCreateTime(new Date()); jobLog.setCreateTime(new Date());
jobLogService.insert(jobLog); jobLogService.insert(jobLog);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(ExceptionUtils.getStackTrace(e));
JobLog jobLog = new JobLog(); JobLog jobLog = new JobLog();
jobLog.setDownloadType(Constant.DOWNLOAD_TYPE_MANUAL); jobLog.setDownloadType(Constant.DOWNLOAD_TYPE_MANUAL);
jobLog.setTaskType(Constant.JOB_TASK_TYPE_DOWNLOAD); jobLog.setTaskType(Constant.JOB_TASK_TYPE_DOWNLOAD);

@ -12,6 +12,8 @@ import com.glxp.udidl.admin.thread.UdiTransferUtils;
import com.glxp.udidl.admin.util.BeanUtils; import com.glxp.udidl.admin.util.BeanUtils;
import com.glxp.udidl.admin.util.DateUtil; import com.glxp.udidl.admin.util.DateUtil;
import com.glxp.udidl.admin.util.IntUtil; import com.glxp.udidl.admin.util.IntUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -26,6 +28,7 @@ import java.util.stream.Collectors;
* *
*/ */
@Service @Service
@Slf4j
public class DeviceSaveService { public class DeviceSaveService {
@Resource @Resource
private DeviceService deviceService; private DeviceService deviceService;
@ -316,6 +319,7 @@ public class DeviceSaveService {
try { try {
return Integer.parseInt(s); return Integer.parseInt(s);
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
return 0; return 0;
} }
} }

@ -19,6 +19,7 @@ import com.glxp.udidl.admin.service.udi.JobLogService;
import com.glxp.udidl.admin.util.DateUtil; import com.glxp.udidl.admin.util.DateUtil;
import com.glxp.udidl.admin.util.ResultVOUtils; import com.glxp.udidl.admin.util.ResultVOUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -92,7 +93,7 @@ public class DeviceSyncService {
try { try {
downloadAndSave(day, downloadType, Constant.DL_TYPE_UPDATE); downloadAndSave(day, downloadType, Constant.DL_TYPE_UPDATE);
} catch (Exception e) { } catch (Exception e) {
log.error("下载UDI国家库信息异常", e); log.error(ExceptionUtils.getStackTrace(e));
JobLog jobLog = new JobLog(); JobLog jobLog = new JobLog();
jobLog.setDownloadType(downloadType); jobLog.setDownloadType(downloadType);
jobLog.setDownloadDate(DateUtil.parseDate(day)); jobLog.setDownloadDate(DateUtil.parseDate(day));
@ -231,7 +232,7 @@ public class DeviceSyncService {
jobLog.setType(Constant.LOG_TYPE_SUCCESS); jobLog.setType(Constant.LOG_TYPE_SUCCESS);
jobLogService.update(jobLog); jobLogService.update(jobLog);
} catch (Exception e) { } catch (Exception e) {
log.error("下载产品信息失败", e); log.error(ExceptionUtils.getStackTrace(e));
jobLog.setMsg("下载失败:" + res.getReturnMsg()); jobLog.setMsg("下载失败:" + res.getReturnMsg());
jobLog.setType(Constant.LOG_TYPE_ERROR); jobLog.setType(Constant.LOG_TYPE_ERROR);
jobLogService.update(jobLog); jobLogService.update(jobLog);

@ -11,6 +11,7 @@ import com.glxp.udidl.admin.service.inout.ProductInfoService;
import com.glxp.udidl.admin.util.DateUtil; import com.glxp.udidl.admin.util.DateUtil;
import com.glxp.udidl.admin.util.ResultVOUtils; import com.glxp.udidl.admin.util.ResultVOUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -94,7 +95,7 @@ public class ProductInfoDlService {
} }
zip.close(); zip.close();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(ExceptionUtils.getStackTrace(e));
return ResultVOUtils.error(-1, e.getMessage()); return ResultVOUtils.error(-1, e.getMessage());
} }
return ResultVOUtils.success(); return ResultVOUtils.success();

@ -14,6 +14,7 @@ import com.glxp.udidl.admin.util.Md5Utils;
import com.glxp.udidl.admin.util.ResultVOUtils; import com.glxp.udidl.admin.util.ResultVOUtils;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
@ -46,7 +47,7 @@ public class UdplatDownloadService {
try { try {
userName = URLEncoder.encode(globalConfig.getUdplat_userName(), "utf-8"); userName = URLEncoder.encode(globalConfig.getUdplat_userName(), "utf-8");
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(ExceptionUtils.getStackTrace(e));
} }
return userName; return userName;
} }

@ -18,6 +18,8 @@ import com.glxp.udidl.admin.service.udi.ProductClassifyService;
import com.glxp.udidl.admin.service.udi.UdiCompanyService; import com.glxp.udidl.admin.service.udi.UdiCompanyService;
import com.glxp.udidl.admin.util.BeanUtils; import com.glxp.udidl.admin.util.BeanUtils;
import com.glxp.udidl.admin.util.DateUtil; import com.glxp.udidl.admin.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -27,6 +29,7 @@ import java.util.stream.Collectors;
/** /**
* *
*/ */
@Slf4j
@Service @Service
public class DeviceParseService { public class DeviceParseService {
@ -282,6 +285,7 @@ public class DeviceParseService {
try { try {
return Integer.parseInt(s); return Integer.parseInt(s);
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
return 0; return 0;
} }
} }

@ -5,6 +5,7 @@ import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.glxp.udidl.admin.constant.Constant; import com.glxp.udidl.admin.constant.Constant;
import com.glxp.udidl.admin.entity.info.CompanyEntity; import com.glxp.udidl.admin.entity.info.CompanyEntity;
@ -20,12 +21,16 @@ import com.glxp.udidl.admin.service.inout.DeviceService;
import com.glxp.udidl.admin.service.inout.ProductInfoService; import com.glxp.udidl.admin.service.inout.ProductInfoService;
import com.glxp.udidl.admin.service.udi.JobLogService; import com.glxp.udidl.admin.service.udi.JobLogService;
import com.glxp.udidl.admin.util.HttpClient; import com.glxp.udidl.admin.util.HttpClient;
import com.glxp.udidl.admin.util.OkHttpCli;
import com.glxp.udidl.admin.util.RedisUtil; import com.glxp.udidl.admin.util.RedisUtil;
import com.glxp.udidl.admin.util.UdidConfig;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -36,7 +41,6 @@ import java.util.List;
public class DeviceUpdateService { public class DeviceUpdateService {
private String token; private String token;
private String url = "sharing/get";
@Resource @Resource
private RedisUtil redisUtil; private RedisUtil redisUtil;
@ -104,8 +108,9 @@ public class DeviceUpdateService {
TokenRequest tokenRequest = new TokenRequest(); TokenRequest tokenRequest = new TokenRequest();
tokenRequest.setAppId(companyEntity.getAppId()); tokenRequest.setAppId(companyEntity.getAppId());
tokenRequest.setAppSecret(companyEntity.getAppSecret()); tokenRequest.setAppSecret(companyEntity.getAppSecret());
tokenRequest.setTyshxydm(companyEntity.getTyshxydm()); tokenRequest.setTYSHXYDM(companyEntity.getTyshxydm());
String response = HttpClient.post("token/get", tokenRequest); String json = JSONUtil.toJsonStr(tokenRequest);
String response = okHttpCli.doPostJson(UdidConfig.apiUrl + "token/get", json);
TokenEntity tokenEntity = JSONObject.parseObject(response, TokenEntity.class); TokenEntity tokenEntity = JSONObject.parseObject(response, TokenEntity.class);
token = tokenEntity.getAccessToken(); token = tokenEntity.getAccessToken();
redisUtil.setEx("UDI_UPDATE_TOKEN", token, 1 * 60 * 60 * 6); redisUtil.setEx("UDI_UPDATE_TOKEN", token, 1 * 60 * 60 * 6);
@ -113,6 +118,10 @@ public class DeviceUpdateService {
return token; return token;
} }
@Resource
OkHttpCli okHttpCli;
/** /**
* *
* *
@ -122,12 +131,13 @@ public class DeviceUpdateService {
public DataSetSingleResult downloadByDi(String deviceId) { public DataSetSingleResult downloadByDi(String deviceId) {
DataSetSingleResult result = new DataSetSingleResult(); DataSetSingleResult result = new DataSetSingleResult();
DownloadDiRequest downloadDiRequest = new DownloadDiRequest(); DownloadDiRequest downloadDiRequest = new DownloadDiRequest();
downloadDiRequest.setAccessToken(getToken()); downloadDiRequest.setZXXSDYCPBS(deviceId);
downloadDiRequest.setPrimaryDeviceId(deviceId); String json = JSONUtil.toJsonStr(downloadDiRequest);
String response = ""; String response = "";
try { try {
response = HttpClient.post("sharing/single", downloadDiRequest); response = okHttpCli.doPostJson(UdidConfig.apiUrl + "sharing/single", json, getHeaders());
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
log.error("下载产品标识详情数据异常,响应结果:{}", response); log.error("下载产品标识详情数据异常,响应结果:{}", response);
result.setReturnCode(-1); result.setReturnCode(-1);
result.setReturnMsg(e.getMessage()); result.setReturnMsg(e.getMessage());
@ -136,4 +146,12 @@ public class DeviceUpdateService {
return JSONObject.parseObject(response, DataSetSingleResult.class); return JSONObject.parseObject(response, DataSetSingleResult.class);
} }
public String[] getHeaders() {
List<String> header = new ArrayList<>();
header.add("accessToken");
header.add(getToken());
String[] strArray = new String[header.size()];
return header.toArray(strArray);
}
} }

@ -15,6 +15,7 @@ import com.glxp.udidl.admin.service.udplat.UdplatGoodsService;
import com.glxp.udidl.admin.service.udplat.UdplatLogService; import com.glxp.udidl.admin.service.udplat.UdplatLogService;
import com.glxp.udidl.admin.util.*; import com.glxp.udidl.admin.util.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -74,6 +75,7 @@ public class UdplatGoodsServiceImpl implements UdplatGoodsService {
logService.insert(udplatLog); logService.insert(udplatLog);
return ResultVOUtils.success(count); return ResultVOUtils.success(count);
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
UdplatLog udplatLog = new UdplatLog(); UdplatLog udplatLog = new UdplatLog();
udplatLog.setDownloadType("import"); udplatLog.setDownloadType("import");
udplatLog.setTbName("udplat_goods"); udplatLog.setTbName("udplat_goods");
@ -109,8 +111,7 @@ public class UdplatGoodsServiceImpl implements UdplatGoodsService {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(ExceptionUtils.getStackTrace(e));
log.error(JSON.toJSONString(e.getStackTrace()));
UdplatLog udplatLog = new UdplatLog(); UdplatLog udplatLog = new UdplatLog();
udplatLog.setDownloadType(downloadType); udplatLog.setDownloadType(downloadType);
udplatLog.setTbName("udplat_goods"); udplatLog.setTbName("udplat_goods");

@ -9,6 +9,7 @@ import com.glxp.udidl.admin.service.dataSync.UdplatSyncService;
import com.glxp.udidl.admin.service.udplat.UdplatLogService; import com.glxp.udidl.admin.service.udplat.UdplatLogService;
import com.glxp.udidl.admin.util.DateUtil; import com.glxp.udidl.admin.util.DateUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.SchedulingConfigurer; import org.springframework.scheduling.annotation.SchedulingConfigurer;
@ -49,6 +50,7 @@ public class DownloadTaskUdplat implements SchedulingConfigurer {
try { try {
udplatSyncService.downloadByDay("auto"); udplatSyncService.downloadByDay("auto");
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
UdplatLog udplatLog = new UdplatLog(); UdplatLog udplatLog = new UdplatLog();
udplatLog.setDownloadType("auto"); udplatLog.setDownloadType("auto");
udplatLog.setType("error"); udplatLog.setType("error");

@ -1,6 +1,7 @@
package com.glxp.udidl.admin.util; package com.glxp.udidl.admin.util;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -23,13 +24,14 @@ public class FileUtils {
buff.flush(); buff.flush();
buff.close(); buff.close();
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
} finally { } finally {
try { try {
buff.close(); buff.close();
; ;
outStr.close(); outStr.close();
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
} }
} }
@ -42,6 +44,7 @@ public class FileUtils {
bw.newLine(); bw.newLine();
bw.close(); bw.close();
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
return e.getMessage(); return e.getMessage();
} }
return "success"; return "success";
@ -68,7 +71,7 @@ public class FileUtils {
out.close(); out.close();
in.close(); in.close();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(ExceptionUtils.getStackTrace(e));
} }
} }
@ -77,6 +80,7 @@ public class FileUtils {
cnName = new String(cnName.getBytes("gb2312"), "ISO8859-1"); cnName = new String(cnName.getBytes("gb2312"), "ISO8859-1");
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
cnName = defaultName; cnName = defaultName;
} }
return cnName; return cnName;

@ -15,7 +15,7 @@ import java.util.Map;
public class HttpClient { public class HttpClient {
private static final Logger logger = LoggerFactory.getLogger(HttpClient.class); private static final Logger logger = LoggerFactory.getLogger(HttpClient.class);
public static String post(String url, Object object) { public static String post1111(String url, Object object) {
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
String json = JSONObject.toJSONString(object); String json = JSONObject.toJSONString(object);
MultiValueMap<String, Object> postParameters = new LinkedMultiValueMap<>(); MultiValueMap<String, Object> postParameters = new LinkedMultiValueMap<>();

@ -1,6 +1,7 @@
package com.glxp.udidl.admin.util; package com.glxp.udidl.admin.util;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress; import java.net.InetAddress;
@ -31,7 +32,7 @@ public class IpUtils {
inet = InetAddress.getLocalHost(); inet = InetAddress.getLocalHost();
ip = inet.getHostAddress(); ip = inet.getHostAddress();
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(ExceptionUtils.getStackTrace(e));
} }
} }
} }

@ -126,12 +126,12 @@ public class OkHttpCli {
* @return string * @return string
*/ */
public String doPostJson(String url, String json) { public String doPostJson(String url, String json) {
log.info("do post request and url[{}]", url); log.info(url + "\n" + json);
return exectePost(url, json, JSON); return exectePost(url, json, JSON);
} }
public String doPostJson(String url, String json, String... headers) { public String doPostJson(String url, String json, String... headers) {
log.info("do post request and url[{}]", url); log.info(url + "\n" + json);
return exectePost(url, json, JSON, headers); return exectePost(url, json, JSON, headers);
} }
@ -167,6 +167,7 @@ public class OkHttpCli {
Response response = null; Response response = null;
try { try {
response = okHttpClient.newCall(request).execute(); response = okHttpClient.newCall(request).execute();
log.info("response code is [{}]", response.toString());
if (response.isSuccessful()) { if (response.isSuccessful()) {
return response.body().string(); return response.body().string();
} }

@ -2,6 +2,7 @@ package com.glxp.udidl.admin.util;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -59,6 +60,7 @@ public class RedisUtil<T> {
} }
result = true; result = true;
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
log.error("RedisUtil setEx 发生异常参数列表key {} value {}", key, value, e); log.error("RedisUtil setEx 发生异常参数列表key {} value {}", key, value, e);
} }
return result; return result;
@ -97,6 +99,7 @@ public class RedisUtil<T> {
redisTemplate.opsForValue().set(key, value); redisTemplate.opsForValue().set(key, value);
result = true; result = true;
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
log.error("RedisUtil set 发生异常参数列表key {} value {}", key, value, e); log.error("RedisUtil set 发生异常参数列表key {} value {}", key, value, e);
} }
return result; return result;
@ -114,6 +117,7 @@ public class RedisUtil<T> {
try { try {
Thread.sleep(expireTime * 1000); Thread.sleep(expireTime * 1000);
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
log.error("获取锁异常", e); log.error("获取锁异常", e);
} }
} }
@ -142,6 +146,7 @@ public class RedisUtil<T> {
redisTemplate.delete(key); redisTemplate.delete(key);
result = true; result = true;
} catch (Exception e) { } catch (Exception e) {
log.error(ExceptionUtils.getStackTrace(e));
log.error("RedisUtil del 删除key值key {} ", key, e); log.error("RedisUtil del 删除key值key {} ", key, e);
} }
return result; return result;

@ -1,16 +1,21 @@
package com.glxp.udidl.admin.util; package com.glxp.udidl.admin.util;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.glxp.udidl.admin.entity.info.CompanyEntity; import com.glxp.udidl.admin.entity.info.CompanyEntity;
import com.glxp.udidl.admin.entity.udid.TokenEntity; import com.glxp.udidl.admin.entity.udid.TokenEntity;
import com.glxp.udidl.admin.req.udid.TokenRequest; import com.glxp.udidl.admin.req.udid.TokenRequest;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/** /**
* UDI * UDI
*/ */
@Component @Component
public class UdiHttpClient { public class UdiHttpClient {
@Resource
OkHttpCli okHttpCli;
/** /**
* UDItoken * UDItoken
@ -22,8 +27,9 @@ public class UdiHttpClient {
TokenRequest tokenRequest = new TokenRequest(); TokenRequest tokenRequest = new TokenRequest();
tokenRequest.setAppId(companyEntity.getAppId()); tokenRequest.setAppId(companyEntity.getAppId());
tokenRequest.setAppSecret(companyEntity.getAppSecret()); tokenRequest.setAppSecret(companyEntity.getAppSecret());
tokenRequest.setTyshxydm(companyEntity.getTyshxydm()); tokenRequest.setTYSHXYDM(companyEntity.getTyshxydm());
String response = HttpClient.post("token/get", tokenRequest); String json = JSONUtil.toJsonStr(tokenRequest);
String response = okHttpCli.doPostJson(UdidConfig.apiUrl+"token/get", json);
TokenEntity tokenEntity = (TokenEntity) JSONObject.parseObject(response, TokenEntity.class); TokenEntity tokenEntity = (TokenEntity) JSONObject.parseObject(response, TokenEntity.class);
String token = tokenEntity.getAccessToken(); String token = tokenEntity.getAccessToken();
return token; return token;

@ -4,8 +4,8 @@ public class UdidConfig {
public static final String betaUrl = "https://udid.nmpa.gov.cn/api/beta/v1/"; public static final String betaUrl = "https://udid.nmpa.gov.cn/api/beta/v1/";
public static final String apiUrl = "https://udid.nmpa.gov.cn/api/v2/";//"https://udid.nmpa.gov.cn/api/v1/"; // public static final String apiUrl = "https://udid.nmpa.gov.cn/api/v2/";//"https://udid.nmpa.gov.cn/api/v1/";
public static final String apiUrl = "https://udid.nmpa.gov.cn/api/v3/";
public static final String AppId = "371ced236e844272ad14bbe9051fd25a"; public static final String AppId = "371ced236e844272ad14bbe9051fd25a";
public static final String AppSecret = "592e7a00a7304f52a86a82e7fac9d2c0"; public static final String AppSecret = "592e7a00a7304f52a86a82e7fac9d2c0";

Loading…
Cancel
Save