package com.steerinfo.dil.service.impl; import com.alibaba.fastjson.JSON; import com.steerinfo.dil.mapper.AmsNotUploadedEasMapper; import com.steerinfo.dil.wsdl.LoginUtil; import com.steerinfo.dil.wsdl.ServiceInfo; import com.steerinfo.dil.wsdl.WSContext; import com.steerinfo.dil.wsdl.WSUpDaxingMeteringSystemFacadeSrvProxyServiceLocator; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.List; import java.util.Map; /** * @ author :TXF * @ time :2022/2/16 17:28 */ @Service public class AmsNotUploadedEasServiceImpl { @Autowired AmsNotUploadedEasMapper amsNotUploadedEasMapper; /** * 模拟采购报文 * @Author TXF * @Date 2022/2/15 19:11 * @param * @return **/ public void makeXmlFile(){ List> asd = amsNotUploadedEasMapper.asd(); int i = 1; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (Map map : asd) { if(map.get("resultTareWeightTime") != null) map.put("resultTareWeightTime",sdf.format(map.get("resultTareWeightTime"))); if(map.get("resultCrossWeightTime") != null) map.put("resultCrossWeightTime",sdf.format(map.get("resultCrossWeightTime"))); // map.put("No", "PO2021013615"); // map.put("easEntryId", "YANhW8BARA+c4oqKXy0/YiYEHMU="); String xml = asXmlData(map); sendMesToKD(xml); System.out.println(i++); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } // System.out.println(xml); } } /** * 创建计量数据 金蝶xml格式字符串 * @Author TXF * @Date 2022/2/10 17:32 * @param map * @return **/ public String asXmlData(Map map){ // 创建一个Document实例 Document doc = DocumentHelper.createDocument(); // 添加根节点 Element requests = doc.addElement("requests"); //添加第子节点 Element request = requests.addElement("request"); request.addElement("TypeID").addText("PUR"); //采购订单类型 request.addElement("FNumber").addText((String) map.get("resultPoundNo")); //磅单号 request.addElement("FBizDate").addText((String) map.get("resultTareWeightTime")); // 净重时间 request.addElement("Carnumber").addText((String) map.get("capacityNumber")); //车牌号 request.addElement("FTransportOrgID").addText(""); //运输单位 request.addElement("FGrossScaleID").addText((String) map.get("resultCrossCalculateNumber")); //毛重汽车衡 request.addElement("FTareScaleID").addText((String) map.get("resultTareCalculateNumber")); //皮重汽车衡 request.addElement("FGrossWeight").addText(String.valueOf(map.get("resultCrossWeight"))); //毛重 request.addElement("FTareWeight").addText(String.valueOf(map.get("resultTareWeight"))); //皮重 request.addElement("FGrossPoundTime").addText((String) map.get("resultCrossWeightTime")); //毛重时间 request.addElement("FTarePoundTime").addText((String) map.get("resultTareWeightTime")); //皮重时间 request.addElement("FSourceBillID").addText((String) map.get("No")); //采购订单号 request.addElement("FSourceBillEntryID").addText((String) map.get("easEntryId")); //分录ID request.addElement("FNetWeight").addText(String.valueOf( map.get("resultNetWeight"))); //净重 request.addElement("FIncidental").addText("0"); //扣杂 request.addElement("FLastNetWeight").addText(String.valueOf(map.get("resultNetWeight"))); //最后净重 request.addElement("FDescription").addText(""); //备注 return doc.asXML(); } /** * * 推送数据给金蝶接口 * @Author TXF * @Date 2022/2/10 17:16 * @param xml 报文 * @return Integer 1 成功 0 失败 **/ public int sendMesToKD(String xml){ try { System.out.println(xml); ServiceInfo service = new ServiceInfo("user", "dgjt@kingdee", "eas", "A004", "L2", 1); service.setServername("172.16.62.243" , "8888"); WSContext wsContext = LoginUtil.doEASLogin(service); String sessionId = wsContext.getSessionId(); if(null == sessionId) { System.out.println("[error]: 登陆有问题"); return 0; } WSUpDaxingMeteringSystemFacadeSrvProxyServiceLocator locator = new WSUpDaxingMeteringSystemFacadeSrvProxyServiceLocator(); String res = locator.getWSUpDaxingMeteringSystemFacade().saveWeighBill(xml); Map returnMap = JSON.parseObject(res, Map.class); if("S02".equals(String.valueOf(returnMap.get("Status")))){ return 1; }else { System.out.println(xml + "推送失败"); return 0; } } catch (Exception e) { System.out.println(xml + "数据推送金蝶失败:" + e.getMessage()); return 0; } } }