package com.steerinfo.dil.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.steerinfo.dil.feign.JoinFeign; import com.steerinfo.dil.mapper.UniversalMapper; import com.steerinfo.dil.service.UniversalService; import com.steerinfo.dil.util.ESUtil; import com.steerinfo.dil.util.HTTPRequestUtils; import com.steerinfo.framework.controller.RESTfulResult; import io.swagger.annotations.ApiModelProperty; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; import java.sql.Blob; import java.sql.SQLException; import java.util.*; /** * @ author :TXF * @ time :2021/10/19 18:05 */ @Service @EnableScheduling @EnableAsync public class UniversalServiceImpl implements UniversalService { @Resource private UniversalMapper universalMapper; @Autowired private JoinFeign joinFeign; @Autowired private ESUtil esUtil; /** * 打印提货单 * @param orderNumber 运输订单号 * @return */ @Override public Map printTiHuoDan(String orderNumber) { //查询订单信息 Map tiHuoDanMap = universalMapper.getTiHuoDan(orderNumber); //查询该订单下的所有装车信息 List> oomMes = universalMapper.getOOMMes(orderNumber); tiHuoDanMap.put("loadMes", oomMes); return tiHuoDanMap; } /** * 查询路段顺序及当前路段顺序号 * @param map * @return */ @Override public Map getNowLineMes(Map map) { return null; } // @Override // public List getWarrantyAndPrint(String orderNumber) { // List> warrantyCode = universalMapper.getWarranty(orderNumber); // List list = new ArrayList<>(); // String content = null; // for(Map code:warrantyCode){ // Blob blob = (Blob) code.get("warrantyCode"); // try { // content = new String(blob.getBytes((long)1, (int)blob.length())); // String string = content.substring(0,content.length()-2); // System.out.println(string); // list.add(string); // } catch (SQLException throwables) { // throwables.printStackTrace(); // } // } // // return list; // } @Override public List getWarranty(String orderNumber) { List list = new ArrayList<>(); //回传金蝶 //根据orderNumber查询 Map map = getWarrantyToES(orderNumber); String string = null; try{ string = joinFeign.sendWarranty(map); Map waMap = JSON.parseObject(string); //成功 if(waMap.get("kdStatus").equals("1")){ List> reportList = (List>) waMap.get("qcReportList"); Map map1 = reportList.get(0); Iterator> it = map1.entrySet().iterator(); Map.Entry entry; while(it.hasNext()){ entry = it.next(); String value = (String) entry.getValue(); list.add(value); } } //失败 else{ list.add("-1"); } }catch (NullPointerException e){ e.printStackTrace(); list.add("-2"); } return list; } @Override public List getTest(Map map) { List list = new ArrayList<>(); //成功 if(map.get("kdStatus").equals("1")){ List> reportList = (List>) map.get("qcReportList"); Map map1 = reportList.get(0); Iterator> it = map1.entrySet().iterator(); Map.Entry entry; while(it.hasNext()){ entry = it.next(); String value = (String) entry.getValue(); list.add(value); } }//失败 else{ list.add("0"); } return list; } //出库与金蝶打通接口(获得质保书) public Map getWarrantyToES(String orderNumber) { Map input = new HashMap<>(); Map head = universalMapper.selectNum(orderNumber); input.put("head", head); List> mapList = universalMapper.selectOutbound(orderNumber); input.put("entries",mapList); Map totalMap = esUtil.getTotalMap(); //组装报文 totalMap.put("input",input); return totalMap; } /** * sha1加密字符串 * @param text * @return */ public String sha1DigestUtils(String text){ return DigestUtils.sha1Hex(text); } /** * 根据收货客户查询承运商 */ public Map getCarrierByConsignee(Map mapValue){ String isSelfMention = (String) mapValue.get("isSelfMention"); String consigneeName = (String) mapValue.get("consigneeName"); Map map = new HashMap<>(); if (isSelfMention.equals("是")) { map = universalMapper.getCarrierByConsignee(consigneeName); } else { map.put("carrierId",null); map.put("carrierName",null); } return map; } /** * * @param mapValue * @return */ public Map isInCapacityCarrier(Map mapValue) { BigDecimal capacityCarrierId = universalMapper.isInCapacityCarrier(mapValue); BigDecimal capacityId = universalMapper.isInCapacity(mapValue); Map map = new HashMap<>(); map.put("capacityCarrierId",capacityCarrierId); map.put("capacityId",capacityId); return map; } public List> getPortId() { return universalMapper.getPortId(); } //获取订单号以及订单号下的物资 public Map getOrderNumber(String num) { return universalMapper.getOrderNumber(num); } public List> getCapacityNumber(String num) { return universalMapper.getCapacityNumber(num); } public List> getMaterialIdByOrderId(Integer orderId) { return universalMapper.getMaterialIdByOrderId(orderId); } public int recordingWeightResult(List> mapList) throws IOException { String URL = "http://172.16.33.166:8066/api/v1/join/tmstruckweightresult/receiveTmsTruckWeightResult"; String jsonData = null; String jsonString= JSON.toJSONString(mapList); jsonData = HTTPRequestUtils.send(URL, jsonString,"utf-8"); if(!"null".equals(jsonData)){ System.out.println(jsonData); HashMap hashMap = JSON.parseObject(jsonData, HashMap.class); String code = (String) hashMap.get("code"); System.out.println(hashMap.get("code")); if("SUCCESS".equals(code)){ return 1; }else{ return 0; } }else{ System.out.println("补录委托失败:" + jsonData); return 0; } } /** * 关闭过期运输订单 * @return */ //@Scheduled(cron = "0 0,5 8 * * ?") public void closePassedOrder() { List> passedOrderList = universalMapper.findPassedOrder(); System.out.println("关闭的未出厂过期订单如下:<" + passedOrderList + ">"); int result=0; //int result = universalMapper.closePassedOrder(); try { if (passedOrderList.isEmpty()){ }else { for (Map map : passedOrderList) { BigDecimal orderId = (BigDecimal) map.get("orderId"); //分两种情况关单 //净重为0状态设为2,不为零设为7 BigDecimal bigDecimal = universalMapper.sumNetWeight(orderId); if (bigDecimal.compareTo(BigDecimal.ZERO)!=0){ result+=universalMapper.updateStatusTwo(orderId); }else { result+=universalMapper.updateStatusSeven(orderId); } /* BigDecimal capacityIdS=universalMapper.queueSingle(orderId);*/ /*if (capacityIdS !=null){ //删除单拼 universalMapper.delectQueueS(capacityIdS); }*/ /*//查询多拼的数据 BigDecimal capacityIdM =universalMapper.queueMore(orderId); if (capacityIdM !=null){ //删除多拼 universalMapper.delectQueueM(capacityIdM); } //查询单拼的数据 BigDecimal capacityIdS=universalMapper.queueSingle(orderId); if (capacityIdS !=null){ //删除单拼 universalMapper.delectQueueS(capacityIdS); }*/ } } }catch (Exception e){ } System.out.println("订单关闭数为:" + result); //return 1; } }