AmsNotUploadedEasServiceImpl.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. package com.steerinfo.dil.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.steerinfo.dil.mapper.AmsNotUploadedEasMapper;
  4. import com.steerinfo.dil.wsdl.LoginUtil;
  5. import com.steerinfo.dil.wsdl.ServiceInfo;
  6. import com.steerinfo.dil.wsdl.WSContext;
  7. import com.steerinfo.dil.wsdl.WSUpDaxingMeteringSystemFacadeSrvProxyServiceLocator;
  8. import org.dom4j.Document;
  9. import org.dom4j.DocumentHelper;
  10. import org.dom4j.Element;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import java.text.SimpleDateFormat;
  14. import java.util.List;
  15. import java.util.Map;
  16. /**
  17. * @ author :TXF
  18. * @ time :2022/2/16 17:28
  19. */
  20. @Service
  21. public class AmsNotUploadedEasServiceImpl {
  22. @Autowired
  23. AmsNotUploadedEasMapper amsNotUploadedEasMapper;
  24. /**
  25. * 模拟采购报文
  26. * @Author TXF
  27. * @Date 2022/2/15 19:11
  28. * @param
  29. * @return
  30. **/
  31. public void makeXmlFile(){
  32. List<Map<String, Object>> asd = amsNotUploadedEasMapper.asd();
  33. int i = 1;
  34. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  35. for (Map<String, Object> map : asd) {
  36. if(map.get("resultTareWeightTime") != null)
  37. map.put("resultTareWeightTime",sdf.format(map.get("resultTareWeightTime")));
  38. if(map.get("resultCrossWeightTime") != null)
  39. map.put("resultCrossWeightTime",sdf.format(map.get("resultCrossWeightTime")));
  40. // map.put("No", "PO2021013615");
  41. // map.put("easEntryId", "YANhW8BARA+c4oqKXy0/YiYEHMU=");
  42. String xml = asXmlData(map);
  43. sendMesToKD(xml);
  44. System.out.println(i++);
  45. try {
  46. Thread.sleep(1000);
  47. } catch (InterruptedException e) {
  48. e.printStackTrace();
  49. }
  50. // System.out.println(xml);
  51. }
  52. }
  53. /**
  54. * 创建计量数据 金蝶xml格式字符串
  55. * @Author TXF
  56. * @Date 2022/2/10 17:32
  57. * @param map
  58. * @return
  59. **/
  60. public String asXmlData(Map<String, Object> map){
  61. // 创建一个Document实例
  62. Document doc = DocumentHelper.createDocument();
  63. // 添加根节点
  64. Element requests = doc.addElement("requests");
  65. //添加第子节点
  66. Element request = requests.addElement("request");
  67. request.addElement("TypeID").addText("PUR"); //采购订单类型
  68. request.addElement("FNumber").addText((String) map.get("resultPoundNo")); //磅单号
  69. request.addElement("FBizDate").addText((String) map.get("resultTareWeightTime")); // 净重时间
  70. request.addElement("Carnumber").addText((String) map.get("capacityNumber")); //车牌号
  71. request.addElement("FTransportOrgID").addText(""); //运输单位
  72. request.addElement("FGrossScaleID").addText((String) map.get("resultCrossCalculateNumber")); //毛重汽车衡
  73. request.addElement("FTareScaleID").addText((String) map.get("resultTareCalculateNumber")); //皮重汽车衡
  74. request.addElement("FGrossWeight").addText(String.valueOf(map.get("resultCrossWeight"))); //毛重
  75. request.addElement("FTareWeight").addText(String.valueOf(map.get("resultTareWeight"))); //皮重
  76. request.addElement("FGrossPoundTime").addText((String) map.get("resultCrossWeightTime")); //毛重时间
  77. request.addElement("FTarePoundTime").addText((String) map.get("resultTareWeightTime")); //皮重时间
  78. request.addElement("FSourceBillID").addText((String) map.get("No")); //采购订单号
  79. request.addElement("FSourceBillEntryID").addText((String) map.get("easEntryId")); //分录ID
  80. request.addElement("FNetWeight").addText(String.valueOf( map.get("resultNetWeight"))); //净重
  81. request.addElement("FIncidental").addText("0"); //扣杂
  82. request.addElement("FLastNetWeight").addText(String.valueOf(map.get("resultNetWeight"))); //最后净重
  83. request.addElement("FDescription").addText(""); //备注
  84. return doc.asXML();
  85. }
  86. /**
  87. *
  88. * 推送数据给金蝶接口
  89. * @Author TXF
  90. * @Date 2022/2/10 17:16
  91. * @param xml 报文
  92. * @return Integer 1 成功 0 失败
  93. **/
  94. public int sendMesToKD(String xml){
  95. try {
  96. System.out.println(xml);
  97. ServiceInfo service = new ServiceInfo("user", "dgjt@kingdee", "eas", "A004", "L2", 1);
  98. service.setServername("172.16.62.243" , "8888");
  99. WSContext wsContext = LoginUtil.doEASLogin(service);
  100. String sessionId = wsContext.getSessionId();
  101. if(null == sessionId) {
  102. System.out.println("[error]: 登陆有问题");
  103. return 0;
  104. }
  105. WSUpDaxingMeteringSystemFacadeSrvProxyServiceLocator locator = new WSUpDaxingMeteringSystemFacadeSrvProxyServiceLocator();
  106. String res = locator.getWSUpDaxingMeteringSystemFacade().saveWeighBill(xml);
  107. Map returnMap = JSON.parseObject(res, Map.class);
  108. if("S02".equals(String.valueOf(returnMap.get("Status")))){
  109. return 1;
  110. }else {
  111. System.out.println(xml + "推送失败");
  112. return 0;
  113. }
  114. } catch (Exception e) {
  115. System.out.println(xml + "数据推送金蝶失败:" + e.getMessage());
  116. return 0;
  117. }
  118. }
  119. }