ScheduleXchJgxz.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. package cn.com.taiji.dataService.task;
  2. import cn.com.digitalhainan.apione.sdk.ContentBody;
  3. import cn.com.digitalhainan.apione.sdk.HttpCaller;
  4. import cn.com.digitalhainan.apione.sdk.HttpParameters;
  5. import cn.com.digitalhainan.apione.sdk.HttpReturn;
  6. import cn.com.taiji.dataService.utils.ApioneUtils;
  7. import cn.com.taiji.dataService.utils.ResultHandle;
  8. import cn.hutool.core.date.DateBetween;
  9. import cn.hutool.core.date.DateUtil;
  10. import com.alibaba.fastjson.JSON;
  11. import com.alibaba.fastjson.JSONArray;
  12. import lombok.extern.slf4j.Slf4j;
  13. import org.springframework.scheduling.annotation.Scheduled;
  14. import org.springframework.stereotype.Component;
  15. import java.io.*;
  16. import java.util.HashMap;
  17. import java.util.Map;
  18. /**
  19. * 任务执行类 协查函 结果下载
  20. * @author chen mh
  21. * @date 2023/8/14 10:07
  22. */
  23. @Component
  24. @Slf4j
  25. public class ScheduleXchJgxz {
  26. String region = "INTRA";
  27. String requestUrl = "https://api-one.digitalhainan.com.cn/apione";
  28. String mediaType="application/json";
  29. Map<String, String> queryParamsMap=new HashMap<>();
  30. /**
  31. * 协查函 定时执行接口
  32. */
  33. @Scheduled(cron = "0 0 1 * * ?")
  34. //@Scheduled(initialDelay = 5000,fixedDelay = 60*60*1000)
  35. public void Xch(){
  36. log.info("执行协查函及结果下载任务--{}", DateUtil.date());
  37. //换成自己的ak、sk
  38. String ak = "AK3aa44d2fc93e44bfb1089a9693a9091f";
  39. String sk = "SK608e9dd1360649658868199bda4611e8";
  40. String api = "DZZW_DSB_JDJK_QQCS_DSSJ";
  41. String contentJson = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"http://server.unimas.com/\"> <soapenv:Header/> <soapenv:Body> <ser:query> <in>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt; &lt;search&gt; &lt;appname&gt;query193&lt;/appname&gt; &lt;limited&gt;100&lt;/limited&gt; &lt;conditions&gt; &lt;s1f1c1&gt;" +
  42. DateUtil.format(DateUtil.yesterday(), "YYYYMMdd")+"&lt;/s1f1c1&gt; &lt;/conditions&gt; &lt;/search&gt;</in> </ser:query> </soapenv:Body>";
  43. ContentBody contentBody = new ContentBody(contentJson);
  44. //拼装业务信息
  45. HttpParameters parameters = HttpParameters.builder()
  46. .api(api)
  47. .region(region)
  48. // 如果有query参数需要设置
  49. //.queryParamsMap(query)
  50. // 如果有path参数需要设置
  51. //.path(path)
  52. .accessKey(ak)
  53. .secretKey(sk)
  54. .contentBody(contentBody)
  55. .requestUrl(requestUrl)
  56. .build();
  57. // 请求服务接口,获取response
  58. HttpReturn call = HttpCaller.getInstance().call(parameters);
  59. String response = call.getResponse();
  60. String date = DateUtil.format(DateUtil.yesterday(), "YYYYMMdd");
  61. JSONArray handle = ResultHandle.handle(response);
  62. if(handle == null){
  63. log.info(date+"日没有查询数据-协查函");
  64. return;
  65. }
  66. //疑似涉私寄件快递信息
  67. String ak_jj_xch="AKeabc1d2788944fc9a408ab5be631d0e8";
  68. String sk_jj_xch="SK42b1168ee774477e952ca52c795cc149";
  69. String apiName="gjyzj_ysssjjkdxx_xch";
  70. //疑似涉私收件快递信息
  71. String ak_sj_xch="AKc7ab48f6470444fa83f55a56c407e2be";
  72. String sk_sj_xch="SK60d3df8fe75f4ccf938da7fc22179eec";
  73. String apiName1="gjyzj_yssssjkdxx_xch";
  74. //异常寄件地点快递信息
  75. String ak_ycjj_xch="AKd66646feecea4c93adc372e3e8a3ce8a";
  76. String sk_ycjj_xch="SK5fde11c5510b43f6b5b3a5964349a1d9";
  77. String apiName3="gjyzj_ycjjddkdxx_xch";
  78. String ak_ycjjr_xch="AK445608f59ebb446ca51d3d4660c5f72f";
  79. String sk_ycjjr_xch="SK0b0d76a38f5349818d480f0310ba9346";
  80. String apiName4="gjyzj_ycjjrxwfxxx_xch";
  81. String ak_ycsj_xch="AK7b13190e791741c0a9bf518ee273a638";
  82. String sk_ycsj_xch="SK66e3e572fd48483c862ac00345d3662c";
  83. String apiName5="gjyzj_ycsjddkdxx_xch";
  84. String ak_ycsjr_xch="AK126a4113f3424a6a9b7e8b548da39cb1";
  85. String sk_ycsjr_xch="SK1da6383d3cb746818f70bd469496f576";
  86. String apiName6="gjyzj_ycsjrxwfxxx_xch";
  87. String mediaType="application/json";
  88. Map<String, String> headerParamsMap=new HashMap<>();
  89. headerParamsMap.put("Authorization","Bearer 7bee4ad2-1d1f-36e0-b9ab-625a7e495de2");
  90. Map<String, String> queryParamsMap=new HashMap<>();
  91. handle.stream().forEach(array-> {
  92. com.alibaba.fastjson.JSONObject object = JSON.parseObject(array.toString());
  93. com.alibaba.fastjson.JSONObject param = new com.alibaba.fastjson.JSONObject();
  94. param.put("operateOrg",object.getString("JDJK_SEND.OPERATEORG"));
  95. param.put("operator",object.getString("JDJK_SEND.OPERATOR"));
  96. param.put("photoName",object.getString("JDJK_SEND.PHOTONAME"));
  97. param.put("photo",object.getString("JDJK_SEND.PHOTO"));
  98. String call1 = ApioneUtils.call(param.toJSONString(),ak_jj_xch, sk_jj_xch, apiName, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  99. String call2 = ApioneUtils.call(param.toJSONString(),ak_sj_xch, sk_sj_xch, apiName1, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  100. String call3 = ApioneUtils.call(param.toJSONString(),ak_ycjj_xch, sk_ycjj_xch, apiName3, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  101. String call4 = ApioneUtils.call(param.toJSONString(),ak_ycjjr_xch, sk_ycjjr_xch, apiName4, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  102. String call5 = ApioneUtils.call(param.toJSONString(),ak_ycsj_xch, sk_ycsj_xch, apiName5, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  103. String call6 = ApioneUtils.call(param.toJSONString(),ak_ycsjr_xch, sk_ycsjr_xch, apiName6, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  104. });
  105. }
  106. /**
  107. * 下载结果接口定时运行
  108. */
  109. @Scheduled(cron = "0 0 2 * * ?")
  110. //@Scheduled(initialDelay = 5000,fixedDelay = 60*60*1000)
  111. public void Jgxz(){
  112. log.info("执行结果下载任务--{}", DateUtil.date());
  113. downloadYsssjj();
  114. downloadYssssj();
  115. downloadYcjjdd();
  116. downloadYcjjrxw();
  117. downloadYcsjdd();
  118. downloadYcsjrxw();
  119. }
  120. public void downloadYsssjj(){
  121. String ak_jj_jgxz="AKe8fbb21605e04a3f88d78e1110f63c28";
  122. String sk_jj_jgxz="SKd7fd481703b64387bab49ff2368d3d5d";
  123. String apiName="gjyzj_ysssjjkdxx_jgxz";
  124. Map<String, String> headerParamsMap = getHeaderParamsMap();
  125. com.alibaba.fastjson.JSONObject param = getParam();
  126. InputStream call = ApioneUtils.callByte(param.toJSONString(),ak_jj_jgxz, sk_jj_jgxz, apiName, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  127. String fileName = "疑似涉私寄件快递信息"+DateUtil.format(DateUtil.yesterday(), "YYYYMMdd")+".xlsx" ;
  128. writeFile(fileName,call);
  129. }
  130. public void downloadYssssj(){
  131. String ak_sj_jgxz="AK968863e9f3094e9a91fab5b965910fa2";
  132. String sk_sj_jgxz="SK5548f604797e4651a04941cfbf1704fa";
  133. String apiName="gjyzj_yssssjkdxx_jgxz";
  134. Map<String, String> headerParamsMap = getHeaderParamsMap();
  135. com.alibaba.fastjson.JSONObject param = getParam();
  136. InputStream call = ApioneUtils.callByte(param.toJSONString(),ak_sj_jgxz, sk_sj_jgxz, apiName, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  137. String fileName = "疑似涉私收件快递信息"+DateUtil.format(DateUtil.yesterday(), "YYYYMMdd")+".xlsx" ;
  138. writeFile(fileName,call);
  139. }
  140. public void downloadYcjjdd(){
  141. //异常寄件地址
  142. String ak_ycjj_jgxz="AKc577515132804d919c54c56026794cfe";
  143. String sk_ycjj_jgxz="SKed3d3d3240f142bf87bf285d733d7a12";
  144. String apiName="gjyzj_ycjjddkdxx_jgxz";
  145. Map<String, String> headerParamsMap = getHeaderParamsMap();
  146. com.alibaba.fastjson.JSONObject param = getParam();
  147. InputStream call = ApioneUtils.callByte(param.toJSONString(),ak_ycjj_jgxz, sk_ycjj_jgxz, apiName, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  148. String fileName = "异常寄件地点分析信息"+DateUtil.format(DateUtil.yesterday(), "YYYYMMdd")+".xlsx" ;
  149. writeFile(fileName,call);
  150. }
  151. public void downloadYcjjrxw(){
  152. //异常寄件人行为分析信息
  153. String ak_ycjjr_jgxz="AK88de3e809c1842488a142601f14b707a";
  154. String sk_ycjjr_jgxz="SKb10fdf3ed87f4f8c9f690066c3685643";
  155. String apiName="gjyzj_ycjjrxwfxxx_jgxz";
  156. Map<String, String> headerParamsMap = getHeaderParamsMap();
  157. com.alibaba.fastjson.JSONObject param = getParam();
  158. InputStream call = ApioneUtils.callByte(param.toJSONString(),ak_ycjjr_jgxz, sk_ycjjr_jgxz, apiName, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  159. String fileName = "异常寄件人行为分析信息"+DateUtil.format(DateUtil.yesterday(), "YYYYMMdd")+".xlsx" ;
  160. writeFile(fileName,call);
  161. }
  162. public void downloadYcsjdd(){
  163. //异常收件人行为分析信息
  164. String ak_ycsjr_jgxz="AKb4466349a8974dc9ae6f0bd68a99dc1b";
  165. String sk_ycsjr_jgxz="SK383393c73d0b4ad89b55db664e7d8449";
  166. String apiName="gjyzj_ycsjrxwfxxx_jgxz";
  167. Map<String, String> headerParamsMap = getHeaderParamsMap();
  168. com.alibaba.fastjson.JSONObject param = getParam();
  169. InputStream call = ApioneUtils.callByte(param.toJSONString(),ak_ycsjr_jgxz, sk_ycsjr_jgxz, apiName, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  170. String fileName = "异常收件地点分析信息"+DateUtil.format(DateUtil.yesterday(), "YYYYMMdd")+".xlsx" ;
  171. writeFile(fileName,call);
  172. }
  173. public void downloadYcsjrxw(){
  174. //异常寄件人行为分析信息
  175. String ak_ycjjr_jgxz="AK88de3e809c1842488a142601f14b707a";
  176. String sk_ycjjr_jgxz="SKb10fdf3ed87f4f8c9f690066c3685643";
  177. String apiName="gjyzj_ycjjrxwfxxx_jgxz";
  178. Map<String, String> headerParamsMap = getHeaderParamsMap();
  179. com.alibaba.fastjson.JSONObject param = getParam();
  180. InputStream call = ApioneUtils.callByte(param.toJSONString(),ak_ycjjr_jgxz, sk_ycjjr_jgxz, apiName, region, requestUrl, mediaType, "", headerParamsMap, queryParamsMap);
  181. String fileName = "异常收件人行为分析信息"+DateUtil.format(DateUtil.yesterday(), "YYYYMMdd")+".xlsx" ;
  182. writeFile(fileName,call);
  183. }
  184. public static void writeFile(String fileName,InputStream inputStream){
  185. String path = "file"+"/"+fileName;
  186. log.info("生成文件--{}",path);
  187. File outputFile = new File(path);
  188. FileOutputStream outputStream = null;
  189. try {
  190. outputStream = new FileOutputStream(outputFile);
  191. byte[] buffer = new byte[1024];
  192. int bytesRead;
  193. while ((bytesRead = inputStream.read(buffer)) != -1) {
  194. outputStream.write(buffer, 0, bytesRead);
  195. }
  196. } catch (FileNotFoundException e) {
  197. throw new RuntimeException(e);
  198. } catch (IOException e) {
  199. throw new RuntimeException(e);
  200. }finally {
  201. try {
  202. outputStream.close();
  203. inputStream.close();
  204. } catch (IOException e) {
  205. throw new RuntimeException(e);
  206. }
  207. }
  208. }
  209. public Map<String, String> getHeaderParamsMap(){
  210. Map<String, String> headerParamsMap=new HashMap<>();
  211. headerParamsMap.put("Authorization","Bearer 7bee4ad2-1d1f-36e0-b9ab-625a7e495de2");
  212. return headerParamsMap;
  213. }
  214. public com.alibaba.fastjson.JSONObject getParam(){
  215. com.alibaba.fastjson.JSONObject param = new com.alibaba.fastjson.JSONObject();
  216. param.put("operateOrg","海南省打私办");
  217. param.put("operator","王鹏");
  218. return param;
  219. }
  220. }