123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- package com.steerinfo.dil.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.steerinfo.dil.mapper.TmstruckQualityResultMapper;
- import com.steerinfo.dil.mapper.TmstruckWeightResultMapper;
- import com.steerinfo.dil.model.TmstruckQualityResult;
- import com.steerinfo.dil.service.ITmsTruckQualityResultService;
- import com.steerinfo.dil.util.DataChange;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.HttpStatus;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.impl.client.CloseableHttpClient;
- import org.apache.http.impl.client.HttpClientBuilder;
- import org.apache.http.util.EntityUtils;
- import org.dom4j.DocumentException;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Service;
- import com.steerinfo.dil.util.XmlToJsonUtil;
- import java.io.IOException;
- import java.math.BigDecimal;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- /**
- * @author luobang
- * @create 2021-10-27 14:28
- */
- @Service
- public class TmsTruckQualityService implements ITmsTruckQualityResultService {
- @Autowired
- TmstruckQualityResultMapper tmstruckQualityResultMapper;
- @Autowired
- TmstruckWeightResultMapper tmstruckWeightResultMapper;
- //定时访问质检系统,获取质检实绩
- @Scheduled(cron = "30 10 10 * * ?")
- public int insertQualityResult() throws IOException, DocumentException {
- //先查出所有需要质检的但是没有质检的磅单号
- List<Map<String,Object>> mapList = tmstruckWeightResultMapper.selectWzInputId();
- if (mapList.size() != 0){
- for (Map<String,Object> map:mapList
- ) {
- BigDecimal resultTotalId= (BigDecimal) map.get("resultTotalId");
- String capacityNumber = (String) map.get("capacityNumber");
- if(capacityNumber==null || resultTotalId==null){
- continue;
- }
- String grossWeightTime = (String) map.get("grossWeightTime");
- String WzInputId = grossWeightTime + capacityNumber.substring(2);
- // 1. 创建 HttpClient 的实例
- CloseableHttpClient httpClient = HttpClientBuilder.create().build();
- // 2. 创建某种连接方法的实例
- HttpGet httpGet = new HttpGet("http://172.16.33.106:40003/DG_Interface.asmx/Get_Quality_Info?WzInputId="+WzInputId);
- // 3. 调用第一步中创建好的实例的execute方法来执行第二步中创建好的链接类实例
- HttpResponse httpResponse = httpClient.execute(httpGet);
- // 4. 读response获取HttpEntity
- if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
- HttpEntity entity = httpResponse.getEntity();
- //System.out.println(entity);
- // 5. 对得到后的内容进行处理
- String result = EntityUtils.toString(entity, "utf-8");
- //System.out.println(result);
- try {
- JSONObject object = XmlToJsonUtil.xmlToJson(result);
- Map<String, Object>map1 = (Map<String, Object>) object.get("JsonResult");
- List mapList2= JSON.parseArray((String) map1.get("jsonResult"));
- if(mapList2 == null || mapList2.size() == 0){
- continue;
- }
- List<Map<String,Object>> mapList9= mapList2;
- if(mapList9.get(0) != null){
- //判断是否生成报告单,如果生成则生成质检实绩,否则退出
- Map<String,Object> map3 = mapList9.get(0);
- Object value = map3.get("REPORT_ID");
- if("".equals(value)){
- continue;
- }
- //质检说明
- String DeductionDescription=(String)map3.get("DEDUCT_SEASON");
- //获取卸货点
- String samplePlaceName=(String) map3.get("SAMPLE_PLACE_NAME");
- //查询卸货点ID
- BigDecimal SamplePlaceId=tmstruckQualityResultMapper.selectSamplePlaceId(samplePlaceName);
- //扣水扣杂量
- BigDecimal Deduction= DataChange.dataToBigDecimal(map3.get("DEDUCT_NUMBER"));
- //抽样时间
- Date sampleDate= new Date((String)(map3.get("SAMPLE_DATE")));
- //获取检验结果
- String element_value =(String) map3.get("ELEMENT_VALUE");
- //根据磅单号新增相应的质检实绩
- TmstruckQualityResult tmstruckQualityResult = new TmstruckQualityResult();
- //主键ID
- tmstruckQualityResult.setId(tmstruckQualityResultMapper.qualityId());
- tmstruckQualityResult.setInsertTime(new Date());
- tmstruckQualityResult.setInsertUsername("质检系统-物流系统");
- tmstruckQualityResult.setInsertUpdateRemark("原料质检实绩");
- //总实绩ID
- tmstruckQualityResult.setTotalResultId(resultTotalId);
- //卸货点
- tmstruckQualityResult.setResultSamplingPointId(SamplePlaceId);
- //输入抽样时间
- tmstruckQualityResult.setResultSamplingTime(sampleDate);
- //输入扣水扣杂量
- tmstruckQualityResult.setResultDeduction(Deduction);
- tmstruckQualityResult.setResultDeductionDescription(DeductionDescription);
- tmstruckQualityResult.setResultIssampling("已抽样");
- //水分吨位
- tmstruckQualityResult.setElementValue(element_value);
- tmstruckQualityResultMapper.insertSelective(tmstruckQualityResult);
- //更新计重实绩表中的是否质检完成字段
- //tmstruckWeightResultMapper.updateWzInputId(resultTotalId);
- }
- } catch (DocumentException e) {
- e.printStackTrace();
- }
- EntityUtils.consume(entity);
- } else {
- System.err.println(httpResponse.getStatusLine());
- }
- // 6. 释放连接。无论执行方法是否成功,都必须释放连接
- httpClient.close();
- }
- }
- return 1;
- }
- //@Override
- //public int deleteQualityResult() {
- // //查询有重复的质检实绩
- // List<Map<String,Object>> mapList = tmstruckQualityResultMapper.selectRepeatResult();
- // for(Map<String,Object> map : mapList) {
- // tmstruckQualityResultMapper.deleteQualityResult()
- // }
- //}
- }
|