Bläddra i källkod

新建耳标号展示列表,
新建下载耳标号,
新建设置耳标号写入状态,
新建设置耳标号打码状态

zhuoning 3 år sedan
förälder
incheckning
66dc62b234

+ 4 - 6
huimv-manage/src/main/java/com/huimv/manage/controller/ApplyController.java

@@ -1,13 +1,11 @@
 package com.huimv.manage.controller;
 
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.huimv.manage.service.IApplyService;
 import com.huimv.manage.util.Const;
 import com.huimv.manage.util.Result;
-import com.huimv.manage.util.ResultCode;
 import com.huimv.manage.webservice.Soap;
-import com.huimv.manage.webservice.task.NewProduceMission;
+import com.huimv.manage.webservice.task.ProduceMissionTask;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -37,7 +35,7 @@ public class ApplyController {
     @Autowired
     private Soap soap;
     @Autowired
-    private NewProduceMission newProduceMission;
+    private ProduceMissionTask produceMissionTask;
 
     /**
      * @Method      : listTask
@@ -69,7 +67,7 @@ public class ApplyController {
         log.info("producerId>>"+producerId);
         log.info("webServiceUrl>>"+webServiceUrl);
         // 从远程接口下载新任务号数据
-        JSONArray downloadApplyJa = newProduceMission.parseReturnNewMissionXML(soap.callSoap(newProduceMission.getNewMissionXML(producerId),webServiceUrl));
+        JSONArray downloadApplyJa = produceMissionTask.parseReturnNewMissionXML(soap.callSoap(produceMissionTask.getNewMissionXML(producerId),webServiceUrl));
         // test
 //        JSONArray downloadApplyJa = newProduceMission.parseApplyXML(newProduceMission.getNewMessionResult_test());
         if(downloadApplyJa == null){
@@ -106,7 +104,7 @@ public class ApplyController {
         // Step1.构造请求字串
         // Step2.发送请求传
         // Step3.请求结果入库
-        String stateBln = newProduceMission.parseReturnSetMissionHasDownStateXML(soap.callSoap(newProduceMission.getSetMissionHasDownloadXML(applyId),webServiceUrl));
+        String stateBln = produceMissionTask.parseReturnSetMissionHasDownStateXML(soap.callSoap(produceMissionTask.getSetMissionHasDownloadXML(applyId),webServiceUrl));
         if(stateBln.trim().equalsIgnoreCase("true")){
             // 修改状态
             return applyService.setMissionHasDownloadState(applyId,1);

+ 106 - 5
huimv-manage/src/main/java/com/huimv/manage/controller/EarmarkController.java

@@ -1,8 +1,14 @@
 package com.huimv.manage.controller;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import com.huimv.manage.service.IEarmarkService;
+import com.huimv.manage.util.Result;
+import com.huimv.manage.webservice.task.EarmarkTask;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.UnsupportedEncodingException;
 
 /**
  * @Project : huimv.shiwan
@@ -12,12 +18,107 @@ import org.springframework.web.bind.annotation.RestController;
  * @Author : ZhuoNing
  * @Create : 2020-12-25
  **/
+@CrossOrigin
 @RestController
-@RequestMapping(value = "/earmark")
+@Slf4j
+@RequestMapping(value = "/eartag/earmark")
 public class EarmarkController {
+    @Value("${webservice.url}")
+    private String webServiceUrl;
+//    @Value("${webservice.producerId}")
+//    private String producerId;
+//    @Autowired
+//    private Soap soap;
+    @Autowired
+    private EarmarkTask earmarkTask;
+    @Autowired
+    private IEarmarkService earmarkService;
+
+    @RequestMapping(value = "/listEarmark",method = RequestMethod.GET)
+    public Result listEarmark(@RequestParam(value = "pageSize") int pageSize){
+        //
+        return earmarkService.listEarmark(pageSize);
+    }
 
+    /**
+     * @Method      : getEarmark
+     * @Description : 下载新耳标号
+     * @Params      : [applyId]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 22:58
+     */
     @RequestMapping(value = "/getEarmark",method = RequestMethod.GET)
-    public void getEarmark(){
+    public Result getEarmark(@RequestParam(value = "applyId") int applyId) throws UnsupportedEncodingException {
+        //
+        return earmarkService.getEarmark(applyId);
+    }
+
+    /**
+     * @Method      : setUpdateDownState
+     * @Description : 设置耳标号以下载状态
+     * @Params      : [earmarkIDs]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 22:59
+     */
+    @RequestMapping(value = "/setUpdateDownState",method = RequestMethod.POST)
+    public Result setUpdateDownState(@RequestParam(value = "earmarkIDs") String earmarkIDs) throws UnsupportedEncodingException {
+        //
+        return earmarkService.setUpdateDownState(earmarkIDs);
+    }
 
+    /**
+     * @Method      : setProduceState
+     * @Description : 设置生产状态
+     * @Params      : [earmarkIDs]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 23:55
+     */
+    @RequestMapping(value = "/setProduceState",method = RequestMethod.POST)
+    public Result setProduceState(@RequestParam(value = "ids") String ids,@RequestParam(value = "state") int state){
+        //
+        return earmarkService.setProduceState(ids,state);
     }
+
+    /**
+     * @Method      : setWriteState
+     * @Description : 设置写入状态
+     * @Params      : [ids, state]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/30       
+     * @Time        : 0:02
+     */
+    @RequestMapping(value = "/setWriteState",method = RequestMethod.POST)
+    public Result setWriteState(@RequestParam(value = "ids") String ids,@RequestParam(value = "state") int state){
+        //
+        return earmarkService.setWriteState(ids,state);
+    }
+
+    /**
+     * @Method      : setPrintState
+     * @Description : 设置打码状态
+     * @Params      : [ids, state]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/30       
+     * @Time        : 0:03
+     */
+    @RequestMapping(value = "/setPrintState",method = RequestMethod.POST)
+    public Result setPrintState(@RequestParam(value = "ids") String ids,@RequestParam(value = "state") int state){
+        //
+        return earmarkService.setPrintState(ids,state);
+    }
+
+
 }

+ 2 - 2
huimv-manage/src/main/java/com/huimv/manage/controller/PackageController.java

@@ -3,7 +3,7 @@ package com.huimv.manage.controller;
 import com.huimv.manage.service.IPackageService;
 import com.huimv.manage.util.Result;
 import com.huimv.manage.webservice.Soap;
-import com.huimv.manage.webservice.task.NewPackage;
+import com.huimv.manage.webservice.task.PackageTask;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -31,7 +31,7 @@ public class PackageController {
     @Autowired
     private Soap soap;
     @Autowired
-    private NewPackage newPackage;
+    private PackageTask packageTask;
     @Autowired
     private IPackageService packageService;
 

+ 188 - 0
huimv-manage/src/main/java/com/huimv/manage/dao/entity/EtEarmarkEntity.java

@@ -0,0 +1,188 @@
+package com.huimv.manage.dao.entity;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "et_earmark")
+public class EtEarmarkEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    @Column(name = "earmark_id")
+    private String earmarkId;
+
+    @Column(name = "package_id")
+    private String packageId;
+
+    @Column(name = "earmark_number")
+    private String earmarkNumber;
+
+    @Column(name = "apply_id")
+    private String applyId;
+
+    @Column(name = "earmark_data")
+    private String earmarkData;
+
+    @Column(name = "set_write_state")
+    private Integer setWriteState;
+
+    @Column(name = "set_write_date")
+    private Timestamp setWriteDate;
+
+    @Column(name = "set_print_state")
+    private Integer setPrintState;
+
+    @Column(name = "set_print_date")
+    private Timestamp setPrintDate;
+
+    @Column(name = "set_down_state")
+    private Integer setDownState;
+
+    @Column(name = "set_down_date")
+    private Timestamp setDownDate;
+
+    @Column(name = "set_upload_state")
+    private Integer setUploadState;
+
+    @Column(name = "set_upload_date")
+    private Timestamp setUploadDate;
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setEarmarkId(String earmarkId) {
+        this.earmarkId = earmarkId;
+    }
+
+    public String getEarmarkId() {
+        return earmarkId;
+    }
+
+    public void setPackageId(String packageId) {
+        this.packageId = packageId;
+    }
+
+    public String getPackageId() {
+        return packageId;
+    }
+
+    public void setEarmarkNumber(String earmarkNumber) {
+        this.earmarkNumber = earmarkNumber;
+    }
+
+    public String getEarmarkNumber() {
+        return earmarkNumber;
+    }
+
+    public void setApplyId(String applyId) {
+        this.applyId = applyId;
+    }
+
+    public String getApplyId() {
+        return applyId;
+    }
+
+    public void setEarmarkData(String earmarkData) {
+        this.earmarkData = earmarkData;
+    }
+
+    public String getEarmarkData() {
+        return earmarkData;
+    }
+
+    public void setSetWriteState(Integer setWriteState) {
+        this.setWriteState = setWriteState;
+    }
+
+    public Integer getSetWriteState() {
+        return setWriteState;
+    }
+
+    public void setSetWriteDate(Timestamp setWriteDate) {
+        this.setWriteDate = setWriteDate;
+    }
+
+    public Timestamp getSetWriteDate() {
+        return setWriteDate;
+    }
+
+    public void setSetPrintState(Integer setPrintState) {
+        this.setPrintState = setPrintState;
+    }
+
+    public Integer getSetPrintState() {
+        return setPrintState;
+    }
+
+    public void setSetPrintDate(Timestamp setPrintDate) {
+        this.setPrintDate = setPrintDate;
+    }
+
+    public Timestamp getSetPrintDate() {
+        return setPrintDate;
+    }
+
+    public void setSetDownState(Integer setDownState) {
+        this.setDownState = setDownState;
+    }
+
+    public Integer getSetDownState() {
+        return setDownState;
+    }
+
+    public void setSetDownDate(Timestamp setDownDate) {
+        this.setDownDate = setDownDate;
+    }
+
+    public Timestamp getSetDownDate() {
+        return setDownDate;
+    }
+
+    public void setSetUploadState(Integer setUploadState) {
+        this.setUploadState = setUploadState;
+    }
+
+    public Integer getSetUploadState() {
+        return setUploadState;
+    }
+
+    public void setSetUploadDate(Timestamp setUploadDate) {
+        this.setUploadDate = setUploadDate;
+    }
+
+    public Timestamp getSetUploadDate() {
+        return setUploadDate;
+    }
+
+    @Override
+    public String toString() {
+        return "EtEarmarkEntity{" +
+                "id=" + id + '\'' +
+                "earmarkId=" + earmarkId + '\'' +
+                "packageId=" + packageId + '\'' +
+                "earmarkNumber=" + earmarkNumber + '\'' +
+                "applyId=" + applyId + '\'' +
+                "earmarkData=" + earmarkData + '\'' +
+                "setWriteState=" + setWriteState + '\'' +
+                "setWriteDate=" + setWriteDate + '\'' +
+                "setPrintState=" + setPrintState + '\'' +
+                "setPrintDate=" + setPrintDate + '\'' +
+                "setDownState=" + setDownState + '\'' +
+                "setDownDate=" + setDownDate + '\'' +
+                "setUploadState=" + setUploadState + '\'' +
+                "setUploadDate=" + setUploadDate + '\'' +
+                '}';
+    }
+}

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

@@ -0,0 +1,14 @@
+package com.huimv.manage.dao.repo;
+
+import com.huimv.manage.dao.entity.EtEarmarkEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+
+public interface EarmarkRepo extends JpaRepository<EtEarmarkEntity, Integer>, JpaSpecificationExecutor<EtEarmarkEntity> {
+
+    @Query(nativeQuery = true , value = "SELECT * FROM et_earmark ORDER BY id DESC Limit ?1")
+    List<EtEarmarkEntity> listEarmark(int pageSize);
+}

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

@@ -0,0 +1,25 @@
+package com.huimv.manage.service;
+
+import com.huimv.manage.util.Result;
+
+import java.io.UnsupportedEncodingException;
+
+public interface IEarmarkService {
+    //
+    Result listEarmark(int pageSize);
+
+    //
+    Result getEarmark(int applyId) throws UnsupportedEncodingException;
+
+    //
+    Result setUpdateDownState(String earmarkIDs) throws UnsupportedEncodingException;
+
+    //设置生产状态
+    Result setProduceState(String ids,int state);
+
+    //设置写入状态
+    Result setWriteState(String ids, int state);
+
+    //设置打码状态
+    Result setPrintState(String ids, int state);
+}

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

@@ -0,0 +1,239 @@
+package com.huimv.manage.service.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.manage.dao.entity.EtApplyEntity;
+import com.huimv.manage.dao.entity.EtEarmarkEntity;
+import com.huimv.manage.dao.entity.EtPackageEntity;
+import com.huimv.manage.dao.repo.EarmarkRepo;
+import com.huimv.manage.dao.repo.PackageRepo;
+import com.huimv.manage.service.IEarmarkService;
+import com.huimv.manage.util.Const;
+import com.huimv.manage.util.Result;
+import com.huimv.manage.util.ResultCode;
+import com.huimv.manage.webservice.Soap;
+import com.huimv.manage.webservice.task.EarmarkTask;
+import com.huimv.manage.webservice.task.PackageTask;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.ExampleMatcher;
+import org.springframework.stereotype.Service;
+
+import java.io.UnsupportedEncodingException;
+import java.sql.Timestamp;
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Service
+public class EarmarkServiceImpl implements IEarmarkService {
+    @Value("${webservice.url}")
+    private String webServiceUrl;
+    @Autowired
+    private EarmarkRepo earmarkRepo;
+    @Autowired
+    private EarmarkTask earmarkTask;
+    @Autowired
+    private Soap soap;
+
+    /**
+     * @Method      : listEarmark
+     * @Description : 展示列表
+     * @Params      : [pageSize]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 21:14
+     */
+    @Override
+    public Result listEarmark(int pageSize) {
+        //
+        List<EtEarmarkEntity> earmarkEntityList = earmarkRepo.listEarmark(pageSize);
+        return new Result(ResultCode.SUCCESS,earmarkEntityList);
+    }
+
+    /**
+     * @Method      : getEarmark
+     * @Description : 下载耳标号
+     * @Params      : [applyId]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 21:14
+     */
+    @Override
+    public Result getEarmark(int applyId) throws UnsupportedEncodingException {
+        // 构造请求
+        String requestXML = earmarkTask.getRequestEarmarkXML(applyId);
+        System.out.println("requestXML="+requestXML);
+
+        // 调用接口返回结果
+        String earMarkReponseXML = soap.callSoap(requestXML,webServiceUrl);
+        System.out.println("earMarkReponseXML="+earMarkReponseXML);
+
+        // 解析结果
+        JSONArray downloadEarmarkJa = earmarkTask.parseEarMarkReponseXML(earMarkReponseXML);
+        // 耳标入库
+        JSONArray newEarmarkJa = filterEarmark(downloadEarmarkJa);
+        if(newEarmarkJa.size() == 0){
+            return new Result(Const.CODE_NO_NEW_EARMARK,Const.NO_NEW_EARMARK,false);
+        }
+
+        for(int a=0;a<newEarmarkJa.size();a++){
+            JSONObject earmarkJo = newEarmarkJa.getJSONObject(a);
+            EtEarmarkEntity earmarkEntity = new EtEarmarkEntity();
+            earmarkEntity.setEarmarkId(earmarkJo.getString("earmarkId"));
+            earmarkEntity.setPackageId(earmarkJo.getString("packageId"));
+            earmarkEntity.setEarmarkNumber(earmarkJo.getString("earmarkNumber"));
+            earmarkEntity.setApplyId(earmarkJo.getString("applyId"));
+            earmarkEntity.setEarmarkData(earmarkJo.getString("earmarkData"));
+            earmarkRepo.saveAndFlush(earmarkEntity);
+        }
+        return new Result(Const.CODE_OK,"本次下载"+newEarmarkJa.size()+"个新耳标号数据.",false);
+    }
+
+    /**
+     * @Method      : setUpdateDownState
+     * @Description : 设置耳标已下载状态
+     * @Params      : [earmarkIDs]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 23:00
+     */
+    @Override
+    public Result setUpdateDownState(String earmarkIDs) throws UnsupportedEncodingException {
+        //构造请求字符串
+        String requestXML = earmarkTask.getUpdateDownStateRequestXML(earmarkIDs);
+        //远程调用返回结果
+        String reponseXML = "";
+        reponseXML = soap.callSoap(requestXML,webServiceUrl);
+        // test
+//        reponseXML = earmarkTask.TestParseUpdateDownStateXML();
+        //解析
+        String updateDownState = earmarkTask.parseUpdateDownStateXML(reponseXML);
+        // 入库
+        if(updateDownState.trim().equalsIgnoreCase("false")){
+            return new Result(Const.CODE_UPDATE_EARMARK_DOWN_STATE_FAIL,Const.UPDATE_EARMARK_DOWN_STATE_FAIL,false);
+        }else{
+            String[] earmarkIDArray = earmarkIDs.split(",");
+            for(int a=0;a<earmarkIDArray.length;a++){
+                EtEarmarkEntity earmarkEntity = new EtEarmarkEntity();
+                earmarkEntity.setEarmarkId(earmarkIDArray[a]);
+                ExampleMatcher matcher = ExampleMatcher.matching()
+                        .withMatcher("earmark_id" ,ExampleMatcher.GenericPropertyMatchers.contains());
+                Example example = Example.of(earmarkEntity,matcher);
+                Optional optional= earmarkRepo.findOne(example);
+                if (optional.isPresent()){
+                    EtEarmarkEntity earmarkEntity1  = (EtEarmarkEntity) optional.get();
+                    earmarkEntity1.setSetDownState(1);
+                    earmarkEntity1.setSetDownDate(new Timestamp(new Date().getTime()));
+                    earmarkRepo.saveAndFlush(earmarkEntity1);
+                }else{
+                    return new Result(Const.CODE_NO_RECORD,Const.NO_RECORD,false);
+                }
+            }
+            return new Result(ResultCode.SUCCESS);
+        }
+    }
+
+    /**
+     * @Method      : setProduceState
+     * @Description : 设置生产状态
+     * @Params      : [ids]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 23:56
+     */
+    @Override
+    public Result setProduceState(String ids,int state) {
+        String[] idArray = ids.split(",");
+        for(int a=0;a<idArray.length;a++){
+            Optional optional = earmarkRepo.findById(Integer.parseInt(idArray[a]));
+            EtEarmarkEntity earmarkEntity = (EtEarmarkEntity) optional.get();
+            earmarkEntity.setSetWriteState(state);
+            earmarkEntity.setSetWriteDate(new Timestamp(new Date().getTime()));
+            earmarkRepo.saveAndFlush(earmarkEntity);
+        }
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    /**
+     * @Method      : setWriteState
+     * @Description : 设置写入时间
+     * @Params      : [ids, state]
+     * @Return      : com.huimv.manage.util.Result
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/30
+     * @Time        : 0:02
+     */
+    @Override
+    public Result setWriteState(String ids, int state) {
+        String[] idArray = ids.split(",");
+        for(int a=0;a<idArray.length;a++){
+            Optional optional = earmarkRepo.findById(Integer.parseInt(idArray[a]));
+            EtEarmarkEntity earmarkEntity = (EtEarmarkEntity) optional.get();
+            earmarkEntity.setSetWriteState(state);
+            earmarkEntity.setSetWriteDate(new Timestamp(new Date().getTime()));
+            earmarkRepo.saveAndFlush(earmarkEntity);
+        }
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    /**
+     * @Method      : setPrintState
+     * @Description : 设置打码状态
+     * @Params      : [ids, state]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/30       
+     * @Time        : 0:04
+     */
+    @Override
+    public Result setPrintState(String ids, int state) {
+        String[] idArray = ids.split(",");
+        for(int a=0;a<idArray.length;a++){
+            Optional optional = earmarkRepo.findById(Integer.parseInt(idArray[a]));
+            EtEarmarkEntity earmarkEntity = (EtEarmarkEntity) optional.get();
+            earmarkEntity.setSetPrintState(state);
+            earmarkEntity.setSetPrintDate(new Timestamp(new Date().getTime()));
+            earmarkRepo.saveAndFlush(earmarkEntity);
+        }
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    //过滤已经存在的耳标号
+    private JSONArray filterEarmark(JSONArray downloadEarmarkJa) {
+        JSONArray newEarmarkJa = new JSONArray();
+        for(int a=0;a<downloadEarmarkJa.size();a++){
+            JSONObject downloadEarmarkJo = downloadEarmarkJa.getJSONObject(a);
+            String earmarkId = downloadEarmarkJo.getString("earmarkId");
+
+            EtEarmarkEntity earmarkEntity = new EtEarmarkEntity();
+            earmarkEntity.setEarmarkId(earmarkId);
+            ExampleMatcher matcher = ExampleMatcher.matching()
+                    .withMatcher("earmark_id" ,ExampleMatcher.GenericPropertyMatchers.contains());
+            Example example = Example.of(earmarkEntity,matcher);
+            if(!earmarkRepo.exists(example)){
+                newEarmarkJa.add(downloadEarmarkJo);
+            }
+        }
+        return newEarmarkJa;
+    }
+}

+ 16 - 7
huimv-manage/src/main/java/com/huimv/manage/service/impl/PackageServiceImpl.java

@@ -9,7 +9,7 @@ import com.huimv.manage.util.Const;
 import com.huimv.manage.util.Result;
 import com.huimv.manage.util.ResultCode;
 import com.huimv.manage.webservice.Soap;
-import com.huimv.manage.webservice.task.NewPackage;
+import com.huimv.manage.webservice.task.PackageTask;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -39,7 +39,7 @@ public class PackageServiceImpl implements IPackageService {
     @Autowired
     private PackageRepo packageRepo;
     @Autowired
-    private NewPackage newPackage;
+    private PackageTask packageTask;
     @Autowired
     private Soap soap;
 
@@ -65,11 +65,11 @@ public class PackageServiceImpl implements IPackageService {
         // Step2.新批次数据入库
 
         //调用接口获取远程数据
-        String answerXML = soap.callSoap(newPackage.getNewPackageRequestXML(applyId),webServiceUrl);
+        String answerXML = soap.callSoap(packageTask.getNewPackageRequestXML(applyId),webServiceUrl);
         log.info("应答文件="+answerXML);
 
         //解析应答数据
-        JSONArray downPackageJa = newPackage.parseNewPackageAnswerXML(answerXML);
+        JSONArray downPackageJa = packageTask.parseNewPackageAnswerXML(answerXML);
         System.out.println("downPackageJa.zie="+downPackageJa.size());
 
         // 过滤已经存在批次数据
@@ -108,18 +108,17 @@ public class PackageServiceImpl implements IPackageService {
         String[] idArray = ids.split(",");
 
         // 构造请求XML
-        String requestXML = newPackage.getReturnPackageHasDownloadXML(packageIdArray);
+        String requestXML = packageTask.getReturnPackageHasDownloadXML(packageIdArray);
         String answerXML = "";
         // 提交请求
       answerXML = soap.callSoap(requestXML,webServiceUrl);
         // 解析报文
-        String setReturnState = newPackage.parseAnswerXML(answerXML);
+        String setReturnState = packageTask.parseAnswerXML(answerXML);
         if(setReturnState.trim().equalsIgnoreCase("false")){
             return new Result(Const.CODE_UPDATE_PACKAGE_STATE_DOWN_FAIL,Const.UPDATE_PACKAGE_DOWN_STATE_FAIL,false);
         }
         // 将返回结果入库
         for(int a=0;a<idArray.length;a++){
-            System.out.println("idArray["+a+"]>>"+idArray[a]);
             Optional optional = packageRepo.findById(Integer.parseInt(idArray[a]));
             if(optional.isPresent()){
                 EtPackageEntity packageEntity = (EtPackageEntity) optional.get();
@@ -153,6 +152,16 @@ public class PackageServiceImpl implements IPackageService {
         return newApplyJa;
     }
 
+    /**
+     * @Method      : setProduceState
+     * @Description : 设置生产状态
+     * @Params      : [ids, state]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 23:57
+     */
     @Override
     public Result setProduceState(String ids, int state) {
         String[] idArray = ids.split(",");

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

@@ -30,5 +30,11 @@ public final class Const {
 
     public static final String SAVE_NEW_PACKAGE = "保存新批次成功.";
     public static final Integer CODE_UPDATE_PACKAGE_STATE_DOWN_FAIL = 10006;
-    public static final String UPDATE_PACKAGE_DOWN_STATE_FAIL = "设置返回批次已下载状态失败.";
+    public static final String UPDATE_PACKAGE_DOWN_STATE_FAIL = "设置指定批次为已下载状态失败.";
+
+    public static final Integer CODE_NO_NEW_EARMARK = 10007;
+    public static final String NO_NEW_EARMARK = "暂时没有新的耳标号下载.";
+
+    public static final Integer CODE_UPDATE_EARMARK_DOWN_STATE_FAIL = 10008;
+    public static final String UPDATE_EARMARK_DOWN_STATE_FAIL = "设置指定耳标号为已下载状态失败.";
 }

+ 167 - 0
huimv-manage/src/main/java/com/huimv/manage/webservice/task/EarmarkTask.java

@@ -0,0 +1,167 @@
+package com.huimv.manage.webservice.task;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
+import org.springframework.stereotype.Component;
+
+import java.util.Iterator;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+public class EarmarkTask {
+
+    /**
+     * @Method      : getRequestEarmarkXML
+     * @Description : 构造请求内容
+     * @Params      : [applyId]
+     * @Return      : java.lang.String
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 21:54
+     */
+    public String getRequestEarmarkXML(int applyId) {
+        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" +
+                "    <GetNewMissionEarMark xmlns=\"http://tempuri.org/\">\n" +
+                "      <applyID>"+applyId+"</applyID>\n" +
+                "    </GetNewMissionEarMark>\n" +
+                "  </soap:Body>\n" +
+                "</soap:Envelope>";
+    }
+
+    /**
+     * @Method      : parseearMarkReponseXML
+     * @Description : 解析返回结果
+     * @Params      : [earMarkReponseXML]
+     * @Return      : com.alibaba.fastjson.JSONArray
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 21:59
+     */
+    public JSONArray parseEarMarkReponseXML(String earMarkReponseXML) {
+        Document doc = null;
+        try {
+            doc = DocumentHelper.parseText(earMarkReponseXML); // 将字符串转为XML
+            Element rootElt = doc.getRootElement(); // 获取根节点
+//            System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
+
+            Iterator iter = rootElt.elementIterator("Body"); // 获取根节点下的子节点 Body
+//            System.out.println("iter.hasNext:"+iter.hasNext());
+            Element recordEle = (Element) iter.next();
+//            System.out.println("name="+recordEle.getName());
+
+            Iterator iter2 = recordEle.elementIterator("GetNewMissionEarMarkResponse");
+//            System.out.println("iter2.hasNext:"+iter2.hasNext());
+            Element recordEle2 = (Element) iter2.next();
+//            System.out.println("name="+recordEle2.getName());
+
+            Iterator GetNewMissionEarMarkResultIter = recordEle2.elementIterator("GetNewMissionEarMarkResult");
+//            System.out.println("GetNewMissionEarMarkResultIter.hasNext:"+GetNewMissionEarMarkResultIter.hasNext());
+            Element GetNewMissionEarMarkResultIterEle = (Element) GetNewMissionEarMarkResultIter.next();
+//            System.out.println("name="+GetNewMissionEarMarkResultIterEle.getName());
+
+            Iterator schemaIter = GetNewMissionEarMarkResultIterEle.elementIterator("schema");
+//            System.out.println("schemaIter.hasNext:"+schemaIter.hasNext());
+            Element schemaEle = (Element) schemaIter.next();
+//            System.out.println("name="+schemaEle.getName());
+            Iterator diffgramIter = GetNewMissionEarMarkResultIterEle.elementIterator("diffgram");
+//            System.out.println("diffgramIter.hasNext:"+diffgramIter.hasNext());
+            Element diffgramEle = (Element) diffgramIter.next();
+//            System.out.println("name="+diffgramEle.getName());
+
+            Iterator newDataSetIter = diffgramEle.elementIterator("NewDataSet");
+//            System.out.println("newDataSetIter.hasNext:"+newDataSetIter.hasNext());
+            Element newDataSetChildEle = (Element) newDataSetIter.next();
+//            System.out.println("name="+newDataSetChildEle.getName());
+
+            Iterator earMarkIter = newDataSetChildEle.elementIterator("EarMark");
+//            System.out.println("newDataSetIter.hasNext:"+newDataSetIter.hasNext());
+            // 所有数据
+            JSONArray allDataJa = new JSONArray();
+
+            while (earMarkIter.hasNext()) {
+                JSONObject earMarkJo = new JSONObject();
+                allDataJa.add(earMarkJo);
+                Element earMarkIterEle = (Element) earMarkIter.next();
+                earMarkJo.put("earmarkId",earMarkIterEle.elementTextTrim("EarMarkID"));
+                earMarkJo.put("packageId",earMarkIterEle.elementTextTrim("PackageID"));
+                earMarkJo.put("earmarkNumber",earMarkIterEle.elementTextTrim("EarMarkNumber"));
+                earMarkJo.put("applyId",earMarkIterEle.elementTextTrim("ApplyID"));
+                earMarkJo.put("earmarkData",earMarkIterEle.elementTextTrim("EarMarkData"));
+            }
+            return allDataJa;
+        } catch (DocumentException e) {
+            e.printStackTrace();
+            return null;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    //构造请求内容
+    public String getUpdateDownStateRequestXML(String earmarkIDs) {
+        String[] earmarkIdArray = earmarkIDs.split(",");
+        StringBuilder idSb = new StringBuilder();
+        for(int a=0;a<earmarkIdArray.length;a++){
+            idSb.append("<long>"+earmarkIdArray[a]+"</long>");
+        }
+        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" +
+                "    <SetEarMarksHasDownload xmlns=\"http://tempuri.org/\">\n" +
+                "      <earMarkIDs>\n" +
+                idSb.toString()+
+                "      </earMarkIDs>\n" +
+                "    </SetEarMarksHasDownload>\n" +
+                "  </soap:Body>\n" +
+                "</soap:Envelope>";
+    }
+
+    //解析设置耳标已下载状态
+    public String parseUpdateDownStateXML(String answerXML) {
+        //解析生成数据
+        Document doc = null;
+        try {
+            doc = DocumentHelper.parseText(answerXML); // 将字符串转为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("SetEarMarksHasDownloadResponse");
+            Element recordEle2 = (Element) iter2.next();
+            return recordEle2.elementTextTrim("SetEarMarksHasDownloadResult");
+        } catch (DocumentException e) {
+            e.printStackTrace();
+            return null;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    //test
+    public String TestParseUpdateDownStateXML() {
+        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" +
+                        "    <SetEarMarksHasDownloadResponse xmlns=\"http://tempuri.org/\">\n" +
+                        "      <SetEarMarksHasDownloadResult>true</SetEarMarksHasDownloadResult>\n" +
+                        "    </SetEarMarksHasDownloadResponse>\n" +
+                        "  </soap:Body>\n" +
+                        "</soap:Envelope>";
+    }
+}

+ 1 - 1
huimv-manage/src/main/java/com/huimv/manage/webservice/task/NewPackage.java

@@ -19,7 +19,7 @@ import java.util.Iterator;
  * @Create : 2020-12-25
  **/
 @Component
-public class NewPackage {
+public class PackageTask {
 
     /**
      * @Method      : getNewPackageRequestXML

+ 1 - 1
huimv-manage/src/main/java/com/huimv/manage/webservice/task/NewProduceMission.java

@@ -19,7 +19,7 @@ import java.util.Iterator;
  * @Create : 2020-12-25
  **/
 @Component
-public class NewProduceMission {
+public class ProduceMissionTask {
 
     /**
      * @Method : getNewMission