NewProduceMission.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. package com.huimv.manage.webservice.task;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import org.dom4j.Document;
  5. import org.dom4j.DocumentException;
  6. import org.dom4j.DocumentHelper;
  7. import org.dom4j.Element;
  8. import org.springframework.stereotype.Component;
  9. import java.util.Iterator;
  10. /**
  11. * @Project : huimv.shiwan
  12. * @Package : com.huimv.biosafety.uface.controller
  13. * @Description : TODO
  14. * @Version : 1.0
  15. * @Author : ZhuoNing
  16. * @Create : 2020-12-25
  17. **/
  18. @Component
  19. public class NewProduceMission {
  20. /**
  21. * @Method : getNewMission
  22. * @Description :
  23. * @Params : [producerId]
  24. * @Return : java.lang.String
  25. * @Author : ZhuoNing
  26. * @Date : 2021/10/28
  27. * @Time : 16:32
  28. */
  29. public String getNewMissionText(String producerId) {
  30. return "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" +
  31. " <soap:Body>\n" +
  32. " <GetNewProduceMission xmlns=\"http://tempuri.org/\">\n" +
  33. " <produceKey>161374</produceKey>\n" +
  34. " </GetNewProduceMission>\n" +
  35. " </soap:Body>\n" +
  36. "</soap:Envelope>";
  37. }
  38. public String getNewMessionResult(){
  39. return "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
  40. "<soap:Envelope\n" +
  41. " xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"\n" +
  42. " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
  43. " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
  44. " <soap:Body>\n" +
  45. " <GetNewProduceMissionResponse\n" +
  46. " xmlns=\"http://tempuri.org/\">\n" +
  47. " <GetNewProduceMissionResult>\n" +
  48. " <xs:schema id=\"NewDataSet\"\n" +
  49. " xmlns=\"\"\n" +
  50. " xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"\n" +
  51. " xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n" +
  52. " <xs:element name=\"NewDataSet\" msdata:IsDataSet=\"true\" msdata:UseCurrentLocale=\"true\">\n" +
  53. " <xs:complexType>\n" +
  54. " <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n" +
  55. " <xs:element name=\"Mission\">\n" +
  56. " <xs:complexType>\n" +
  57. " <xs:sequence>\n" +
  58. " <xs:element name=\"org_id\" type=\"xs:int\" minOccurs=\"0\" />\n" +
  59. " <xs:element name=\"org_name\" type=\"xs:string\" minOccurs=\"0\" />\n" +
  60. " <xs:element name=\"org_address\" type=\"xs:string\" minOccurs=\"0\" />\n" +
  61. " <xs:element name=\"org_linkman\" type=\"xs:string\" minOccurs=\"0\" />\n" +
  62. " <xs:element name=\"postcode\" type=\"xs:string\" minOccurs=\"0\" />\n" +
  63. " <xs:element name=\"org_tel\" type=\"xs:string\" minOccurs=\"0\" />\n" +
  64. " <xs:element name=\"ApplyID\" type=\"xs:int\" minOccurs=\"0\" />\n" +
  65. " <xs:element name=\"AssignedDate\" type=\"xs:dateTime\" minOccurs=\"0\" />\n" +
  66. " <xs:element name=\"EarMarkAmount\" type=\"xs:long\" minOccurs=\"0\" />\n" +
  67. " <xs:element name=\"RealEarMarkAmount\" type=\"xs:long\" minOccurs=\"0\" />\n" +
  68. " <xs:element name=\"MissionProcessor\" type=\"xs:int\" minOccurs=\"0\" />\n" +
  69. " <xs:element name=\"ConsignmentDate\" type=\"xs:dateTime\" minOccurs=\"0\" />\n" +
  70. " <xs:element name=\"ApplyRegionName\" type=\"xs:string\" minOccurs=\"0\" />\n" +
  71. " <xs:element name=\"AnimalType\" type=\"xs:int\" minOccurs=\"0\" />\n" +
  72. " <xs:element name=\"AnimalTypeName\" type=\"xs:string\" minOccurs=\"0\" />\n" +
  73. " </xs:sequence>\n" +
  74. " </xs:complexType>\n" +
  75. " </xs:element>\n" +
  76. " </xs:choice>\n" +
  77. " </xs:complexType>\n" +
  78. " </xs:element>\n" +
  79. " </xs:schema>\n" +
  80. " <diffgr:diffgram\n" +
  81. " xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\"\n" +
  82. " xmlns:diffgr=\"urn:schemas-microsoft-com:xml-diffgram-v1\">\n" +
  83. " <NewDataSet\n" +
  84. " xmlns=\"\">\n" +
  85. " <Mission diffgr:id=\"Mission1\" msdata:rowOrder=\"0\">\n" +
  86. " <org_id>1936</org_id>\n" +
  87. " <org_name>大兴区动物疾病控制中心</org_name>\n" +
  88. " <org_address>大兴区动物疾病控制中心</org_address>\n" +
  89. " <org_linkman>大兴区动物疾病控制中心</org_linkman>\n" +
  90. " <postcode>102600</postcode>\n" +
  91. " <org_tel>01069207882 </org_tel>\n" +
  92. " <ApplyID>111111</ApplyID>\n" +
  93. " <AssignedDate>2021-10-19T09:43:52+08:00</AssignedDate>\n" +
  94. " <EarMarkAmount>140</EarMarkAmount>\n" +
  95. " <RealEarMarkAmount>140</RealEarMarkAmount>\n" +
  96. " <MissionProcessor>1936</MissionProcessor>\n" +
  97. " <ConsignmentDate>2022-01-17T09:53:18.621132+08:00</ConsignmentDate>\n" +
  98. " <ApplyRegionName>北京市大兴区</ApplyRegionName>\n" +
  99. " <AnimalType>3</AnimalType>\n" +
  100. " <AnimalTypeName>羊</AnimalTypeName>\n" +
  101. " </Mission>\n" +
  102. " <Mission diffgr:id=\"Mission2\" msdata:rowOrder=\"1\">\n" +
  103. " <org_id>1936</org_id>\n" +
  104. " <org_name>大兴区动物疾病控制中心</org_name>\n" +
  105. " <org_address>大兴区动物疾病控制中心</org_address>\n" +
  106. " <org_linkman>大兴区动物疾病控制中心</org_linkman>\n" +
  107. " <postcode>102600</postcode>\n" +
  108. " <org_tel>01069207882 </org_tel>\n" +
  109. " <ApplyID>216764</ApplyID>\n" +
  110. " <AssignedDate>2021-10-19T09:43:52+08:00</AssignedDate>\n" +
  111. " <EarMarkAmount>140</EarMarkAmount>\n" +
  112. " <RealEarMarkAmount>140</RealEarMarkAmount>\n" +
  113. " <MissionProcessor>1936</MissionProcessor>\n" +
  114. " <ConsignmentDate>2022-01-17T09:53:18.621132+08:00</ConsignmentDate>\n" +
  115. " <ApplyRegionName>北京市大兴区</ApplyRegionName>\n" +
  116. " <AnimalType>3</AnimalType>\n" +
  117. " <AnimalTypeName>羊</AnimalTypeName>\n" +
  118. " </Mission>\n" +
  119. " </NewDataSet>\n" +
  120. " </diffgr:diffgram>\n" +
  121. " </GetNewProduceMissionResult>\n" +
  122. " </GetNewProduceMissionResponse>\n" +
  123. " </soap:Body>\n" +
  124. "</soap:Envelope>\n";
  125. }
  126. /**
  127. * @Method : parseApplyXML
  128. * @Description :
  129. * @Params : [xml]
  130. * @Return : com.alibaba.fastjson.JSONArray
  131. * @Author : ZhuoNing
  132. * @Date : 2021/10/28
  133. * @Time : 16:32
  134. */
  135. public JSONArray parseApplyXML(String xml) {
  136. Document doc = null;
  137. try {
  138. doc = DocumentHelper.parseText(xml); // 将字符串转为XML
  139. Element rootElt = doc.getRootElement(); // 获取根节点
  140. // System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
  141. Iterator iter = rootElt.elementIterator("Body"); // 获取根节点下的子节点 Body
  142. Element recordEle = (Element) iter.next();
  143. Iterator iter2 = recordEle.elementIterator("GetNewProduceMissionResponse");
  144. Element recordEle2 = (Element) iter2.next();
  145. Iterator GetNewMissionEarMarkResultIter = recordEle2.elementIterator("GetNewProduceMissionResult");
  146. Element GetNewMissionEarMarkResultIterEle = (Element) GetNewMissionEarMarkResultIter.next();
  147. // Iterator schemaIter = GetNewMissionEarMarkResultIterEle.elementIterator("schema");
  148. // Element schemaEle = (Element) schemaIter.next();
  149. Iterator diffgramIter = GetNewMissionEarMarkResultIterEle.elementIterator("diffgram");
  150. Element diffgramEle = (Element) diffgramIter.next();
  151. Iterator newDataSetIter = diffgramEle.elementIterator("NewDataSet");
  152. Element newDataSetChildEle = (Element) newDataSetIter.next();
  153. Iterator missionIter = newDataSetChildEle.elementIterator("Mission");
  154. System.out.println("missionIter.hasNext()>>" + missionIter.hasNext());
  155. // 所有数据
  156. JSONArray allDataJa = new JSONArray();
  157. while (missionIter.hasNext()) {
  158. JSONObject earMarkJo = new JSONObject();
  159. allDataJa.add(earMarkJo);
  160. Element earMarkIterEle = (Element) missionIter.next();
  161. earMarkJo.put("applyID", earMarkIterEle.elementTextTrim("ApplyID"));
  162. earMarkJo.put("orgId", earMarkIterEle.elementTextTrim("org_id"));
  163. earMarkJo.put("orgName", earMarkIterEle.elementTextTrim("org_name"));
  164. earMarkJo.put("orgAddress", earMarkIterEle.elementTextTrim("org_address"));
  165. earMarkJo.put("orgLinkman", earMarkIterEle.elementTextTrim("org_linkman"));
  166. earMarkJo.put("postCode", earMarkIterEle.elementTextTrim("postcode"));
  167. earMarkJo.put("orgTel", earMarkIterEle.elementTextTrim("org_tel"));
  168. earMarkJo.put("applyId", earMarkIterEle.elementTextTrim("ApplyID"));
  169. earMarkJo.put("assignedDate", earMarkIterEle.elementTextTrim("AssignedDate"));
  170. earMarkJo.put("earmarkAmount", earMarkIterEle.elementTextTrim("EarMarkAmount"));
  171. earMarkJo.put("realEarmarkAmount", earMarkIterEle.elementTextTrim("RealEarMarkAmount"));
  172. earMarkJo.put("missionProcessor", earMarkIterEle.elementTextTrim("MissionProcessor"));
  173. earMarkJo.put("consignmentDate", earMarkIterEle.elementTextTrim("ConsignmentDate"));
  174. earMarkJo.put("applyRegionName", earMarkIterEle.elementTextTrim("ApplyRegionName"));
  175. earMarkJo.put("animalType", earMarkIterEle.elementTextTrim("AnimalType"));
  176. earMarkJo.put("animalTypeName", earMarkIterEle.elementTextTrim("AnimalTypeName"));
  177. }
  178. return allDataJa;
  179. } catch (DocumentException e) {
  180. e.printStackTrace();
  181. return null;
  182. } catch (Exception e) {
  183. e.printStackTrace();
  184. return null;
  185. }
  186. }
  187. }