فهرست منبع

新建批次展示列表,
新建下载批次,
新建返回下载状态,
新建设置生产状态

zhuoning 3 سال پیش
والد
کامیت
a3f8ddb2c6

+ 42 - 16
huimv-manage/src/main/java/com/huimv/manage/controller/ApplyController.java

@@ -3,6 +3,7 @@ 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;
@@ -10,10 +11,7 @@ import com.huimv.manage.webservice.task.NewProduceMission;
 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.CrossOrigin;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.io.UnsupportedEncodingException;
 
@@ -28,7 +26,7 @@ import java.io.UnsupportedEncodingException;
 @CrossOrigin
 @RestController
 @Slf4j
-@RequestMapping(value = "/apply")
+@RequestMapping(value = "/eartag/apply")
 public class ApplyController {
     @Value("${webservice.url}")
     private String webServiceUrl;
@@ -70,22 +68,50 @@ public class ApplyController {
     public Result getNewTask() throws UnsupportedEncodingException {
         log.info("producerId>>"+producerId);
         log.info("webServiceUrl>>"+webServiceUrl);
-        //
-        JSONArray applyJa = newProduceMission.parseApplyXML(soap.callSoap(newProduceMission.getNewMissionText(producerId),webServiceUrl));
-        //
-//        JSONArray applyJa = newProduceMission.parseApplyXML(newProduceMission.getNewMessionResult());
-        if(applyJa.size() > 0){
-//            System.out.println("获取任务号:"+applyJa.size());
-//            for(int a=0;a<applyJa.size();a++){
-//                JSONObject applyJo = applyJa.getJSONObject(a);
+        // 从远程接口下载新任务号数据
+        JSONArray downloadApplyJa = newProduceMission.parseReturnNewMissionXML(soap.callSoap(newProduceMission.getNewMissionXML(producerId),webServiceUrl));
+        // test
+//        JSONArray downloadApplyJa = newProduceMission.parseApplyXML(newProduceMission.getNewMessionResult_test());
+        if(downloadApplyJa == null){
+            return new Result(Const.CODE_APPLY_PARSE,Const.APPLY_PARSE_ERROR,false);
+        }
+        // 过滤已经入库的任务号
+        JSONArray newApplyJa = applyService.filterExistApply(downloadApplyJa);
+        if(newApplyJa.size() > 0){
+            // test
+//            System.out.println("获取任务号:"+newApplyJa.size());
+//            for(int a=0;a<newApplyJa.size();a++){
+//                JSONObject applyJo = newApplyJa.getJSONObject(a);
 //                System.out.println(applyJo);
 //            }
             // 保存新任务(号)
-            return applyService.saveNewMission(applyJa);
+            return applyService.saveNewMission(newApplyJa);
         }else{
-            return new Result(ResultCode.SUCCESS,"目前暂无新任务.");
+            return new Result(Const.CODE_APPLY_NO_NEW, Const.APPLY_NO_NEW,false);
         }
     }
 
-
+    /**
+     * @Method      : setReturnDownloadState
+     * @Description : 设置返回任务已下载
+     * @Params      : [applyId]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 11:08
+     */
+    @RequestMapping(value = "/setReturnDownloadState",method = RequestMethod.POST)
+    public Result setReturnDownloadState(@RequestParam(value = "applyId") int applyId) throws UnsupportedEncodingException {
+        // Step1.构造请求字串
+        // Step2.发送请求传
+        // Step3.请求结果入库
+        String stateBln = newProduceMission.parseReturnSetMissionHasDownStateXML(soap.callSoap(newProduceMission.getSetMissionHasDownloadXML(applyId),webServiceUrl));
+        if(stateBln.trim().equalsIgnoreCase("true")){
+            // 修改状态
+            return applyService.setMissionHasDownloadState(applyId,1);
+        }else{
+            return new Result(Const.CODE_UPDATE_STATE_FAIL,Const.UPDATE_STATE_FAIL,false);
+        }
+    }
 }

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

@@ -1,5 +1,16 @@
 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 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
  * @Package : com.huimv.biosafety.uface.controller
@@ -8,5 +19,87 @@ package com.huimv.manage.controller;
  * @Author : ZhuoNing
  * @Create : 2020-12-25
  **/
+@CrossOrigin
+@RestController
+@Slf4j
+@RequestMapping(value = "/eartag/package")
 public class PackageController {
+    @Value("${webservice.url}")
+    private String webServiceUrl;
+    @Value("${webservice.producerId}")
+    private String producerId;
+    @Autowired
+    private Soap soap;
+    @Autowired
+    private NewPackage newPackage;
+    @Autowired
+    private IPackageService packageService;
+
+    /**
+     * @Method      : listPackage
+     * @Description : 展示列表
+     * @Params      : [pageSize]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 15:37
+     */
+    @RequestMapping(value = "/listPackage",method = RequestMethod.GET)
+    public Result listPackage(@RequestParam(value = "pageSize")int pageSize){
+        //
+        return packageService.listPackage(pageSize);
+    }
+
+    /**
+     * @Method      : getNewPackage
+     * @Description : 根据任务号下载新批次
+     * @Params      : [applyId]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 15:42
+     */
+    @RequestMapping(value = "/getNewPackage",method = RequestMethod.GET)
+    public Result getNewPackage(@RequestParam(value = "applyId") int applyId) throws UnsupportedEncodingException {
+        //
+        return packageService.getNewPackage(applyId);
+    }
+
+    /**
+     * @Method      : setReturnDownloadState
+     * @Description : 设置返回批次已下载状态
+     * @Params      : [packageIds, ids]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 18:51
+     */
+    @RequestMapping(value = "/setReturnDownloadState",method = RequestMethod.POST)
+    public Result setReturnDownloadState(@RequestParam(value = "packageIds") String packageIds,@RequestParam(value = "ids") String ids) throws UnsupportedEncodingException {
+        //
+        return packageService.setReturnDownloadState(packageIds,ids);
+    }
+
+    /**
+     * @Method      : setProduceState
+     * @Description : 设置生产状态
+     * @Params      : []
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 19:22
+     */
+    @RequestMapping(value = "/setProduceState",method = RequestMethod.POST)
+    public Result setProduceState(@RequestParam(value = "ids") String ids,@RequestParam(value = "state") int state){
+        //
+        return packageService.setProduceState(ids,state);
+    }
+
+
+
+
 }

+ 138 - 0
huimv-manage/src/main/java/com/huimv/manage/dao/entity/EtPackageEntity.java

@@ -0,0 +1,138 @@
+package com.huimv.manage.dao.entity;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "et_package")
+public class EtPackageEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    @Column(name = "package_id")
+    private Integer packageId;
+
+    @Column(name = "package_number")
+    private String packageNumber;
+
+    @Column(name = "apply_id")
+    private Integer applyId;
+
+    @Column(name = "package_data")
+    private String packageData;
+
+    public Integer getProduceState() {
+        return produceState;
+    }
+
+    public void setProduceState(Integer produceState) {
+        this.produceState = produceState;
+    }
+
+    public Timestamp getProduceStateDate() {
+        return produceStateDate;
+    }
+
+    public void setProduceStateDate(Timestamp produceStateDate) {
+        this.produceStateDate = produceStateDate;
+    }
+
+    @Column(name = "set_down_state")
+    private Integer setDownState;
+
+    @Column(name = "set_down_state_date")
+    private Timestamp setDownStateDate;
+
+    @Column(name = "download_date")
+    private Timestamp downloadDate;
+
+    @Column(name = "produce_state")
+    private Integer produceState;
+
+    @Column(name = "produce_state_date")
+    private Timestamp produceStateDate;
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setPackageId(Integer packageId) {
+        this.packageId = packageId;
+    }
+
+    public Integer getPackageId() {
+        return packageId;
+    }
+
+    public void setPackageNumber(String packageNumber) {
+        this.packageNumber = packageNumber;
+    }
+
+    public String getPackageNumber() {
+        return packageNumber;
+    }
+
+    public void setApplyId(Integer applyId) {
+        this.applyId = applyId;
+    }
+
+    public Integer getApplyId() {
+        return applyId;
+    }
+
+    public void setPackageData(String packageData) {
+        this.packageData = packageData;
+    }
+
+    public String getPackageData() {
+        return packageData;
+    }
+
+    public void setSetDownState(Integer setDownState) {
+        this.setDownState = setDownState;
+    }
+
+    public Integer getSetDownState() {
+        return setDownState;
+    }
+
+    public void setSetDownStateDate(Timestamp setDownStateDate) {
+        this.setDownStateDate = setDownStateDate;
+    }
+
+    public Timestamp getSetDownStateDate() {
+        return setDownStateDate;
+    }
+
+    public void setDownloadDate(Timestamp downloadDate) {
+        this.downloadDate = downloadDate;
+    }
+
+    public Timestamp getDownloadDate() {
+        return downloadDate;
+    }
+
+    @Override
+    public String toString() {
+        return "EtPackageEntity{" +
+                "id=" + id + '\'' +
+                "packageId=" + packageId + '\'' +
+                "packageNumber=" + packageNumber + '\'' +
+                "applyId=" + applyId + '\'' +
+                "packageData=" + packageData + '\'' +
+                "setDownState=" + setDownState + '\'' +
+                "setDownStateDate=" + setDownStateDate + '\'' +
+                "downloadDate=" + downloadDate + '\'' +
+                '}';
+    }
+}

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

@@ -0,0 +1,17 @@
+package com.huimv.manage.dao.repo;
+
+import com.huimv.manage.dao.entity.EtPackageEntity;
+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 PackageRepo extends JpaRepository<EtPackageEntity, Integer>, JpaSpecificationExecutor<EtPackageEntity> {
+    //
+    @Query(nativeQuery = true , value = "SELECT * FROM et_package ORDER BY id DESC Limit ?1")
+    List<EtPackageEntity> listPackage(int pageSize);
+
+    @Query(nativeQuery = true , value = "UPDATE et_package SET produce_state=1 WHERE id=?1")
+    void updateProduceState(String id, int state);
+}

+ 6 - 0
huimv-manage/src/main/java/com/huimv/manage/service/IApplyService.java

@@ -12,4 +12,10 @@ public interface IApplyService {
 
     // 保存新任务(号)
     Result saveNewMission(JSONArray applyJa);
+
+    // 过滤已经入库的任务号
+    JSONArray filterExistApply(JSONArray downloadApplyJa);
+
+    // 修改任务状态信息
+    Result setMissionHasDownloadState(int applyId, int id);
 }

+ 19 - 0
huimv-manage/src/main/java/com/huimv/manage/service/IPackageService.java

@@ -0,0 +1,19 @@
+package com.huimv.manage.service;
+
+import com.huimv.manage.util.Result;
+
+import java.io.UnsupportedEncodingException;
+
+public interface IPackageService {
+    //展示列表
+    Result listPackage(int pageSize);
+
+    //下载新批次
+    Result getNewPackage(int applyId) throws UnsupportedEncodingException;
+
+    //设置返回已经下载状态
+    Result setReturnDownloadState(String packageIds,String ids) throws UnsupportedEncodingException;
+
+    //设置生产状态
+    Result setProduceState(String ids,int state);
+}

+ 56 - 0
huimv-manage/src/main/java/com/huimv/manage/service/impl/ApplyServiceImpl.java

@@ -9,9 +9,14 @@ import com.huimv.manage.util.Const;
 import com.huimv.manage.util.Result;
 import com.huimv.manage.util.ResultCode;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.ExampleMatcher;
 import org.springframework.stereotype.Service;
 
+import java.sql.Timestamp;
+import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * @Project : huimv.shiwan
@@ -79,4 +84,55 @@ public class ApplyServiceImpl implements IApplyService {
         }
         return new Result(ResultCode.SUCCESS, Const.SAVE_NEW_MESSION);
     }
+
+    @Override
+    public JSONArray filterExistApply(JSONArray downloadApplyJa) {
+        JSONArray newApplyJa = new JSONArray();
+
+        for(int a=0;a<downloadApplyJa.size();a++){
+            JSONObject downApplyJo = downloadApplyJa.getJSONObject(a);
+//            System.out.println("downApplyJo>>"+downApplyJo);
+//            System.out.println("applyId>>"+downApplyJo.getIntValue("applyId"));
+            EtApplyEntity applyEntity = new EtApplyEntity();
+            applyEntity.setApplyId(downApplyJo.getIntValue("applyId"));
+            ExampleMatcher matcher = ExampleMatcher.matching()
+                    .withMatcher("apply_id" ,ExampleMatcher.GenericPropertyMatchers.contains());
+            Example example = Example.of(applyEntity,matcher);
+//            boolean applyExistBln = applyRepo.exists(example);
+//            System.out.println("applyExistBln>>"+applyExistBln);
+            if(!applyRepo.exists(example)){
+                newApplyJa.add(downApplyJo);
+            }
+        }
+        return newApplyJa;
+    }
+
+    /**
+     * @Method      : setMissionHasDownloadState
+     * @Description : 
+     * @Params      : [applyId, state]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 15:36
+     */
+    @Override
+    public Result setMissionHasDownloadState(int applyId, int state) {
+        EtApplyEntity applyEntity = new EtApplyEntity();
+        applyEntity.setApplyId(applyId);
+        ExampleMatcher matcher = ExampleMatcher.matching()
+                .withMatcher("apply_id" ,ExampleMatcher.GenericPropertyMatchers.contains());
+        Example example = Example.of(applyEntity,matcher);
+        Optional optional= applyRepo.findOne(example);
+        if (optional.isPresent()){
+            EtApplyEntity applyEntity1  = (EtApplyEntity) optional.get();
+            applyEntity1.setSetDownState(state);
+            applyEntity1.setSetDownDate(new Timestamp(new Date().getTime()));
+            applyRepo.saveAndFlush(applyEntity1);
+            return new Result(ResultCode.SUCCESS);
+        }else{
+            return new Result(Const.CODE_NO_RECORD,Const.NO_RECORD,false);
+        }
+    }
 }

+ 168 - 0
huimv-manage/src/main/java/com/huimv/manage/service/impl/PackageServiceImpl.java

@@ -0,0 +1,168 @@
+package com.huimv.manage.service.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.manage.dao.entity.EtPackageEntity;
+import com.huimv.manage.dao.repo.PackageRepo;
+import com.huimv.manage.service.IPackageService;
+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 lombok.extern.slf4j.Slf4j;
+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
+@Slf4j
+public class PackageServiceImpl implements IPackageService {
+    @Value("${webservice.url}")
+    private String webServiceUrl;
+    @Autowired
+    private PackageRepo packageRepo;
+    @Autowired
+    private NewPackage newPackage;
+    @Autowired
+    private Soap soap;
+
+    @Override
+    public Result listPackage(int pageSize) {
+        List<EtPackageEntity> packageEntityList = packageRepo.listPackage(pageSize);
+        return new Result(ResultCode.SUCCESS,packageEntityList);
+    }
+
+    /**
+     * @Method      : getNewPackage
+     * @Description : 
+     * @Params      : [applyId]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 16:08
+     */
+    @Override
+    public Result getNewPackage(int applyId) throws UnsupportedEncodingException {
+        // Step1.下载新批次数据
+        // Step2.新批次数据入库
+
+        //调用接口获取远程数据
+        String answerXML = soap.callSoap(newPackage.getNewPackageRequestXML(applyId),webServiceUrl);
+        log.info("应答文件="+answerXML);
+
+        //解析应答数据
+        JSONArray downPackageJa = newPackage.parseNewPackageAnswerXML(answerXML);
+        System.out.println("downPackageJa.zie="+downPackageJa.size());
+
+        // 过滤已经存在批次数据
+        JSONArray newPackageJa = filterPackage(downPackageJa);
+        if(newPackageJa.size() == 0){
+            return new Result(Const.CODE_PACKAGE_EXIST, Const.PACKAGE_EXIST,false);
+        }
+
+        //新批次数据入库
+        for(int a=0;a<newPackageJa.size();a++){
+            JSONObject packageJo = newPackageJa.getJSONObject(a);
+            EtPackageEntity newPackageEntity = new EtPackageEntity();
+            newPackageEntity.setPackageId(packageJo.getIntValue("packageId"));
+            newPackageEntity.setPackageNumber(packageJo.getString("packageNumber"));
+            newPackageEntity.setApplyId(packageJo.getIntValue("applyID"));
+            newPackageEntity.setPackageData(packageJo.getString("packageData"));
+            newPackageEntity.setDownloadDate(new Timestamp(new Date().getTime()));
+            packageRepo.saveAndFlush(newPackageEntity);
+        }
+        return new Result(Const.CODE_OK,Const.SAVE_NEW_PACKAGE,true);
+    }
+
+    /**
+     * @Method      : setReturnDownloadState
+     * @Description : 
+     * @Params      : [packageIds, ids]
+     * @Return      : com.huimv.manage.util.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 19:15
+     */
+    @Override
+    public Result setReturnDownloadState(String packageIds,String ids) throws UnsupportedEncodingException {
+        String[] packageIdArray = packageIds.split(",");
+        String[] idArray = ids.split(",");
+
+        // 构造请求XML
+        String requestXML = newPackage.getReturnPackageHasDownloadXML(packageIdArray);
+        String answerXML = "";
+        // 提交请求
+      answerXML = soap.callSoap(requestXML,webServiceUrl);
+        // 解析报文
+        String setReturnState = newPackage.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();
+                packageEntity.setSetDownState(1);
+                packageEntity.setSetDownStateDate(new Timestamp(new Date().getTime()));
+                packageRepo.saveAndFlush(packageEntity);
+            }
+        }
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    //过滤已经存在的批次数据
+    private JSONArray filterPackage(JSONArray downPackageJa) {
+        JSONArray newApplyJa = new JSONArray();
+        // 过滤已经入库的批次数据
+        for(int a=0;a<downPackageJa.size();a++){
+            JSONObject packageJo = downPackageJa.getJSONObject(a);
+            int packageId = packageJo.getIntValue("packageId");
+            String packageNumber = packageJo.getString("packageNumber");
+            EtPackageEntity packageEntity = new EtPackageEntity();
+            packageEntity.setPackageId(packageId);
+            packageEntity.setPackageNumber(packageNumber);
+            ExampleMatcher matcher = ExampleMatcher.matching()
+                    .withMatcher("package_id" ,ExampleMatcher.GenericPropertyMatchers.contains())
+                    .withMatcher("package_number",ExampleMatcher.GenericPropertyMatchers.contains());
+            Example example = Example.of(packageEntity,matcher);
+            if(!packageRepo.exists(example)){
+                newApplyJa.add(packageJo);
+            }
+        }
+        return newApplyJa;
+    }
+
+    @Override
+    public Result setProduceState(String ids, int state) {
+        String[] idArray = ids.split(",");
+        for(int a=0;a<idArray.length;a++){
+            Optional optional = packageRepo.findById(Integer.parseInt(idArray[a]));
+            EtPackageEntity packageEntity = (EtPackageEntity) optional.get();
+            packageEntity.setProduceState(state);
+            packageEntity.setProduceStateDate(new Timestamp(new Date().getTime()));
+            packageRepo.saveAndFlush(packageEntity);
+        }
+        return new Result(ResultCode.SUCCESS);
+    }
+}

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

@@ -10,6 +10,25 @@ package com.huimv.manage.util;
  **/
 public final class Const {
     //Constants
+    public static final Integer CODE_OK = 10000;
+    public static final String SAVE_NEW_MESSION = "保存新任务成功.";
 
-    public static  final String SAVE_NEW_MESSION = "保存成功";
+    public static final Integer CODE_APPLY_NO_NEW = 10001;
+    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 Integer CODE_UPDATE_STATE_FAIL = 10003;
+    public static final String UPDATE_STATE_FAIL = "更新状态失败.";
+
+    public static final Integer CODE_NO_RECORD = 10004;
+    public static final String NO_RECORD = "记录不存在.";
+
+    public static final Integer CODE_PACKAGE_EXIST = 10005;
+    public static final String PACKAGE_EXIST = "批次ID已经存在";
+
+    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 = "设置返回批次已下载状态失败.";
 }

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

@@ -89,4 +89,5 @@ public class Soap {
         }
     }
 
+
 }

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

@@ -0,0 +1,152 @@
+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 NewPackage {
+
+    /**
+     * @Method      : getNewPackageRequestXML
+     * @Description : 构造请求文档
+     * @Params      : [applyId]
+     * @Return      : java.lang.String
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29
+     * @Time        : 15:51
+     */
+    public String getNewPackageRequestXML(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" +
+                "    <GetNewMissionPackage xmlns=\"http://tempuri.org/\">\n" +
+                "      <applyID>"+applyId+"</applyID>\n" +
+                "    </GetNewMissionPackage>\n" +
+                "  </soap:Body>\n" +
+                "</soap:Envelope>";
+    }
+
+    /**
+     * @Method      : parseAnswerXML
+     * @Description :
+     * @Params      : [answerXML]
+     * @Return      : com.alibaba.fastjson.JSONArray
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29
+     * @Time        : 16:02
+     */
+    public JSONArray parseNewPackageAnswerXML(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("GetNewMissionPackageResponse");
+            Element recordEle2 = (Element) iter2.next();
+
+            Iterator GetNewMissionEarMarkResultIter = recordEle2.elementIterator("GetNewMissionPackageResult");
+            Element GetNewMissionEarMarkResultIterEle = (Element) GetNewMissionEarMarkResultIter.next();
+
+//            Iterator schemaIter = GetNewMissionEarMarkResultIterEle.elementIterator("schema");
+//            Element schemaEle = (Element) schemaIter.next();
+            Iterator diffgramIter = GetNewMissionEarMarkResultIterEle.elementIterator("diffgram");
+            Element diffgramEle = (Element) diffgramIter.next();
+
+            Iterator newDataSetIter = diffgramEle.elementIterator("NewDataSet");
+            Element newDataSetChildEle = (Element) newDataSetIter.next();
+
+            Iterator packageIter = newDataSetChildEle.elementIterator("Package");
+            // 所有数据
+            JSONArray allDataJa = new JSONArray();
+            while (packageIter.hasNext()) {
+                Element packageIterEle = (Element) packageIter.next();
+                JSONObject packageJo = new JSONObject();
+                allDataJa.add(packageJo);
+                packageJo.put("packageId",packageIterEle.elementTextTrim("PackageID"));
+                packageJo.put("packageNumber",packageIterEle.elementTextTrim("PackageNumber"));
+                packageJo.put("applyID",packageIterEle.elementTextTrim("ApplyID"));
+                packageJo.put("packageData",packageIterEle.elementTextTrim("PackageData"));
+            }
+            return allDataJa;
+        } catch (DocumentException e) {
+            e.printStackTrace();
+            return null;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+    // 构造请求XML
+    public String getReturnPackageHasDownloadXML(String[] packageIdArray) {
+        StringBuilder dataSb = new StringBuilder();
+        for(int a=0;a<packageIdArray.length;a++){
+            dataSb.append("<int>"+packageIdArray[a]+"</int>");
+        }
+        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" +
+                "    <SetPackagesHasDownload xmlns=\"http://tempuri.org/\">\n" +
+                "      <packageIDs>\n" +
+                dataSb.toString() +
+                "      </packageIDs>\n" +
+                "    </SetPackagesHasDownload>\n" +
+                "  </soap:Body>\n" +
+                "</soap:Envelope>";
+    }
+
+    // 解析返回报文
+    public String parseAnswerXML(String answerXML) {
+        // test
+//        answerXML="<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" +
+//                "    <SetPackagesHasDownloadResponse xmlns=\"http://tempuri.org/\">\n" +
+//                "      <SetPackagesHasDownloadResult>true</SetPackagesHasDownloadResult>\n" +
+//                "    </SetPackagesHasDownloadResponse>\n" +
+//                "  </soap:Body>\n" +
+//                "</soap:Envelope>";
+
+        //解析生成数据
+        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("SetPackagesHasDownloadResponse");
+            Element recordEle2 = (Element) iter2.next();
+            String updateReturnState = recordEle2.elementTextTrim("SetPackagesHasDownloadResult");
+            System.out.println("updateReturnState>>"+updateReturnState);
+            return updateReturnState;
+        } catch (DocumentException e) {
+            e.printStackTrace();
+            return null;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+}

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

@@ -30,7 +30,7 @@ public class NewProduceMission {
      * @Date : 2021/10/28
      * @Time : 16:32
      */
-    public String getNewMissionText(String producerId) {
+    public String getNewMissionXML(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" +
                 "    <GetNewProduceMission xmlns=\"http://tempuri.org/\">\n" +
@@ -40,7 +40,7 @@ public class NewProduceMission {
                 "</soap:Envelope>";
     }
 
-    public String getNewMessionResult(){
+    public String getNewMessionResult_test(){
         return "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
                 "<soap:Envelope\n" +
                 "    xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"\n" +
@@ -138,7 +138,7 @@ public class NewProduceMission {
      * @Date : 2021/10/28
      * @Time : 16:32
      */
-    public JSONArray parseApplyXML(String xml) {
+    public JSONArray parseReturnNewMissionXML(String xml) {
         Document doc = null;
         try {
             doc = DocumentHelper.parseText(xml); // 将字符串转为XML
@@ -163,7 +163,7 @@ public class NewProduceMission {
             Element newDataSetChildEle = (Element) newDataSetIter.next();
 
             Iterator missionIter = newDataSetChildEle.elementIterator("Mission");
-            System.out.println("missionIter.hasNext()>>" + missionIter.hasNext());
+//            System.out.println("missionIter.hasNext()>>" + missionIter.hasNext());
             // 所有数据
             JSONArray allDataJa = new JSONArray();
 
@@ -197,4 +197,54 @@ public class NewProduceMission {
             return null;
         }
     }
+
+    /**
+     * @Method      : getSetMissionHasDownloadXML
+     * @Description : 设置任务已下载状态信息
+     * @Params      : [applyId]
+     * @Return      : java.lang.String
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29
+     * @Time        : 11:05
+     */
+    public String getSetMissionHasDownloadXML(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" +
+                "    <SetMissionHasDownload xmlns=\"http://tempuri.org/\">\n" +
+                "      <applyID>"+applyId+"</applyID>\n" +
+                "    </SetMissionHasDownload>\n" +
+                "  </soap:Body>\n" +
+                "</soap:Envelope>";
+    }
+
+    /**
+     * @Method      : parseReturnSetMissionHasDownStateXML
+     * @Description : 
+     * @Params      : [callSoap]
+     * @Return      : java.lang.String
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/10/29       
+     * @Time        : 11:21
+     */
+    public String parseReturnSetMissionHasDownStateXML(String xml) {
+        Document doc = null;
+        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("SetMissionHasDownloadResponse");
+            Element recordEle2 = (Element) iter2.next();
+            return recordEle2.elementTextTrim("SetMissionHasDownloadResult");
+        } catch (DocumentException e) {
+            e.printStackTrace();
+            return null;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
 }

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

@@ -1,8 +1,7 @@
 spring.profiles.active=dev
 
 #Á¬½Ó³Ø
-spring.datasource.type = org.apache.tomcat.jdbc.pool.DataSource
-
+spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
 spring.datasource.tomcat.initial-size=15
 spring.datasource.tomcat.max-wait=20000 
 spring.datasource.tomcat.max-active=50