TmsTruckQualityService.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.steerinfo.dil.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.steerinfo.dil.mapper.TmstruckQualityResultMapper;
  5. import com.steerinfo.dil.mapper.TmstruckWeightResultMapper;
  6. import com.steerinfo.dil.model.TmstruckQualityResult;
  7. import com.steerinfo.dil.service.ITmsTruckQualityResultService;
  8. import org.apache.http.HttpEntity;
  9. import org.apache.http.HttpResponse;
  10. import org.apache.http.HttpStatus;
  11. import org.apache.http.client.methods.HttpGet;
  12. import org.apache.http.impl.client.CloseableHttpClient;
  13. import org.apache.http.impl.client.HttpClientBuilder;
  14. import org.apache.http.util.EntityUtils;
  15. import org.dom4j.DocumentException;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.scheduling.annotation.Scheduled;
  18. import org.springframework.stereotype.Service;
  19. import com.steerinfo.dil.util.XmlToJsonUtil;
  20. import java.io.IOException;
  21. import java.math.BigDecimal;
  22. import java.util.Date;
  23. import java.util.List;
  24. import java.util.Map;
  25. /**
  26. * @author luobang
  27. * @create 2021-10-27 14:28
  28. */
  29. @Service
  30. public class TmsTruckQualityService implements ITmsTruckQualityResultService {
  31. @Autowired
  32. TmstruckQualityResultMapper tmstruckQualityResultMapper;
  33. @Autowired
  34. TmstruckWeightResultMapper tmstruckWeightResultMapper;
  35. //定时访问质检系统,获取质检实绩
  36. @Scheduled(cron = "* 1 * * * ?")
  37. @Override
  38. public int insertQualityResult() throws IOException, DocumentException {
  39. //先查出所有没有质检实绩的磅单号
  40. List<Map<String,Object>>mapList=tmstruckWeightResultMapper.selectWzInputId();
  41. System.out.println(mapList);
  42. System.out.println(mapList);
  43. if (mapList.size() != 0){
  44. for (Map<String,Object> map:mapList
  45. ) {
  46. String WzInputId=(String) map.get("WzInputId");
  47. BigDecimal resultTotalId= (BigDecimal) map.get("resultTotalId");
  48. // 1. 创建 HttpClient 的实例
  49. CloseableHttpClient httpClient = HttpClientBuilder.create().build();
  50. // 2. 创建某种连接方法的实例
  51. HttpGet httpGet = new HttpGet("http://172.16.33.106:40003/DG_Interface.asmx/Get_Quality_Info?WzInputId="+WzInputId);
  52. // 3. 调用第一步中创建好的实例的execute方法来执行第二步中创建好的链接类实例
  53. HttpResponse httpResponse = httpClient.execute(httpGet);
  54. // 4. 读response获取HttpEntity
  55. if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
  56. HttpEntity entity = httpResponse.getEntity();
  57. System.out.println(entity);
  58. // 5. 对得到后的内容进行处理
  59. String result = EntityUtils.toString(entity, "utf-8");
  60. System.out.println(result);
  61. try {
  62. JSONObject object = XmlToJsonUtil.xmlToJson(result);
  63. System.out.println("-----object------");
  64. System.out.println(object);
  65. Map<String, Object>map1 = (Map<String, Object>) object.get("JsonResult");
  66. System.out.println(map1);
  67. List mapList2= JSON.parseArray((String) map1.get("jsonResult"));
  68. if(mapList2.size() == 0){
  69. return 0;
  70. }
  71. List<Map<String,Object>>mapList9=mapList2;
  72. for (Map<String,Object> map3:mapList9
  73. ) {
  74. //质检说明
  75. String DeductionDescription=(String)map3.get("DEDUCT_SEASON");
  76. //铁路专用线
  77. String samplePlaceName=(String) map3.get("SAMPLE_PLACE_NAME");
  78. //查询卸货点ID
  79. BigDecimal SamplePlaceId=tmstruckQualityResultMapper.selectSamplePlaceId(samplePlaceName);
  80. //扣水扣杂量
  81. BigDecimal Deduction= new BigDecimal(Integer.parseInt(String.valueOf(map3.get("DEDUCT_NUMBER"))));
  82. //抽样时间
  83. Date sampleDate= new Date((String)(map3.get("SAMPLE_DATE")));
  84. //根据磅单号修改相应的质检实绩
  85. TmstruckQualityResult tmstruckQualityResult = new TmstruckQualityResult();
  86. //主键ID
  87. tmstruckQualityResult.setId(tmstruckQualityResultMapper.Count());
  88. tmstruckQualityResult.setInsertTime(new Date());
  89. tmstruckQualityResult.setInsertUsername("质检系统-物流系统");
  90. tmstruckQualityResult.setInsertUpdateRemark("原料质检实绩");
  91. //总实绩ID
  92. tmstruckQualityResult.setTotalResultId(resultTotalId);
  93. //卸货点
  94. tmstruckQualityResult.setResultSamplingPointId(SamplePlaceId);
  95. //输入抽样时间
  96. tmstruckQualityResult.setResultSamplingTime(sampleDate);
  97. //输入扣水扣杂量
  98. tmstruckQualityResult.setResultDeduction(Deduction);
  99. tmstruckQualityResult.setResultDeductionDescription(DeductionDescription);
  100. tmstruckQualityResultMapper.insertSelective(tmstruckQualityResult);
  101. //更新计重实绩表中的是否质检完成字段
  102. tmstruckWeightResultMapper.updateWzInputId(WzInputId);
  103. }
  104. } catch (DocumentException e) {
  105. e.printStackTrace();
  106. }
  107. EntityUtils.consume(entity);
  108. } else {
  109. System.err.println(httpResponse.getStatusLine());
  110. }
  111. // 6. 释放连接。无论执行方法是否成功,都必须释放连接
  112. httpClient.close();
  113. }
  114. }
  115. return 1;
  116. }
  117. }