diff --git a/src/main/java/cn/timer/api/controller/insure/InsureContorll.java b/src/main/java/cn/timer/api/controller/insure/InsureContorll.java
index 0351bc0..17f6f92 100644
--- a/src/main/java/cn/timer/api/controller/insure/InsureContorll.java
+++ b/src/main/java/cn/timer/api/controller/insure/InsureContorll.java
@@ -7,6 +7,7 @@ import cn.timer.api.config.annotation.CurrentUser;
 import cn.timer.api.config.annotation.UserBean;
 import cn.timer.api.controller.insure.bean.ExcelBean;
 import cn.timer.api.controller.insure.enums.InsuranceEnum;
+import cn.timer.api.dao.insure.InsureLogMapper;
 import cn.timer.api.dao.insure.InsurePolicyMapper;
 import cn.timer.api.dao.insure.InsureUserMapper;
 import cn.timer.api.dao.yggl.YgglMainEmpMapper;
@@ -97,6 +98,9 @@ public class InsureContorll {
     @Autowired
     private InsurePolicyMapper insurePolicyMapper;
 
+    @Autowired
+    private InsureLogMapper insureLogMapper;
+
 
     /**
      * 设置请求参数
@@ -223,106 +227,88 @@ public class InsureContorll {
         quotationsArry.add(quotations);
         bodyMap.put("quotations", quotationsArry);
         log.info(JSONObject.toJSONString(bodyMap));
-        Map dataMap = requestAgent(bodyMap);
-        Map policyMap= Maps.newHashMap();
-        List<Map> batchMap = Lists.newArrayList();
+        String data = HttpUtils.sendPost(insuredUrl, setParams(JSONObject.toJSONString(bodyMap), appid, secret), bodyMap);
+        Map dataMap = JSONObject.parseObject(data, Map.class);
         if (dataMap != null) {
-            if(dataMap.get("errcode").toString().equals("suc")){
-            Object o = dataMap.get("data");
-            Map<String, Object> map = JSONObject.parseObject(JSONObject.toJSONString(o));
-            policyMap = JSONObject.parseObject(JSONObject.toJSONString(map.get("policy")), Map.class);
-            batchMap = JSONObject.parseObject(JSONObject.toJSONString(policyMap.get("batch")), List.class);
-            }
-            List<YgglMainEmp> ygglMainEmpList = ygglMainEmpMapper.selectListByIds(insureDto.getUserIds());
-            insurePolicy = InsurePolicy.builder().build();
-            insurePolicy.setPolicyDateStart(dtf3.parse(insureDto.getPolicyDateStart()));
-            insurePolicy.setPolicyDateEnd(dtf3.parse(insureDto.getPolicyDateEnd()));
-            if(dataMap.get("errcode").toString().equals("suc")) {
-                insurePolicy.setPolicyNo(policyMap.get("policy_no").toString());
-                insurePolicy.setPolicyFile(policyMap.get("policy_file").toString());
-                insurePolicy.setKitUrl(policyMap.get("kit_url").toString());
-            }
-            insurePolicy.setType(2);/*年单或者月单*/
-            insurePolicy.setCurrency("5");
-            if(dataMap.get("errcode").toString().equals("suc")) {
-                insurePolicy.setStatus("1");
-            }else {
-                insurePolicy.setStatus("2");
-            }
-            insurePolicy.setOrgCode(qyzxEntInfoM.getId());
-            insurePolicy.setCreateTime(date);
-            insurePolicy.setUpdateTime(date);
-            insurePolicy.setSchemeName(insureProduct.getName());/*先写死*/
-            insurePolicy.setTotalPremium(String.valueOf(insureDto.getUserIds().length * price));
-            insurePolicy.setProductId(insureProduct.getId());
-            insurePolicy.insert();
-            InsureLog.builder().requestParam(JSONObject.toJSONString(setParams(JSONObject.toJSONString(bodyMap), appid, secret))).type(1)
-                    .requestData(JSONObject.toJSONString(bodyMap)).createTime(new Date()).requestType(1).returnBody(JSONObject.toJSONString(dataMap)).requestPath(insuredUrl)
-                    .returnCode(dataMap.get("errcode").toString()).returnMsg(dataMap.get("errmsg").toString()).policyId(insurePolicy.getId()).fileUrl(url).build().insert();
-            InsureUser insureUser;
-            for (YgglMainEmp y : ygglMainEmpList) {
-                insureUser = InsureUser.builder().build();
-                insureUser.setUserId(y.getId());
-                insureUser.setInsuredName(qyzxEntInfoM.getName());
-                insureUser.setPrice(price.toString());/*前端获取的保费*/
-                insureUser.setTransId("P_" + qyzxEntInfoM.getId() + "_" + dtf2.format(now));
-                insureUser.setPremium(String.valueOf(ygglMainEmpList.size() * price));
-                if(dataMap.get("errcode").toString().equals("suc")) {
-                    insureUser.setBatchNo(batchMap.get(0).get("batch_no").toString());
-                    insureUser.setPolicyNo(policyMap.get("policy_no").toString());
+            if ((dataMap.get("errcode").toString().equals("suc")) || (dataMap.get("errcode").toString().equals("e25"))) {
+                Map policyMap = Maps.newHashMap();
+                List<Map> batchMap = Lists.newArrayList();
+                if (dataMap.get("errcode").toString().equals("suc")) {
+                    Object o = dataMap.get("data");
+                    Map<String, Object> map = JSONObject.parseObject(JSONObject.toJSONString(o));
+                    policyMap = JSONObject.parseObject(JSONObject.toJSONString(map.get("policy")), Map.class);
+                    batchMap = JSONObject.parseObject(JSONObject.toJSONString(policyMap.get("batch")), List.class);
                 }
-                insureUser.setBenefitBasicPlan(insureDto.getBenefitBasicPlan());
-                insureUser.setUserId(y.getId());
-                insureUser.setOrgCode(y.getOrgCode());
-                insureUser.setBenefitOccupationCategory(insureDto.getBenefitOccupationCategory());
-                insureUser.setInsuredMobile(y.getPhone());
-                insureUser.setInsuredNo(y.getZjNum());
-                insureUser.setInsuredEContact(y.getName());
-                insureUser.setApplicantEmployeeList(url);
-                if(dataMap.get("errcode").toString().equals("suc")) {
-                    insureUser.setInsureStatus(1);
-                    insureUser.setStatus("1");
-                }else{
-                    insureUser.setInsureStatus(2);
-                    insureUser.setStatus("2");
+                List<YgglMainEmp> ygglMainEmpList = ygglMainEmpMapper.selectListByIds(insureDto.getUserIds());
+                insurePolicy = InsurePolicy.builder().build();
+                insurePolicy.setPolicyDateStart(dtf3.parse(insureDto.getPolicyDateStart()));
+                insurePolicy.setPolicyDateEnd(dtf3.parse(insureDto.getPolicyDateEnd()));
+                if (dataMap.get("errcode").toString().equals("suc")) {
+                    insurePolicy.setPolicyNo(policyMap.get("policy_no").toString());
+                    insurePolicy.setPolicyFile(policyMap.get("policy_file").toString());
+                    insurePolicy.setKitUrl(policyMap.get("kit_url").toString());
                 }
-                insureUser.setPolicyDateStart(dtf3.parse(insureDto.getPolicyDateStart()));
-                insureUser.setPolicyDateEnd(dtf3.parse(insureDto.getPolicyDateEnd()));
-
-                insureUser.setPolicyId(insurePolicy.getId());
-                insureUser.setApplyType(1);
-                insureUser.insert();
-                if(dataMap.get("errcode").toString().equals("suc")) {
-                    y.setIsInsure(1);
-                    y.insertOrUpdate();
+                insurePolicy.setType(2);/*年单或者月单*/
+                insurePolicy.setCurrency("5");
+                if (dataMap.get("errcode").toString().equals("suc")) {
+                    insurePolicy.setStatus("1");
+                } else {
+                    insurePolicy.setStatus("2");
                 }
-            }
-            return ResultUtil.error("投保成功");
-        }
-         return ResultUtil.error(dataMap.get("errmsg").toString());
-
-    }
-
-    /*测试用生产环境不需要*/
-    synchronized private Map requestAgent(Map bodyMap) {
-        String data = HttpUtils.sendPost(insuredUrl, setParams(JSONObject.toJSONString(bodyMap), appid, secret), bodyMap);
-        Map dataMap = JSONObject.parseObject(data, Map.class);
-        if (dataMap.get("errcode").toString().equals("suc")) {
-            return dataMap;
-        } else {
-            if (dataMap.get("errcode").toString().equals("e25") && (dataMap.get("errmsg").toString().equals("出单中"))) {
-                try {
-                    Thread.sleep(30000);
-                    return requestAgent(bodyMap);
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
+                insurePolicy.setOrgCode(qyzxEntInfoM.getId());
+                insurePolicy.setCreateTime(date);
+                insurePolicy.setUpdateTime(date);
+                insurePolicy.setSchemeName(insureProduct.getName());/*先写死*/
+                insurePolicy.setTotalPremium(String.valueOf(insureDto.getUserIds().length * price));
+                insurePolicy.setProductId(insureProduct.getId());
+                insurePolicy.insert();
+                InsureLog.builder().requestParam(JSONObject.toJSONString(setParams(JSONObject.toJSONString(bodyMap), appid, secret))).type(1)
+                        .requestData(JSONObject.toJSONString(bodyMap)).createTime(new Date()).requestType(1).returnBody(JSONObject.toJSONString(dataMap)).requestPath(insuredUrl)
+                        .returnCode(dataMap.get("errcode").toString()).returnMsg(dataMap.get("errmsg").toString()).policyId(insurePolicy.getId()).fileUrl(url).build().insert();
+                InsureUser insureUser;
+                for (YgglMainEmp y : ygglMainEmpList) {
+                    insureUser = InsureUser.builder().build();
+                    insureUser.setUserId(y.getId());
+                    insureUser.setInsuredName(qyzxEntInfoM.getName());
+                    insureUser.setPrice(price.toString());/*前端获取的保费*/
+                    insureUser.setTransId("P_" + qyzxEntInfoM.getId() + "_" + dtf2.format(now));
+                    insureUser.setPremium(String.valueOf(ygglMainEmpList.size() * price));
+                    if (dataMap.get("errcode").toString().equals("suc")) {
+                        insureUser.setBatchNo(batchMap.get(0).get("batch_no").toString());
+                        insureUser.setPolicyNo(policyMap.get("policy_no").toString());
+                    }
+                    insureUser.setBenefitBasicPlan(insureDto.getBenefitBasicPlan());
+                    insureUser.setUserId(y.getId());
+                    insureUser.setOrgCode(y.getOrgCode());
+                    insureUser.setBenefitOccupationCategory(insureDto.getBenefitOccupationCategory());
+                    insureUser.setInsuredMobile(y.getPhone());
+                    insureUser.setInsuredNo(y.getZjNum());
+                    insureUser.setInsuredEContact(y.getName());
+                    insureUser.setApplicantEmployeeList(url);
+                    if (dataMap.get("errcode").toString().equals("suc")) {
+                        insureUser.setInsureStatus(1);
+                        insureUser.setStatus("1");
+                    } else {
+                        insureUser.setInsureStatus(3);
+                        insureUser.setStatus("2");
+                    }
+                    insureUser.setPolicyDateStart(dtf3.parse(insureDto.getPolicyDateStart()));
+                    insureUser.setPolicyDateEnd(dtf3.parse(insureDto.getPolicyDateEnd()));
+
+                    insureUser.setPolicyId(insurePolicy.getId());
+                    insureUser.setApplyType(2);//投保类型
+                    insureUser.insert();
+                    if (dataMap.get("errcode").toString().equals("suc")) {
+                        y.setIsInsure(1);
+                        y.insertOrUpdate();
+                    }
                 }
-
             }
-                return dataMap;
+            return ResultUtil.success(dataMap.get("errmsg").toString());
         }
-    }
+         return ResultUtil.error("网络异常");
 
+    }
 
     /**
      * 生成投保问文件
@@ -801,4 +787,42 @@ public class InsureContorll {
         }
         return ResultUtil.success();
     }
+
+    @GetMapping(value = "/verification")
+    @ApiOperation(value = "一键校验", httpMethod = "Post", notes = "一键校验")
+    public Result<Object> verification() {
+        List<InsurePolicy> insurePolicies = InsurePolicy.builder().build().selectList(new QueryWrapper<InsurePolicy>().lambda().eq(InsurePolicy::getStatus,2));
+        insurePolicies.forEach(i->{
+            InsureLog insureLog = InsureLog.builder().build().selectOne(new QueryWrapper<InsureLog>().lambda().eq(InsureLog::getPolicyId,i.getId()).eq(InsureLog::getType,1));
+            Map bodyMap = JSONObject.parseObject(insureLog.getRequestData(), Map.class);
+            String data = HttpUtils.sendPost(insuredUrl, setParams(JSONObject.toJSONString(bodyMap), appid, secret),bodyMap );
+            log.info("校验结果:{}",data);
+            Map dataMap = JSONObject.parseObject(data, Map.class);
+            if (dataMap != null) {
+                if ((dataMap.get("errcode").toString().equals("suc"))) {
+                    Object o = dataMap.get("data");
+                    Map<String, Object> map = JSONObject.parseObject(JSONObject.toJSONString(o));
+                    Map policyMap = JSONObject.parseObject(JSONObject.toJSONString(map.get("policy")), Map.class);
+                    i.setPolicyNo(policyMap.get("policy_no").toString());
+                    i.setPolicyFile(policyMap.get("policy_file").toString());
+                    i.setKitUrl(policyMap.get("kit_url").toString());
+                    i.setStatus("1");
+                    i.updateById();
+                    /*批次信息*/
+                    List<Map> batchMap = JSONObject.parseObject(JSONObject.toJSONString(policyMap.get("batch")), List.class);
+                    List<InsureUser> insureUserList = InsureUser.builder().build().selectList(new QueryWrapper<InsureUser>().lambda().eq(InsureUser::getPolicyId,i.getId())
+                    .eq(InsureUser::getType,2));
+                    insureUserList.forEach(user->{
+                        user.setBatchNo(batchMap.get(0).get("batch_no").toString());
+                        user.setPolicyNo(policyMap.get("policy_no").toString());
+                        user.setInsureStatus(1);
+                        user.setStatus("1");
+                        user.updateById();
+                        YgglMainEmp.builder().isInsure(1).build().update(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getId, user.getUserId()));
+                    });
+                }
+            }
+        });
+        return ResultUtil.success();
+    };
 }
diff --git a/src/main/java/cn/timer/api/dao/insure/InsureLogMapper.java b/src/main/java/cn/timer/api/dao/insure/InsureLogMapper.java
index 598a4e4..bddd906 100644
--- a/src/main/java/cn/timer/api/dao/insure/InsureLogMapper.java
+++ b/src/main/java/cn/timer/api/dao/insure/InsureLogMapper.java
@@ -18,5 +18,6 @@ import java.util.List;
 @Repository
 public interface InsureLogMapper extends BaseMapper<InsureLog> {
     List<InsureLog> selectListById(@Param("policyId")String policyId);
+    List<InsureLog> selectListByIds(@Param("array")Integer[] ids);
 
 }
diff --git a/src/main/resources/mapping/insure/InsureLogMapper.xml b/src/main/resources/mapping/insure/InsureLogMapper.xml
index 5d69e89..99dc5ae 100644
--- a/src/main/resources/mapping/insure/InsureLogMapper.xml
+++ b/src/main/resources/mapping/insure/InsureLogMapper.xml
@@ -176,4 +176,12 @@
         where policy_id = #{policyId}
         ORDER BY create_time DESC
     </select>
+
+    <select id="selectListByIds" resultType="cn.timer.api.bean.insure.InsureLog">
+        select * from insure_log
+        where type = 1 and policy_id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
 </mapper>