Преглед изворни кода

增加导出空白耳标号功能

zhuoning пре 1 година
родитељ
комит
725f3ba3a9
18 измењених фајлова са 527 додато и 19 уклоњено
  1. 2 0
      huimv-manage/src/main/java/com/huimv/manage/eartag/controller/ApplyController.java
  2. 10 0
      huimv-manage/src/main/java/com/huimv/manage/eartag/controller/EarmarkController.java
  3. 9 0
      huimv-manage/src/main/java/com/huimv/manage/eartag/dao/repo/EarmarkRepo.java
  4. 3 0
      huimv-manage/src/main/java/com/huimv/manage/eartag/dao/repo/PackageRepo.java
  5. 2 0
      huimv-manage/src/main/java/com/huimv/manage/eartag/service/IEarmarkService.java
  6. 32 0
      huimv-manage/src/main/java/com/huimv/manage/eartag/service/impl/EarmarkServiceImpl.java
  7. 1 1
      huimv-manage/src/main/java/com/huimv/manage/util/Const.java
  8. 2 0
      huimv-manage/src/main/java/com/huimv/manage/webservice/Soap.java
  9. 416 0
      huimv-manage/src/main/java/com/huimv/manage/webservice/task/ProduceMissionTask.java
  10. 2 1
      huimv-manage/src/main/resources/application.properties
  11. BIN
      huimv-pigfarm/huimv-pigfarm-local-device-0.0.1-SNAPSHOT.jar
  12. 8 8
      huimv-pigfarm/huimv-pigfarm-local-device/pom.xml
  13. 0 3
      huimv-pigfarm/huimv-pigfarm-local-device/src/main/java/com/huimv/local/LocalDeviceApplication.java
  14. 2 2
      huimv-pigfarm/huimv-pigfarm-local-device/src/main/java/com/huimv/local/client/EchoClient.java
  15. 1 1
      huimv-pigfarm/huimv-pigfarm-local-device/src/main/java/com/huimv/local/server/EchoServer.java
  16. 1 1
      huimv-pigfarm/huimv-pigfarm-local-device/src/main/java/com/huimv/local/server/LocalDeviceDataServer.java
  17. 1 1
      huimv-pigfarm/huimv-pigfarm-local-device/src/main/resources/application-prod.yml
  18. 35 1
      huimv-pigfarm/huimv-pigfarm-local-device/src/main/resources/application-test.yml

+ 2 - 0
huimv-manage/src/main/java/com/huimv/manage/eartag/controller/ApplyController.java

@@ -84,6 +84,8 @@ public class ApplyController {
 //        JSONArray downloadApplyJa = newProduceMission.parseApplyXML(newProduceMission.getNewMessionResult_test());
         if (downloadApplyJa == null) {
             return new Result(Const.CODE_APPLY_PARSE, Const.APPLY_PARSE_ERROR, false);
+        }else if(downloadApplyJa.size() == 0){
+            return new Result(Const.CODE_APPLY_NO_NEW, Const.APPLY_NO_NEW, false);
         }
         // 过滤已经入库的任务号
         JSONArray newApplyJa = applyService.filterExistApply(downloadApplyJa);

+ 10 - 0
huimv-manage/src/main/java/com/huimv/manage/eartag/controller/EarmarkController.java

@@ -226,4 +226,14 @@ public class EarmarkController {
         //
         earmarkService.exportEarmarkByEarmark(ids,printState,quantity,response);
     }
+
+    //根据任务号绑定耳标
+    @RequestMapping(value = "/baindEartag",method = RequestMethod.GET)
+    public void baindEartag(@RequestParam(value = "applyID",required = true)  String aplyID ) throws IOException {
+        log.info("aplyID="+aplyID);
+
+        //
+        earmarkService.baindEartag(aplyID);
+    }
+
 }

+ 9 - 0
huimv-manage/src/main/java/com/huimv/manage/eartag/dao/repo/EarmarkRepo.java

@@ -11,4 +11,13 @@ public interface EarmarkRepo extends JpaRepository<EtEarmarkEntity, Integer>, Jp
 
     @Query(nativeQuery = true , value = "SELECT * FROM et_earmark ORDER BY id DESC Limit ?1")
     List<EtEarmarkEntity> listEarmark(int pageSize);
+
+    @Query(nativeQuery = true , value = "SELECT * FROM `et_earmark` WHERE apply_id=?1 ORDER BY id DESC")
+    List<EtEarmarkEntity> listEarmarkByApply(String applyId);
+
+    @Query(nativeQuery = true , value = "SELECT * FROM `et_earmark` WHERE apply_id=?1 ORDER BY id ASC")
+    List<EtEarmarkEntity> listEarmarkByApplyASC(String aplyID);
+
+    @Query(nativeQuery = true , value = "SELECT earmark_id  FROM `et_earmark` WHERE package_id=?1 ORDER BY id ASC")
+    List<String> listEarmarkByPackageId(Integer packageId);
 }

+ 3 - 0
huimv-manage/src/main/java/com/huimv/manage/eartag/dao/repo/PackageRepo.java

@@ -14,4 +14,7 @@ public interface PackageRepo extends JpaRepository<EtPackageEntity, Integer>, Jp
 
     @Query(nativeQuery = true , value = "UPDATE et_package SET produce_state=1 WHERE id=?1")
     void updateProduceState(String id, int state);
+
+    @Query(nativeQuery = true , value = "SELECT * FROM `et_package` WHERE apply_id=?1 ORDER BY id ASC")
+    List<EtPackageEntity> listByApply(String aplyID);
 }

+ 2 - 0
huimv-manage/src/main/java/com/huimv/manage/eartag/service/IEarmarkService.java

@@ -47,4 +47,6 @@ public interface IEarmarkService {
 
     //
     void exportEarmarkByApply(Integer applyId, Integer printState, Integer writeState, Integer quantity, HttpServletResponse response, HttpServletRequest request) throws IOException, ArchiveException;
+
+    String baindEartag(String aplyID);
 }

+ 32 - 0
huimv-manage/src/main/java/com/huimv/manage/eartag/service/impl/EarmarkServiceImpl.java

@@ -3,7 +3,9 @@ package com.huimv.manage.eartag.service.impl;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.huimv.manage.eartag.dao.entity.EtEarmarkEntity;
+import com.huimv.manage.eartag.dao.entity.EtPackageEntity;
 import com.huimv.manage.eartag.dao.repo.EarmarkRepo;
+import com.huimv.manage.eartag.dao.repo.PackageRepo;
 import com.huimv.manage.eartag.service.IEarmarkService;
 import com.huimv.manage.util.*;
 import com.huimv.manage.webservice.Soap;
@@ -68,6 +70,9 @@ public class EarmarkServiceImpl implements IEarmarkService {
     @Autowired
     private TxtUtil txtUtil;
 
+    @Autowired
+    private PackageRepo packageRepo;
+
 
     /**
      * @Method : listEarmark
@@ -696,6 +701,33 @@ public class EarmarkServiceImpl implements IEarmarkService {
         }
     }
 
+    @Override
+    public String baindEartag(String aplyID) {
+        List<EtEarmarkEntity> etEarmarkEntities = earmarkRepo.listEarmarkByApplyASC(aplyID);
+        int eartagSize = etEarmarkEntities.size();
+        List<EtPackageEntity> etPackageEntities =  packageRepo.listByApply(aplyID);
+        int packageSize = etPackageEntities.size();
+//        int num =  eartagSize /packageSize;
+        //16 48 96
+        int num = 16;
+        Integer count =0;
+
+        for (EtPackageEntity etPackageEntity : etPackageEntities) {
+            for (int i = num*count; i<num *(count+1);i++) {
+                Integer packageId = etPackageEntity.getPackageId();
+                if (i < eartagSize){
+                    EtEarmarkEntity etEarmarkEntity = etEarmarkEntities.get(i);
+                    etEarmarkEntity.setPackageId(packageId+"");
+                    earmarkRepo.saveAndFlush(etEarmarkEntity);
+                }
+
+            }
+            count++;
+        }
+        return null;
+
+    }
+
     /**
      * 获取项目根路径
      *

+ 1 - 1
huimv-manage/src/main/java/com/huimv/manage/util/Const.java

@@ -20,7 +20,7 @@ public final class Const {
     public static final String APPLY_NO_NEW = "目前暂无新任务.";
 
     public static final Integer CODE_APPLY_PARSE = 10002;
-    public static final String APPLY_PARSE_ERROR = "解析任务号报文出错.";
+    public static final String APPLY_PARSE_ERROR = "调用接口出错或解析任务号报文出错.";
 
     public static final Integer CODE_UPDATE_STATE_FAIL = 10003;
     public static final String UPDATE_STATE_FAIL = "更新状态失败.";

+ 2 - 0
huimv-manage/src/main/java/com/huimv/manage/webservice/Soap.java

@@ -40,6 +40,7 @@ public class Soap {
      */
     public String callSoap(String text,String url) throws UnsupportedEncodingException {
         String str = new String(text.getBytes(), "UTF-8");
+        System.out.println("下载任务号请求内容:");
         System.out.println(str);
         HttpClient httpClient = new HttpClient();
         httpClient.getParams().setParameter(HttpConnectionParams.CONNECTION_TIMEOUT, 3000);
@@ -65,6 +66,7 @@ public class Soap {
                 String a = result.toString().replace("&lt;", "<").replace("&gt;", ">");
                 System.out.println("返回下面的数据>>");
                 System.out.println(a);
+                System.out.println("<<返回数据结束");
                 return a;
             } else {
                 System.out.println("调用接口失败");

+ 416 - 0
huimv-manage/src/main/java/com/huimv/manage/webservice/task/ProduceMissionTask.java

@@ -1,14 +1,19 @@
 package com.huimv.manage.webservice.task;
 
+import cn.hutool.core.date.DateTime;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.huimv.manage.eartag.dao.entity.EtPackageEntity;
 import org.dom4j.Document;
 import org.dom4j.DocumentException;
 import org.dom4j.DocumentHelper;
 import org.dom4j.Element;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.Date;
 import java.util.Iterator;
+import java.util.List;
 
 /**
  * @Project : huimv.shiwan
@@ -140,6 +145,82 @@ public class ProduceMissionTask {
      */
     public JSONArray parseReturnNewMissionXML(String xml) {
         Document doc = null;
+        if(xml == null){
+            System.out.println("调用接口出错.");
+            return null;
+        }else{
+            try {
+                doc = DocumentHelper.parseText(xml); // 将字符串转为XML
+                Element rootElt = doc.getRootElement(); // 获取根节点
+//            System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
+
+                Iterator iter = rootElt.elementIterator("Body"); // 获取根节点下的子节点 Body
+                Element recordEle = (Element) iter.next();
+
+                Iterator iter2 = recordEle.elementIterator("GetNewProduceMissionResponse");
+                Element recordEle2 = (Element) iter2.next();
+
+                Iterator GetNewMissionEarMarkResultIter = recordEle2.elementIterator("GetNewProduceMissionResult");
+//            System.out.println("GetNewMissionEarMarkResultIter>>"+GetNewMissionEarMarkResultIter.hasNext());
+                Element GetNewMissionEarMarkResultIterEle = (Element) GetNewMissionEarMarkResultIter.next();
+
+//            Iterator schemaIter = GetNewMissionEarMarkResultIterEle.elementIterator("schema");
+//            Element schemaEle = (Element) schemaIter.next();
+                Iterator diffgramIter = GetNewMissionEarMarkResultIterEle.elementIterator("diffgram");
+//            System.out.println("diffgramIter>>"+diffgramIter.hasNext());
+//            if(diffgramIter.hasNext())
+                Element diffgramEle = (Element) diffgramIter.next();
+
+                Iterator newDataSetIter = diffgramEle.elementIterator("NewDataSet");
+//            System.out.println("newDataSetIter>>"+newDataSetIter.hasNext());
+                if(!newDataSetIter.hasNext()){
+                    JSONArray emptyJa = new JSONArray();
+                    return emptyJa;
+                }
+                Element newDataSetChildEle = (Element) newDataSetIter.next();
+
+                Iterator missionIter = newDataSetChildEle.elementIterator("Mission");
+//            System.out.println("missionIter.hasNext()>>" + missionIter.hasNext());
+                // 所有数据
+                JSONArray allDataJa = new JSONArray();
+
+                while (missionIter.hasNext()) {
+                    JSONObject earMarkJo = new JSONObject();
+                    allDataJa.add(earMarkJo);
+                    Element earMarkIterEle = (Element) missionIter.next();
+                    earMarkJo.put("applyID", earMarkIterEle.elementTextTrim("ApplyID"));
+                    earMarkJo.put("orgId", earMarkIterEle.elementTextTrim("org_id"));
+                    earMarkJo.put("orgName", earMarkIterEle.elementTextTrim("org_name"));
+                    earMarkJo.put("orgAddress", earMarkIterEle.elementTextTrim("org_address"));
+                    earMarkJo.put("orgLinkman", earMarkIterEle.elementTextTrim("org_linkman"));
+                    earMarkJo.put("postCode", earMarkIterEle.elementTextTrim("postcode"));
+                    earMarkJo.put("orgTel", earMarkIterEle.elementTextTrim("org_tel"));
+                    earMarkJo.put("applyId", earMarkIterEle.elementTextTrim("ApplyID"));
+                    earMarkJo.put("assignedDate", earMarkIterEle.elementTextTrim("AssignedDate"));
+                    earMarkJo.put("earmarkAmount", earMarkIterEle.elementTextTrim("EarMarkAmount"));
+                    earMarkJo.put("realEarmarkAmount", earMarkIterEle.elementTextTrim("RealEarMarkAmount"));
+                    earMarkJo.put("missionProcessor", earMarkIterEle.elementTextTrim("MissionProcessor"));
+                    earMarkJo.put("consignmentDate", earMarkIterEle.elementTextTrim("ConsignmentDate"));
+                    earMarkJo.put("applyRegionName", earMarkIterEle.elementTextTrim("ApplyRegionName"));
+                    earMarkJo.put("animalType", earMarkIterEle.elementTextTrim("AnimalType"));
+                    earMarkJo.put("animalTypeName", earMarkIterEle.elementTextTrim("AnimalTypeName"));
+                }
+                return allDataJa;
+            } catch (DocumentException e) {
+                System.out.println("e1>>"+e.getMessage());
+                e.printStackTrace();
+                return null;
+            } catch (Exception e) {
+                System.out.println("e2>>"+e.getMessage());
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
+
+    //--2022.2.24
+    public JSONArray parseReturnNewMissionXML_old0(String xml) {
+        Document doc = null;
         try {
             doc = DocumentHelper.parseText(xml); // 将字符串转为XML
             Element rootElt = doc.getRootElement(); // 获取根节点
@@ -190,9 +271,11 @@ public class ProduceMissionTask {
             }
             return allDataJa;
         } catch (DocumentException e) {
+            System.out.println("e1>>"+e.getMessage());
             e.printStackTrace();
             return null;
         } catch (Exception e) {
+            System.out.println("e2>>"+e.getMessage());
             e.printStackTrace();
             return null;
         }
@@ -218,6 +301,263 @@ public class ProduceMissionTask {
                 "</soap:Envelope>";
     }
 
+
+    public String addShipEarMarkBoxData(String  boxCode, DateTime shipTime) {
+        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" +
+                "  <soap:Body>\n" +
+                "    <AddShipEarMarkBoxData xmlns=\"http://tempuri.org/\">\n" +
+                "      <uploadData>\n" +
+                "      <boxCode>"+boxCode+"</boxCode> \n" +
+                "      <shipTime>"+shipTime+"</shipTime> \n" +
+                "</uploadData>"+
+                "    </AddShipEarMarkBoxData>\n" +
+                "  </soap:Body>\n" +
+                "</soap:Envelope>";
+    }
+
+    //获取 企业id
+    public String GetProducerCodeByID(String  producerID ) {
+        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" +
+                "  <soap:Body>\n" +
+                "    <GetProducerCodeByID xmlns=\"http://tempuri.org/\">\n" +
+                "      <producerID>"+producerID+"</producerID>\n" +
+                "    </GetProducerCodeByID>\n" +
+                "  </soap:Body>\n" +
+                "</soap:Envelope>";
+    }
+    //8.UploadDataToWebService
+   /* public String UploadDataToWebService  (String ApplyID,String PackageID,String ProduceDate,Integer ProduceLineID,String EarMarkID
+    ) {*/
+   public String UploadDataToWebService  (String ApplyID,Integer PackageID,String ProduceDate,Integer ProduceLineID,  List<String> EarMarkID
+    ) {
+
+       StringBuilder dataSb = new StringBuilder();
+       for(int a=0;a<EarMarkID.size();a++){
+           dataSb.append("<Package diffgr:id=\"Package"+(a+1)+"\" msdata:rowOrder=\""+a+"\">\n" +
+                   "<ApplyID>"+ApplyID+"</ApplyID>\n" +
+                   "<PackageID>"+PackageID+"</PackageID>\n" +
+                   "<ProduceDate>"+ProduceDate+"</ProduceDate>\n" +
+                   "<ProduceLineID>"+ProduceLineID+"</ProduceLineID>\n" +
+                   "<EarMarkID>"+ EarMarkID.get(a)+"</EarMarkID>\n" +
+                   "</Package>\n");
+       }
+        return  "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"+
+                "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
+                "<soap:Body>\n" +
+                "\n" +
+                "<UploadDataToWebService xmlns=\"http://tempuri.org/\">\n" +
+                "\n" +
+                "<uploadData>\n" +
+                "\n" +
+                "<xs:schema id=\"uploadData\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n" +
+                "\n" +
+                "<xs:element name=\"uploadData\" msdata:IsDataSet=\"true\" msdata:UseCurrentLocale=\"true\">\n" +
+                "<xs:complexType>\n" +
+                "<xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n" +
+                "<xs:element name=\"Package\">\n" +
+                "<xs:complexType>\n" +
+                "\n" +
+                "<xs:sequence>\n" +
+                "<xs:element name=\"ApplyID\" type=\"xs:int\" minOccurs=\"0\" />\n" +
+                "<xs:element name=\"PackageID\" type=\"xs:int\" minOccurs=\"0\" />\n" +
+                "<xs:element name=\"ProduceDate\" type=\"xs:dateTime\" minOccurs=\"0\" />\n" +
+                "<xs:element name=\"ProduceLineID\" type=\"xs:int\" minOccurs=\"0\" />\n" +
+                "<xs:element name=\"EarMarkID\" type=\"xs:integer\" minOccurs=\"0\" />\n" +
+                "</xs:sequence>\n" +
+                "\n" +
+                "</xs:complexType>\n" +
+                "</xs:element>\n" +
+                "</xs:choice>\n" +
+                "</xs:complexType>\n" +
+                "</xs:element>\n" +
+                "</xs:schema>\n" +
+                "\n" +
+                "\n" +
+                "<diffgr:diffgram xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" xmlns:diffgr=\"urn:schemas-microsoft-com:xml-diffgram-v1\">\n" +
+                "<NewDataSet xmlns=\"\">\n" +
+               /* "<Package diffgr:id=\"Package1\" msdata:rowOrder=\"0\">\n" +
+                "<ApplyID>"+ApplyID+"</ApplyID>\n" +
+                "<PackageID>"+PackageID+"</PackageID>\n" +
+                "<ProduceDate>"+ProduceDate+"</ProduceDate>\n" +
+                "<ProduceLineID>"+ProduceLineID+"</ProduceLineID>\n" +
+                "<EarMarkID>"+ dataSb.toString()+"</EarMarkID>\n" +
+                "</Package>\n"*/ dataSb.toString() +
+                "</NewDataSet>\n" +
+                "</diffgr:diffgram>\n" +
+                "\n" +
+                "</uploadData>\n" +
+                "\n" +
+                "</UploadDataToWebService>\n" +
+                "\n" +
+                "</soap:Body>\n" +
+                "</soap:Envelope>\n";
+    }
+
+
+
+    //9.上传装箱信息数据
+    public String AddEarMarkBoxData  (String  BoxCode, Integer  EarMarkAmount, Integer  PackageAmount, String  ProducerCode, String BoxTime, Integer  ApplyID, String  FHXX, List<EtPackageEntity> etPackageEntities
+    ) {
+        StringBuilder dataSb = new StringBuilder();
+        /*for(int a=0;a<etPackageEntities.size();a++){
+            dataSb.append("<int>"+etPackageEntities.get(a).getPackageId()+"</int>");
+        }*/
+
+        for(int a=0;a<etPackageEntities.size();a++){
+            dataSb.append("<Package diffgr:id=\"Package"+(a+1)+"\" msdata:rowOrder=\""+a+"\">\n" +
+                    "<PackageID>"+etPackageEntities.get(a).getPackageId() +"</PackageID>\n"+
+                    "</Package>\n" );
+        }
+        return  "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
+                "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
+                "<soap:Body>\n" +
+                "\n" +
+                "<AddEarMarkBoxData xmlns=\"http://tempuri.org/\">\n" +
+                "\n" +
+                "<uploadData>\n" +
+                "\n" +
+                "<xs:schema id=\"uploadData\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n" +
+                "\n" +
+                "<xs:element name=\"uploadData\" msdata:IsDataSet=\"true\" msdata:UseCurrentLocale=\"true\">\n" +
+                "<xs:complexType>\n" +
+                "<xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n" +
+                "<xs:element name=\"Box\">\n" +
+                "<xs:complexType>\n" +
+                "<xs:sequence>\n" +
+                "<xs:element name=\"BoxCode\" type=\"xs:string\" minOccurs=\"0\" />\n" +
+                "<xs:element name=\"EarMarkAmount\" type=\"xs:int\" minOccurs=\"0\" />\n" +
+                "<xs:element name=\"PackageAmount\" type=\"xs:int\" minOccurs=\"0\" />\n" +
+                "<xs:element name=\"ProducerCode\" type=\"xs:string\" minOccurs=\"0\" />\n" +
+                "<xs:element name=\"BoxTime\" type=\"xs:dateTime\" minOccurs=\"0\" />\n" +
+                "<xs:element name=\"ApplyID\" type=\"xs:int\" minOccurs=\"0\" />\n" +
+                "<xs:element name=\"FHXX\" type=\"xs:string\" minOccurs=\"0\" />\n" +
+                "</xs:sequence>\n" +
+                "</xs:complexType>\n" +
+                "</xs:element>\n" +
+                "\n" +
+                "<xs:element name=\"Package\">\n" +
+                "<xs:complexType>\n" +
+                "<xs:sequence>\n" +
+                "<xs:element name=\"PackageID\" type=\"xs:string\" minOccurs=\"0\" />\n" +
+                "</xs:sequence>\n" +
+                "</xs:complexType>\n" +
+                "</xs:element>\n" +
+                "\n" +
+                "</xs:choice>\n" +
+                "</xs:complexType>\n" +
+                "</xs:element>\n" +
+                "</xs:schema>\n" +
+                "\n" +
+                "\n" +
+                "<diffgr:diffgram xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" xmlns:diffgr=\"urn:schemas-microsoft-com:xml-diffgram-v1\">\n" +
+                "<NewDataSet xmlns=\"\">\n" +
+                "<Box diffgr:id=\"Box1\" msdata:rowOrder=\"0\">\n" +
+                "<BoxCode>"+BoxCode+"</BoxCode>\n" +
+                "<EarMarkAmount>"+EarMarkAmount+"</EarMarkAmount>\n" +
+                "<PackageAmount>"+PackageAmount+"</PackageAmount>\n" +
+                "<ProducerCode>"+ProducerCode+"</ProducerCode>\n" +
+                "<BoxTime>"+BoxTime+"</BoxTime>\n" +
+                "<ApplyID>"+ApplyID+"</ApplyID>\n" +
+                "<FHXX>"+FHXX+"</FHXX>\n" +
+                "</Box>\n" +
+                "\n" +
+               /* "<Package diffgr:id=\"Package1\" msdata:rowOrder=\"0\">\n" +
+                "<PackageID>"+dataSb.toString() +"</PackageID>\n" */
+               dataSb.toString()+
+
+                "\n" +
+                "</NewDataSet>\n" +
+                "</diffgr:diffgram>\n" +
+                "\n" +
+                "</uploadData>\n" +
+                "\n" +
+                "</AddEarMarkBoxData>\n" +
+                "\n" +
+                "</soap:Body>\n" +
+                "</soap:Envelope>";
+    }
+
+    //上传箱发货信息
+    public String AddShipEarMarkBoxData  ( String  BoxCode,String  ShipTime ) {
+        return "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
+                "<soap:Body>\n" +
+                "\n" +
+                "<AddShipEarMarkBoxData xmlns=\"http://tempuri.org/\">\n" +
+                "\n" +
+                "<uploadData>\n" +
+                "\n" +
+                "<xs:schema id=\"uploadData\" xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\n" +
+                "\n" +
+                "<xs:element name=\"uploadData\" msdata:IsDataSet=\"true\" msdata:UseCurrentLocale=\"true\">\n" +
+                "<xs:complexType>\n" +
+                "<xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\">\n" +
+                "<xs:element name=\"Box\">\n" +
+                "<xs:complexType>\n" +
+                "\n" +
+                "<xs:sequence>\n" +
+                "<xs:element name=\"BoxCode\" type=\"xs:string\" minOccurs=\"0\" />\n" +
+                "<xs:element name=\"ShipTime\" type=\"xs:dateTime\" minOccurs=\"0\" />\n" +
+                "</xs:sequence>\n" +
+                "\n" +
+                "</xs:complexType>\n" +
+                "</xs:element>\n" +
+                "</xs:choice>\n" +
+                "</xs:complexType>\n" +
+                "</xs:element>\n" +
+                "</xs:schema>\n" +
+                "\n" +
+                "\n" +
+                "<diffgr:diffgram xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" xmlns:diffgr=\"urn:schemas-microsoft-com:xml-diffgram-v1\">\n" +
+                "<NewDataSet xmlns=\"\">\n" +
+                "\n" +
+                "<Box diffgr:id=\"Box1\" msdata:rowOrder=\"0\">\n" +
+                "<BoxCode>"+BoxCode+"</BoxCode>\n" +
+                "<ShipTime>"+ShipTime+"</ShipTime>\n" +
+                "</Box>\n" +
+                "\n" +
+                "\n" +
+                "</NewDataSet>\n" +
+                "</diffgr:diffgram>\n" +
+                "\n" +
+                "</uploadData>\n" +
+                "\n" +
+                "</AddShipEarMarkBoxData>\n" +
+                "\n" +
+                "</soap:Body>\n" +
+                "</soap:Envelope>";
+    }
+
+    //更改发货状态
+    public String UpdateMissionStatus(String  producerID ) {
+        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" +
+                "  <soap:Body>\n" +
+                "    <UpdateMissionStatus xmlns=\"http://tempuri.org/\">\n" +
+                "      <applyIDs>\n" +
+                "        <int>"+232840+"</int>\n" +
+                "        <int>"+232281+"</int>\n" +
+                "        <int>"+232841+"</int>\n" +
+                "        <int>"+232843+"</int>\n" +
+                "        <int>"+232842+"</int>\n" +
+                "      </applyIDs>\n" +
+                "      <shipEarMarkAmount>\n" +
+                "        <int>"+150+"</int>\n" +
+                "        <int>"+1300+"</int>\n" +
+                "        <int>"+2000+"</int>\n" +
+                "        <int>"+2000+"</int>\n" +
+                "        <int>"+500+"</int>\n" +
+                "      </shipEarMarkAmount>\n" +
+                "      <shipBoxAmount>\n" +
+                "        <int>"+1+"</int>\n" +
+                "        <int>"+1+"</int>\n" +
+                "        <int>"+1+"</int>\n" +
+                "        <int>"+1+"</int>\n" +
+                "        <int>"+1+"</int>\n" +
+                "      </shipBoxAmount>\n" +
+                "    </UpdateMissionStatus>\n" +
+                "  </soap:Body>\n" +
+                "</soap:Envelope>";
+    }
+
     /**
      * @Method      : parseReturnSetMissionHasDownStateXML
      * @Description : 
@@ -247,4 +587,80 @@ public class ProduceMissionTask {
             return null;
         }
     }
+
+    public JSONArray parseReturnUploadDataXML(String xml) {
+
+        Document doc = null;
+        if(xml == null){
+            System.out.println("调用接口出错.");
+            return null;
+        }else{
+            try {
+                doc = DocumentHelper.parseText(xml); // 将字符串转为XML
+                Element rootElt = doc.getRootElement(); // 获取根节点
+//            System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
+
+                Iterator iter = rootElt.elementIterator("Body"); // 获取根节点下的子节点 Body
+                Element recordEle = (Element) iter.next();
+
+                Iterator iter2 = recordEle.elementIterator("GetNewProduceMissionResponse");
+                Element recordEle2 = (Element) iter2.next();
+
+                Iterator GetNewMissionEarMarkResultIter = recordEle2.elementIterator("GetNewProduceMissionResult");
+//            System.out.println("GetNewMissionEarMarkResultIter>>"+GetNewMissionEarMarkResultIter.hasNext());
+                Element GetNewMissionEarMarkResultIterEle = (Element) GetNewMissionEarMarkResultIter.next();
+
+//            Iterator schemaIter = GetNewMissionEarMarkResultIterEle.elementIterator("schema");
+//            Element schemaEle = (Element) schemaIter.next();
+                Iterator diffgramIter = GetNewMissionEarMarkResultIterEle.elementIterator("diffgram");
+//            System.out.println("diffgramIter>>"+diffgramIter.hasNext());
+//            if(diffgramIter.hasNext())
+                Element diffgramEle = (Element) diffgramIter.next();
+
+                Iterator newDataSetIter = diffgramEle.elementIterator("NewDataSet");
+//            System.out.println("newDataSetIter>>"+newDataSetIter.hasNext());
+                if(!newDataSetIter.hasNext()){
+                    JSONArray emptyJa = new JSONArray();
+                    return emptyJa;
+                }
+                Element newDataSetChildEle = (Element) newDataSetIter.next();
+
+                Iterator missionIter = newDataSetChildEle.elementIterator("Mission");
+//            System.out.println("missionIter.hasNext()>>" + missionIter.hasNext());
+                // 所有数据
+                JSONArray allDataJa = new JSONArray();
+
+                while (missionIter.hasNext()) {
+                    JSONObject earMarkJo = new JSONObject();
+                    allDataJa.add(earMarkJo);
+                    Element earMarkIterEle = (Element) missionIter.next();
+                    earMarkJo.put("applyID", earMarkIterEle.elementTextTrim("ApplyID"));
+                    earMarkJo.put("orgId", earMarkIterEle.elementTextTrim("org_id"));
+                    earMarkJo.put("orgName", earMarkIterEle.elementTextTrim("org_name"));
+                    earMarkJo.put("orgAddress", earMarkIterEle.elementTextTrim("org_address"));
+                    earMarkJo.put("orgLinkman", earMarkIterEle.elementTextTrim("org_linkman"));
+                    earMarkJo.put("postCode", earMarkIterEle.elementTextTrim("postcode"));
+                    earMarkJo.put("orgTel", earMarkIterEle.elementTextTrim("org_tel"));
+                    earMarkJo.put("applyId", earMarkIterEle.elementTextTrim("ApplyID"));
+                    earMarkJo.put("assignedDate", earMarkIterEle.elementTextTrim("AssignedDate"));
+                    earMarkJo.put("earmarkAmount", earMarkIterEle.elementTextTrim("EarMarkAmount"));
+                    earMarkJo.put("realEarmarkAmount", earMarkIterEle.elementTextTrim("RealEarMarkAmount"));
+                    earMarkJo.put("missionProcessor", earMarkIterEle.elementTextTrim("MissionProcessor"));
+                    earMarkJo.put("consignmentDate", earMarkIterEle.elementTextTrim("ConsignmentDate"));
+                    earMarkJo.put("applyRegionName", earMarkIterEle.elementTextTrim("ApplyRegionName"));
+                    earMarkJo.put("animalType", earMarkIterEle.elementTextTrim("AnimalType"));
+                    earMarkJo.put("animalTypeName", earMarkIterEle.elementTextTrim("AnimalTypeName"));
+                }
+                return allDataJa;
+            } catch (DocumentException e) {
+                System.out.println("e1>>"+e.getMessage());
+                e.printStackTrace();
+                return null;
+            } catch (Exception e) {
+                System.out.println("e2>>"+e.getMessage());
+                e.printStackTrace();
+                return null;
+            }
+        }
+    }
 }

+ 2 - 1
huimv-manage/src/main/resources/application.properties

@@ -15,7 +15,8 @@ spring.profiles.active=prod
 #测试地址(19090端口)
 #webservice.url=http://atap.cadc.net.cn:19090/EarMarkManage/WebService2/ProduceMissionService.asmx?wsdl
 #正式地址(80端口)
-webservice.url=http://atap.cadc.net.cn:80/EarMarkManage/WebService2/ProduceMissionService.asmx?wsdl
+#webservice.url=http://atap.cadc.net.cn:80/EarMarkManage/WebService2/ProduceMissionService.asmx?wsdl
+webservice.url=https://atap.cadc.net.cn/EarMarkManage/WebService2/ProduceMissionService.asmx?wsdl
 
 #测试producerId
 #webservice.producerId=161374

BIN
huimv-pigfarm/huimv-pigfarm-local-device-0.0.1-SNAPSHOT.jar


+ 8 - 8
huimv-pigfarm/huimv-pigfarm-local-device/pom.xml

@@ -14,15 +14,15 @@
     <dependencies>
 
 <!--        &lt;!&ndash; JPA &ndash;&gt;-->
-<!--        <dependency>-->
-<!--            <groupId>org.springframework.boot</groupId>-->
-<!--            <artifactId>spring-boot-starter-data-jpa</artifactId>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
 <!--        &lt;!&ndash; mysql &ndash;&gt;-->
-<!--        <dependency>-->
-<!--            <groupId>mysql</groupId>-->
-<!--            <artifactId>mysql-connector-java</artifactId>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
 
     </dependencies>
 

+ 0 - 3
huimv-pigfarm/huimv-pigfarm-local-device/src/main/java/com/huimv/local/LocalDeviceApplication.java

@@ -17,10 +17,7 @@ import org.springframework.context.ApplicationContext;
 public class LocalDeviceApplication {
     public static void main(String[] args) {
         ApplicationContext applicationContext = SpringApplication.run(LocalDeviceApplication.class, args);
-        System.out.println("LocalDeviceDataServer.class");
         applicationContext.getBean(LocalDeviceDataServer.class).start();
-
-
     }
 
 }

+ 2 - 2
huimv-pigfarm/huimv-pigfarm-local-device/src/main/java/com/huimv/local/client/EchoClient.java

@@ -20,8 +20,8 @@ import java.net.InetSocketAddress;
  * @Create : 2020-12-25
  **/
 public class EchoClient {
-    private final static String HOST = "192.168.1.170";
-    private final static int PORT = 10020;
+    private final static String HOST = "36.26.62.70";
+    private final static int PORT = 10010;
 
     public static void start() {
         EventLoopGroup group = new NioEventLoopGroup();

+ 1 - 1
huimv-pigfarm/huimv-pigfarm-local-device/src/main/java/com/huimv/local/server/EchoServer.java

@@ -24,7 +24,7 @@ import java.net.InetSocketAddress;
 public class EchoServer {
 //    @Value("${socket.listen.port}")
 //    private static int port;
-    private final static int port = 10020;
+    private final static int port = 10090;
 
     public static void main(String[] args) {
         start();

+ 1 - 1
huimv-pigfarm/huimv-pigfarm-local-device/src/main/java/com/huimv/local/server/LocalDeviceDataServer.java

@@ -21,7 +21,7 @@ import java.net.InetSocketAddress;
  **/
 @Component
 public class LocalDeviceDataServer {
-    private final static int port = 10020;
+    private final static int port = 10090;
 
     public static void main(String[] args) {
         LocalDeviceDataServer dataServer = new LocalDeviceDataServer();

Разлика између датотеке није приказан због своје велике величине
+ 1 - 1
huimv-pigfarm/huimv-pigfarm-local-device/src/main/resources/application-prod.yml


Разлика између датотеке није приказан због своје велике величине
+ 35 - 1
huimv-pigfarm/huimv-pigfarm-local-device/src/main/resources/application-test.yml