Browse Source

Merge remote-tracking branch 'origin/develop' into develop

FengChaoYu 1 year ago
parent
commit
b261a50677

+ 3 - 2
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/policy/WorkerLogic.java

@@ -297,7 +297,8 @@ public class WorkerLogic {
 
         AdminWebsit adminWebsit = adminWebsitService.getById(websitId);
 
-        List<WorkerPolicy> workerPolicies = workerPolicyService.lambdaQuery().eq(WorkerPolicy::getWebsitId, websitId)
+        List<WorkerPolicy> workerPolicies = workerPolicyService.lambdaQuery()
+                .eq(WorkerPolicy::getWebsitId, websitId)
                 .eq(WorkerPolicy::getWorkerId, currentCompanyWechat.getUser().getWorkerNumber())
                 .eq(WorkerPolicy::getPolicyType, "AC")
                 .orderByDesc(WorkerPolicy::getEndTime)
@@ -335,7 +336,7 @@ public class WorkerLogic {
 
 
         Integer integer =(year2-year)*12+( month2-month+1);
-        if (integer > 12)
+        if (integer > 12 || integer < 1)
             throw new RemoteServiceException("保险配置错误");
 
         BigDecimal price = this.getPayPrice(integer,policy);

+ 17 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/ItfTblCollectionChargeBean.java

@@ -0,0 +1,17 @@
+package com.gree.mall.manager.bean;
+
+
+import com.gree.mall.manager.plus.entity.ItfTblCollectionCharge;
+import com.gree.mall.manager.plus.entity.ItfTblCollectionChargeDetail;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class ItfTblCollectionChargeBean extends ItfTblCollectionCharge {
+
+    @ApiModelProperty(value = "同步任务生成时间")
+    private List<ItfTblCollectionChargeDetail> collectionChargeDetails;
+}

+ 18 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/ItfTblWorkOrderCollection0Bean.java

@@ -0,0 +1,18 @@
+package com.gree.mall.manager.bean;
+
+import com.gree.mall.manager.plus.entity.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ItfTblWorkOrderCollection0Bean extends ItfTblWorkOrderCollection {
+
+
+    private List<ItfTblCollectionRepair> collectionRepairList;
+    private List<ItfTblCollectionRepairPart> collectionRepairPartList;
+    private List<ItfTblCollectionRepairProject> collectionRepairProjectList;
+    private List<ItfTblCollectionRepair> collectionRepairSymptomReasonList;
+
+}

+ 48 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/WorkOrderRelationBean.java

@@ -0,0 +1,48 @@
+package com.gree.mall.manager.bean;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.gree.mall.manager.plus.entity.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class WorkOrderRelationBean  extends ItfTblWorkOrder{
+
+
+    private List<ItfTblWorkOrderFeedback> feedbackRespList;
+
+    private List<ItfTblCollectionChargeBean> collectionChargeList;
+
+
+    private List<ItfTblOldProductOrderDetail> tblOldProductOrderDetailList;
+    private List<ItfTblWorkOrderAddComplain> tblWorkOrderAddComplainList;
+    private List<ItfTblWorkOrderAppoint> tblWorkOrderAppointList;
+    private List<ItfTblWorkOrderCancel> tblWorkOrderCancelList;
+    private List<ItfTblWorkOrderComplainFeedback> tblWorkOrderComplainFeedbackList;
+    private List<ItfTblWorkOrderComplain> tblWorkOrderComplainList;
+    private List<ItfTblWorkOrderCompleteInfo> tblWorkOrderCompleteInfoList;
+    private List<ItfTblWorkOrderConsult> tblWorkOrderConsultList;
+    private List<ItfTblWorkOrderDetailBarcode> tblWorkOrderDetailBarcodeList;
+    private List<ItfTblWorkOrderDetailRelocation> tblWorkOrderDetailRelocationList;
+    private List<ItfTblWorkOrderDispatchOutlets> tblWorkOrderDispatchOutletsList;
+    private List<ItfTblWorkOrderEngineer> tblWorkOrderEngineerList;
+    private List<ItfTblWorkOrderEvaluation> tblWorkOrderEvaluationList;
+    private List<ItfTblWorkOrderExt> tblWorkOrderExtList;
+    private List<ItfTblWorkOrderIndicators> tblWorkOrderIndicatorsList;
+    private List<ItfTblWorkOrderSign> tblWorkOrderSignList;
+    private List<ItfTblWorkOrderTag> tblWorkOrderTagList;
+    private List<ItfTblWorkOrderCharge> workOrderChargeList;
+    private List<ItfTblWorkOrderCollectionComplain> workOrderCollectionComplainList;
+
+    private List<ItfTblWorkOrderCollection0Bean> workOrderCollectionList;
+
+    private List<ItfTblWorkOrderDispatchEngineer> tblWorkOrderDispatchEngineerList;
+    private List<ItfTblWorkOrderStatus> tblWorkOrderStatusList;
+
+
+
+
+}

+ 13 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/WorkOrderSearchReq.java

@@ -0,0 +1,13 @@
+package com.gree.mall.manager.bean;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class WorkOrderSearchReq {
+
+    @ApiModelProperty(value = "工单号")
+    private List<String> workOrderIds;
+}

+ 1 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/listvo/UserVO.java

@@ -85,6 +85,7 @@ public class UserVO   {
 //    @ApiModelProperty("是否允许二手商城发布")
 //    private IsEnum isEs;
 
+    @ZfireField(tbName = "c")
     @ApiModelProperty("创建时间")
     private Date createTime;
     @ApiModelProperty("修改人")

+ 2 - 1
mall-server-api/src/main/java/com/gree/mall/manager/constant/Constant.java

@@ -32,7 +32,7 @@ public class Constant {
 
     public class gree {
         public final static String GET_UPDATE_ORDERS = "/api/external/gf/workOrder/getUpdatedOrders";
-        public final static String GET_WORKER_ORDER_DETAIL = "/api/external/gf/workOrder/getWorkOrderDetail";
+        public final static String POST_WORKER_ORDER_DETAIL = "/api/external/gf/workOrder/getWorkOrderDetail";
         public final static String GUANGZHOUXIAOSI = "S9219801";
         public final static String FOSHANXIAOSI = "S9219807";
     }
@@ -111,6 +111,7 @@ public class Constant {
         public static final String FDD_BATCH_SIGN_NOTIFY = "jsm:sxb:fdd:batch:sign:notify:";
         public static final String TOKEN_GREE = "SETTLE:TOKEN:GREE";
         public final static String TOKEN_GREE_V3 ="SETTLE:TOKEN:GREE:V3";
+        public final static String SYNC_LOCK = "SYNC_LOCK:DEPT:MALL:";
     }
     public class ChatMessage {
         public final static String MSG_TYPE_DOC = "docmsg";

+ 402 - 65
mall-server-api/src/main/java/com/gree/mall/manager/logic/SyncOrderInfoLogic.java

@@ -1,5 +1,6 @@
 package com.gree.mall.manager.logic;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
@@ -9,30 +10,38 @@ import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.alibaba.nacos.common.util.UuidUtils;
 import com.aliyuncs.utils.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.ObjectMapper;
+
+import com.gree.mall.manager.bean.ItfTblCollectionChargeBean;
+import com.gree.mall.manager.bean.ItfTblWorkOrderCollection0Bean;
+import com.gree.mall.manager.bean.WorkOrderRelationBean;
+import com.gree.mall.manager.bean.WorkOrderSearchReq;
+
 import com.gree.mall.manager.bean.policy.ItfGreeSynDownloadRecBean;
 import com.gree.mall.manager.constant.Constant;
 import com.gree.mall.manager.exception.RemoteServiceException;
-import com.gree.mall.manager.plus.entity.ItfGreeSynDownloadRec;
-import com.gree.mall.manager.plus.entity.ItfGreeSynRule;
-import com.gree.mall.manager.plus.service.ItfGreeSynDownloadRecService;
-import com.gree.mall.manager.plus.service.ItfGreeSynRuleService;
+import com.gree.mall.manager.plus.entity.*;
+import com.gree.mall.manager.plus.service.*;
 import com.gree.mall.manager.utils.RedisUtil;
 import com.gree.mall.manager.utils.http.HttpUtils;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.velocity.util.ArrayListWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.integration.redis.util.RedisLockRegistry;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
 
 import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.Lock;
+import java.util.stream.Collectors;
 
 @Service
 @Slf4j
@@ -71,89 +80,193 @@ public class SyncOrderInfoLogic {
     private String v3ClientSecert;
 
     @Autowired
+    ItfTblWorkOrderService itfTblWorkOrderService;
+
+    @Autowired
     ItfGreeSynRuleService itfGreeSynRuleService;
 
     @Autowired
     ItfGreeSynDownloadRecService itfGreeSynDownloadRecService;
 
     @Value("${gree.four.url}")
-    private  String greeUrl;
+    private String greeUrl;
 
     @Autowired
     RedisUtil redisUtil;
 
+    @Autowired
+    RedisLockRegistry redisLockRegistry;
+
+    @Autowired
+    ItfTblWorkOrderFeedbackService itfTblWorkOrderFeedbackService;
+
+    @Autowired
+    ItfTblCollectionChargeService itfTblCollectionChargeService;
+
+
+    @Autowired
+    ItfTblCollectionChargeDetailService itfTblCollectionChargeDetailService;
+
+    @Autowired
+    ItfTblOldProductOrderDetailService itfTblOldProductOrderDetailService;
+
+    @Autowired
+    ItfTblWorkOrderAddComplainService itfTblWorkOrderAddComplainService;
+
+    @Autowired
+    ItfTblWorkOrderAppointService itfTblWorkOrderAppointService;
+
+    @Autowired
+    ItfTblWorkOrderCancelService itfTblWorkOrderCancelService;
+
+    @Autowired
+    ItfTblWorkOrderComplainFeedbackService itfTblWorkOrderComplainFeedbackService;
+
+    @Autowired
+    ItfTblWorkOrderComplainService itfTblWorkOrderComplainService;
+
+    @Autowired
+    ItfTblWorkOrderCompleteInfoService itfTblWorkOrderCompleteInfoService;
+
+    @Autowired
+    ItfTblWorkOrderConsultService itfTblWorkOrderConsultService;
+
+    @Autowired
+    ItfTblWorkOrderDetailBarcodeService itfTblWorkOrderDetailBarcodeService;
+
+    @Autowired
+    ItfTblWorkOrderDetailRelocationService itfTblWorkOrderDetailRelocationService;
+
+    @Autowired
+    ItfTblWorkOrderDispatchOutletsService itfTblWorkOrderDispatchOutletsService;
+
+    @Autowired
+    ItfTblWorkOrderEngineerService itfTblWorkOrderEngineerService;
+
+    @Autowired
+    private ItfTblWorkOrderEvaluationService itfTblWorkOrderEvaluationService;
+
+    @Autowired
+    ItfTblWorkOrderExtService itfTblWorkOrderExtService;
+
+    @Autowired
+    ItfTblWorkOrderIndicatorsService itfTblWorkOrderIndicatorsService;
+
+    @Autowired
+    private ItfTblWorkOrderSignService itfTblWorkOrderSignService;
+
+    @Autowired
+    private ItfTblWorkOrderTagService itfTblWorkOrderTagService;
+
+    @Autowired
+    private ItfTblWorkOrderChargeService itfTblWorkOrderChargeService;
+
+    @Autowired
+    private ItfTblWorkOrderCollectionComplainService itfTblWorkOrderCollectionComplainService;
+
+    @Autowired
+    private ItfTblWorkOrderCollectionService itfTblWorkOrderCollectionService;
+
+    @Autowired
+    private ItfTblCollectionRepairService itfTblCollectionRepairService;
+
+    @Autowired
+    ItfTblCollectionRepairPartService itfTblCollectionRepairPartService;
+
+    @Autowired
+    ItfTblCollectionRepairProjectService itfTblCollectionRepairProjectService;
+
+    @Autowired
+    ItfTblWorkOrderDispatchEngineerService tblWorkOrderDispatchEngineerService;
+
+    @Autowired
+    ItfTblWorkOrderDispatchEngineerService itfTblWorkOrderDispatchEngineerService;
+
+    @Autowired
+    ItfTblWorkOrderStatusService itfTblWorkOrderStatusService;
+
+
     public void syncGuang() {
-        ItfGreeSynRule itfGreeSynRule = itfGreeSynRuleService.lambdaQuery().eq(ItfGreeSynRule::getSalesWebsitNumber, Constant.gree.GUANGZHOUXIAOSI)
-                .one();
+        List<ItfGreeSynRule> itfGreeSynRules = itfGreeSynRuleService.lambdaQuery().list();
 
-        Long time = itfGreeSynRule.getLastSynTime().getTime()/1000;
+        for (ItfGreeSynRule itfGreeSynRule : itfGreeSynRules) {
 
-        String accessToken = this.getAccessTokenV3();
+            Long time = itfGreeSynRule.getLastSynTime().getTime() / 1000;
 
-        log.info(greeUrl+ Constant.gree.GET_UPDATE_ORDERS+"/"+Constant.gree.GUANGZHOUXIAOSI+"/"+time);
+            String accessToken = this.getAccessTokenV3();
 
-        Map<String, String> params = new HashMap<>();
+            log.info(greeUrl + Constant.gree.GET_UPDATE_ORDERS + "/" + Constant.gree.GUANGZHOUXIAOSI + "/" + time);
 
-        Map<String, String> heard = new HashMap<>();
-        heard.put("authorization","Bearer " + accessToken);
+            Map<String, String> params = new HashMap<>();
 
-        String body = HttpUtils.requestGet(greeUrl+ Constant.gree.GET_UPDATE_ORDERS+"/"+Constant.gree.GUANGZHOUXIAOSI+"/"+time, params,heard);
+            Map<String, String> heard = new HashMap<>();
+            heard.put("authorization", "Bearer " + accessToken);
 
-        Map<String,Object> bodyMap = JSON.parseObject(body);
+            String body = HttpUtils.requestGet(greeUrl + Constant.gree.GET_UPDATE_ORDERS + "/" + Constant.gree.GUANGZHOUXIAOSI + "/" + time, params, heard);
 
-        log.info("【工单同步数据内容】:"+bodyMap.get("data").toString());
+            Map<String, Object> bodyMap = JSON.parseObject(body);
 
-        String s = bodyMap.get("data").toString();
+            log.info("【工单同步数据内容】:" + bodyMap.get("data").toString());
 
+            String s = bodyMap.get("data").toString();
 
-        JSONArray jsonArray = JSONUtil.parseArray(s);
 
-        List<ItfGreeSynDownloadRecBean> itfGreeSynDownloadRecBeans = JSONUtil.toList(jsonArray, ItfGreeSynDownloadRecBean.class);
+            JSONArray jsonArray = JSONUtil.parseArray(s);
 
-        if (CollectionUtils.isEmpty(itfGreeSynDownloadRecBeans))
-            return;
+            List<ItfGreeSynDownloadRecBean> itfGreeSynDownloadRecBeans = JSONUtil.toList(jsonArray, ItfGreeSynDownloadRecBean.class);
 
-        List<ItfGreeSynDownloadRec> itfGreeSynDownloadRecs = new ArrayList<>();
+            if (CollectionUtils.isEmpty(itfGreeSynDownloadRecBeans))
+                return;
 
-        Date date = new Date();
-        String batch = IdWorker.getIdStr();
+            List<ItfGreeSynDownloadRec> itfGreeSynDownloadRecs = new ArrayList<>();
 
-        for (ItfGreeSynDownloadRecBean itfGreeSynDownloadRecBean : itfGreeSynDownloadRecBeans) {
-            ItfGreeSynDownloadRec itfGreeSynDownloadRec = new ItfGreeSynDownloadRec();
-            itfGreeSynDownloadRec.setSynReqTime(date);
-            itfGreeSynDownloadRec.setGreeStatSynStatus(0);
-            itfGreeSynDownloadRec.setSalesWebsitNumber(itfGreeSynRule.getSalesWebsitNumber());
-            itfGreeSynDownloadRec.setDownloadBatchNo(batch);
-            itfGreeSynDownloadRec.setWorkOrderId(itfGreeSynDownloadRecBean.getWorkOrderId());
-            itfGreeSynDownloadRec.setUpdatedTimestamp(DateUtil.date(Convert.toLong(itfGreeSynDownloadRecBean.getUpdatedTimestamp())));
-            itfGreeSynDownloadRec.setOrderNode(itfGreeSynDownloadRecBean.getOrderNode());
-            itfGreeSynDownloadRec.setRegionOutletsNo(itfGreeSynDownloadRecBean.getRegionOutletsNo());
-            itfGreeSynDownloadRec.setRegionOutletsName(itfGreeSynDownloadRecBean.getRegionOutletsName());
+            Date date = new Date();
+            String batch = IdWorker.getIdStr();
 
+            for (ItfGreeSynDownloadRecBean itfGreeSynDownloadRecBean : itfGreeSynDownloadRecBeans) {
+                ItfGreeSynDownloadRec itfGreeSynDownloadRec = new ItfGreeSynDownloadRec();
+                itfGreeSynDownloadRec.setSynReqTime(date);
+                itfGreeSynDownloadRec.setGreeStatSynStatus(0);
+                itfGreeSynDownloadRec.setSalesWebsitNumber(itfGreeSynRule.getSalesWebsitNumber());
+                itfGreeSynDownloadRec.setDownloadBatchNo(batch);
+                itfGreeSynDownloadRec.setWorkOrderId(itfGreeSynDownloadRecBean.getWorkOrderId());
+                itfGreeSynDownloadRec.setUpdatedTimestamp(DateUtil.date(Convert.toLong(itfGreeSynDownloadRecBean.getUpdatedTimestamp())));
+                itfGreeSynDownloadRec.setOrderNode(itfGreeSynDownloadRecBean.getOrderNode());
+                itfGreeSynDownloadRec.setRegionOutletsNo(itfGreeSynDownloadRecBean.getRegionOutletsNo());
+                itfGreeSynDownloadRec.setRegionOutletsName(itfGreeSynDownloadRecBean.getRegionOutletsName());
 
 
-            itfGreeSynDownloadRecs.add(itfGreeSynDownloadRec);
-        }
+                itfGreeSynDownloadRecs.add(itfGreeSynDownloadRec);
+            }
 
-        itfGreeSynDownloadRecService.saveBatch(itfGreeSynDownloadRecs);
+            itfGreeSynDownloadRecService.saveBatch(itfGreeSynDownloadRecs);
 
-    }
+            List<ItfGreeSynDownloadRec> itfGreeSynDownloadRecList = itfGreeSynDownloadRecs.stream()
+                    .sorted(Comparator.comparing(ItfGreeSynDownloadRec::getUpdatedTimestamp).reversed()).collect(Collectors.toList());
 
+            itfGreeSynRule.setLastSynTime(itfGreeSynDownloadRecList.get(0).getUpdatedTimestamp());
+            itfGreeSynRule.setLastSynUpdTime(new Date());
 
+            itfGreeSynRule.updateById();
+        }
+
+
+    }
 
 
     /**
      * 获取总部接口的请求token
+     *
      * @return
      * @throws RemoteServiceException
      */
     public String getAccessTokenV3() throws RemoteServiceException {
         String redisKey = Constant.RedisPrefix.TOKEN_GREE_V3;
-        String token = (String)redisUtil.get(redisKey);
+        String token = (String) redisUtil.get(redisKey);
 //        if(token != null){
 //            return token;
 //        }
-        MultiValueMap<String, String> forms= new LinkedMultiValueMap<String, String>();
+        MultiValueMap<String, String> forms = new LinkedMultiValueMap<String, String>();
 
         forms.put("client_id", Collections.singletonList(clientId));
         forms.put("client_secret", Collections.singletonList(v3ClientSecert));
@@ -161,9 +274,9 @@ public class SyncOrderInfoLogic {
         forms.put("grant_type", Collections.singletonList("client_credentials"));
         String s = HttpUtils.requestXwww(v3TokenUrl, forms);
         //String s = HttpUtils.requestPostForm(tokenUrl, map, null);
-        log.info("【获取总部token】response:{}",s);
-        Map<String,Object> bodyMap = JSON.parseObject(s);
-        Map<String,Object> map = JSON.parseObject(bodyMap.get("data").toString());
+        log.info("【获取总部token】response:{}", s);
+        Map<String, Object> bodyMap = JSON.parseObject(s);
+        Map<String, Object> map = JSON.parseObject(bodyMap.get("data").toString());
 
         return (String) map.get("access_token");
     }
@@ -171,52 +284,56 @@ public class SyncOrderInfoLogic {
 
     /**
      * 获取总部接口的请求token
+     *
      * @return
-
      */
     public String getAccessToken() throws RemoteServiceException {
         String redisKey = Constant.RedisPrefix.TOKEN_GREE;
-        String token = (String)redisUtil.get(redisKey);
-        if(token != null){
+        String token = (String) redisUtil.get(redisKey);
+        if (token != null) {
             return token;
         }
-        MultiValueMap<String, String> forms= new LinkedMultiValueMap<String, String>();
+        MultiValueMap<String, String> forms = new LinkedMultiValueMap<String, String>();
 
         forms.put("client_id", Collections.singletonList(clientId));
         forms.put("client_secret", Collections.singletonList(clientSecert));
         forms.put("grant_type", Collections.singletonList("client_credentials"));
         String s = HttpUtils.requestXwww(tokenUrl, forms);
         //String s = HttpUtils.requestPostForm(tokenUrl, map, null);
-        log.info("【获取总部token】response:{}",s);
+        log.info("【获取总部token】response:{}", s);
         JSONObject jsonObject = JSONObject.parseObject(s);
         String accessToken = jsonObject.getString("access_token");
-        if(StringUtils.isNotEmpty(accessToken)) {
-            redisUtil.set(Constant.RedisPrefix.TOKEN_GREE, accessToken, 2 * 60 * 60);
+        if (StringUtils.isNotEmpty(accessToken)) {
+            redisUtil.set(Constant.RedisPrefix.TOKEN_GREE, accessToken, 2 * 6 * 6);
         }
         return accessToken;
     }
 
     public void syncFo() {
-
-        ItfGreeSynRule itfGreeSynRule = itfGreeSynRuleService.lambdaQuery().eq(ItfGreeSynRule::getSalesWebsitNumber, Constant.gree.FOSHANXIAOSI)
+        ItfGreeSynRule itfGreeSynRule = itfGreeSynRuleService.lambdaQuery().eq(ItfGreeSynRule::getSalesWebsitNumber, Constant.gree.GUANGZHOUXIAOSI)
                 .one();
 
-        Long time = itfGreeSynRule.getLastSynTime().getTime()/1000;
+        Long time = itfGreeSynRule.getLastSynTime().getTime() / 1;
 
         String accessToken = this.getAccessTokenV3();
 
+        log.info(greeUrl + Constant.gree.GET_UPDATE_ORDERS + "/" + Constant.gree.GUANGZHOUXIAOSI + "/" + time);
+
+        Map<String, String> params = new HashMap<>();
+
+        Map<String, String> heard = new HashMap<>();
+        heard.put("authorization", "Bearer " + accessToken);
 
-        String body = HttpRequest.get(greeUrl+ Constant.gree.GET_UPDATE_ORDERS+"/"+Constant.gree.GUANGZHOUXIAOSI+"/"+time)
-                .header("authorization","Bearer " + accessToken)
-                .execute().body();
+        String body = HttpUtils.requestGet(greeUrl + Constant.gree.GET_UPDATE_ORDERS + "/" + Constant.gree.GUANGZHOUXIAOSI + "/" + time, params, heard);
 
+        Map<String, Object> bodyMap = JSON.parseObject(body);
 
-        Map<String,Object> bodyMap = JSON.parseObject(body);
+        log.info("【工单同步数据内容】:" + bodyMap.get("data").toString());
 
-        log.info("【工单同步数据内容】:"+bodyMap.get("data").toString());
+        String s = bodyMap.get("data").toString();
 
-        JSONArray jsonArray = JSONUtil.parseArray(JSON.parseObject(bodyMap.get("data").toString()));
 
+        JSONArray jsonArray = JSONUtil.parseArray(s);
 
         List<ItfGreeSynDownloadRecBean> itfGreeSynDownloadRecBeans = JSONUtil.toList(jsonArray, ItfGreeSynDownloadRecBean.class);
 
@@ -235,25 +352,245 @@ public class SyncOrderInfoLogic {
             itfGreeSynDownloadRec.setSalesWebsitNumber(itfGreeSynRule.getSalesWebsitNumber());
             itfGreeSynDownloadRec.setDownloadBatchNo(batch);
             itfGreeSynDownloadRec.setWorkOrderId(itfGreeSynDownloadRecBean.getWorkOrderId());
+            itfGreeSynDownloadRec.setUpdatedTimestamp(DateUtil.date(Convert.toLong(itfGreeSynDownloadRecBean.getUpdatedTimestamp())));
             itfGreeSynDownloadRec.setOrderNode(itfGreeSynDownloadRecBean.getOrderNode());
             itfGreeSynDownloadRec.setRegionOutletsNo(itfGreeSynDownloadRecBean.getRegionOutletsNo());
             itfGreeSynDownloadRec.setRegionOutletsName(itfGreeSynDownloadRecBean.getRegionOutletsName());
-
             itfGreeSynDownloadRecs.add(itfGreeSynDownloadRec);
         }
 
         itfGreeSynDownloadRecService.saveBatch(itfGreeSynDownloadRecs);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     public void syncDetail() {
 
+        List<ItfGreeSynDownloadRec> itfGreeSynDownloadRecsBatch = itfGreeSynDownloadRecService.lambdaQuery()
+                .eq(ItfGreeSynDownloadRec::getGreeStatSynStatus, 0)
+                .groupBy(ItfGreeSynDownloadRec::getDownloadBatchNo)
+                .last("limit 1").list();
+        if (CollectionUtils.isEmpty(itfGreeSynDownloadRecsBatch))
+            return;
+
+        ItfGreeSynDownloadRec itfGreeSynDownloadRecsBatchOne = itfGreeSynDownloadRecsBatch.get(0);
+
+        Lock obtain = redisLockRegistry.obtain(Constant.RedisPrefix.SYNC_LOCK +itfGreeSynDownloadRecsBatchOne.getDownloadBatchNo());
+
         List<ItfGreeSynDownloadRec> itfGreeSynDownloadRecs = itfGreeSynDownloadRecService.lambdaQuery()
-                .eq(ItfGreeSynDownloadRec::getGreeStatSynStatus, 0).last("limit 10").list();
+                .eq(ItfGreeSynDownloadRec::getGreeStatSynStatus, 0)
+                .eq(ItfGreeSynDownloadRec::getDownloadBatchNo,itfGreeSynDownloadRecsBatchOne.getDownloadBatchNo())
+                .list();
+        try {
+            if (!obtain.tryLock(5, TimeUnit.SECONDS)) {
+                throw new RemoteServiceException("系统繁忙,请稍后再试");
+            }
+
+
+            String batch = IdWorker.getIdStr();
+
+            String accessToken = this.getAccessTokenV3();
+
+
+            Map<String, String> params = new HashMap<>();
+
+            Map<String, String> heard = new HashMap<>();
+            heard.put("authorization", "Bearer " + accessToken);
+
+            WorkOrderSearchReq workOrderSearchReq = new WorkOrderSearchReq();
 
+            List<String> collect = itfGreeSynDownloadRecs.stream().map(ItfGreeSynDownloadRec::getWorkOrderId).collect(Collectors.toList());
+            List<Long> syncIds = itfGreeSynDownloadRecs.stream().map(ItfGreeSynDownloadRec::getSynReqId).collect(Collectors.toList());
 
+            itfGreeSynDownloadRecService.lambdaUpdate()
+                    .in(ItfGreeSynDownloadRec::getSynReqId, syncIds)
+                    .set(ItfGreeSynDownloadRec::getGreeStatSynStatus, 1)
+                    .set(ItfGreeSynDownloadRec::getDownloadBatchNo, batch)
+                    .set(ItfGreeSynDownloadRec::getGreeStatSynTime, new Date())
+                    .update();
 
+            workOrderSearchReq.setWorkOrderIds(collect);
 
+            String json = JSONUtil.toJsonStr(workOrderSearchReq);
 
+            String body = HttpUtils.requestPostBody(greeUrl + Constant.gree.POST_WORKER_ORDER_DETAIL, json, heard);
+
+            Map<String, Object> bodyMap = JSON.parseObject(body);
+            String s = bodyMap.get("data").toString();
+
+
+            JSONArray jsonArray = JSONUtil.parseArray(s);
+
+            List<WorkOrderRelationBean> itfGreeSynDownloadRecBeans = JSONUtil.toList(jsonArray, WorkOrderRelationBean.class);
+
+
+            List<ItfTblWorkOrderFeedback> feedbackRespList = new ArrayList<>();
+            List<ItfTblCollectionCharge> collectionChargeList = new ArrayList<>();
+            List<ItfTblCollectionChargeDetail> collectionChargeDetails = new ArrayList<>();
+            List<ItfTblOldProductOrderDetail> tblOldProductOrderDetailList = new ArrayList<>();
+            List<ItfTblWorkOrderAddComplain> tblWorkOrderAddComplainList = new ArrayList<>();
+            List<ItfTblWorkOrderAppoint> tblWorkOrderAppointList = new ArrayList<>();
+            List<ItfTblWorkOrderCancel> tblWorkOrderCancelList = new ArrayList<>();
+            List<ItfTblWorkOrderComplainFeedback> tblWorkOrderComplainFeedbackList = new ArrayList<>();
+            List<ItfTblWorkOrderComplain> tblWorkOrderComplainList = new ArrayList<>();
+            List<ItfTblWorkOrderCompleteInfo> tblWorkOrderCompleteInfoList = new ArrayList<>();
+            List<ItfTblWorkOrderConsult> tblWorkOrderConsultList = new ArrayList<>();
+            List<ItfTblWorkOrderDetailBarcode> tblWorkOrderDetailBarcodeList = new ArrayList<>();
+            List<ItfTblWorkOrderDetailRelocation> tblWorkOrderDetailRelocationList = new ArrayList<>();
+            List<ItfTblWorkOrderDispatchOutlets> tblWorkOrderDispatchOutletsList = new ArrayList<>();
+            List<ItfTblWorkOrderEngineer> tblWorkOrderEngineerList = new ArrayList<>();
+            List<ItfTblWorkOrderEvaluation> tblWorkOrderEvaluationList = new ArrayList<>();
+            List<ItfTblWorkOrderExt> tblWorkOrderExtList = new ArrayList<>();
+            List<ItfTblWorkOrderIndicators> tblWorkOrderIndicatorsList = new ArrayList<>();
+            List<ItfTblWorkOrderSign> tblWorkOrderSignList = new ArrayList<>();
+            List<ItfTblWorkOrderTag> tblWorkOrderTagList = new ArrayList<>();
+            List<ItfTblWorkOrderCharge> workOrderChargeList = new ArrayList<>();
+            List<ItfTblWorkOrderCollectionComplain> workOrderCollectionComplainList = new ArrayList<>();
+
+            List<ItfTblWorkOrderDispatchEngineer> tblWorkOrderDispatchEngineerList = new ArrayList<>();
+            List<ItfTblWorkOrderStatus> tblWorkOrderStatusList = new ArrayList<>();
+
+            List<ItfTblWorkOrderCollection> workOrderCollectionList = new ArrayList<>();
+            List<ItfTblCollectionRepair> collectionRepairList = new ArrayList<>();
+            List<ItfTblCollectionRepairPart> collectionRepairPartList = new ArrayList<>();
+            List<ItfTblCollectionRepairProject> collectionRepairProjectList = new ArrayList<>();
+            List<ItfTblCollectionRepair> collectionRepairSymptomReasonList = new ArrayList<>();
+
+            List<ItfTblWorkOrder> itfTblWorkOrders = new ArrayList<>();
+
+
+            for (WorkOrderRelationBean itfGreeSynDownloadRecBean : itfGreeSynDownloadRecBeans) {
+
+                List<ItfGreeSynDownloadRec> itfGreeSynDownloadRecList = itfGreeSynDownloadRecs.stream()
+                        .filter(item -> item.getWorkOrderId().equals(itfGreeSynDownloadRecBean.getId())).collect(Collectors.toList());
+
+                itfGreeSynDownloadRecBean.setDownloadBatchNo(batch);
+
+
+                feedbackRespList.addAll(itfGreeSynDownloadRecBean.getFeedbackRespList());
+
+                for (ItfTblCollectionChargeBean itfTblCollectionChargeBean : itfGreeSynDownloadRecBean.getCollectionChargeList()) {
+                    ItfTblCollectionCharge itfTblCollectionCharge = BeanUtil.toBean(itfTblCollectionChargeBean, ItfTblCollectionCharge.class);
+                    collectionChargeList.add(itfTblCollectionCharge);
+                    collectionChargeDetails.addAll(itfTblCollectionChargeBean.getCollectionChargeDetails());
+                }
+
+                tblOldProductOrderDetailList.addAll(itfGreeSynDownloadRecBean.getTblOldProductOrderDetailList());
+
+                tblWorkOrderAddComplainList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderAddComplainList());
+
+                tblWorkOrderAppointList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderAppointList());
+                tblWorkOrderCancelList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderCancelList());
+                tblWorkOrderComplainFeedbackList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderComplainFeedbackList());
+                tblWorkOrderComplainList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderComplainList());
+                tblWorkOrderCompleteInfoList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderCompleteInfoList());
+                tblWorkOrderConsultList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderConsultList());
+                tblWorkOrderDetailBarcodeList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderDetailBarcodeList());
+                tblWorkOrderDetailRelocationList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderDetailRelocationList());
+                tblWorkOrderDispatchOutletsList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderDispatchOutletsList());
+                tblWorkOrderEngineerList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderEngineerList());
+                tblWorkOrderEvaluationList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderEvaluationList());
+                tblWorkOrderExtList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderExtList());
+                tblWorkOrderIndicatorsList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderIndicatorsList());
+                tblWorkOrderSignList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderSignList());
+                tblWorkOrderTagList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderTagList());
+                workOrderCollectionComplainList.addAll(itfGreeSynDownloadRecBean.getWorkOrderCollectionComplainList());
+                workOrderChargeList.addAll(itfGreeSynDownloadRecBean.getWorkOrderChargeList());
+
+
+                for (ItfTblWorkOrderCollection0Bean itfTblWorkOrderCollectionBean : itfGreeSynDownloadRecBean.getWorkOrderCollectionList()) {
+
+                    ItfTblWorkOrderCollection itfTblWorkOrderCollection = BeanUtil.toBean(itfTblWorkOrderCollectionBean, ItfTblWorkOrderCollection.class);
+                    workOrderCollectionList.add(itfTblWorkOrderCollectionBean);
+
+                    collectionRepairList.addAll(itfTblWorkOrderCollectionBean.getCollectionRepairList());
+                    collectionRepairPartList.addAll(itfTblWorkOrderCollectionBean.getCollectionRepairPartList());
+                    collectionRepairProjectList.addAll(itfTblWorkOrderCollectionBean.getCollectionRepairProjectList());
+                    collectionRepairSymptomReasonList.addAll(itfTblWorkOrderCollectionBean.getCollectionRepairSymptomReasonList());
+                }
+                tblWorkOrderDispatchEngineerList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderDispatchEngineerList());
+                tblWorkOrderStatusList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderStatusList());
+
+                ItfTblWorkOrder itfTblWorkOrder = BeanUtil.toBean(itfGreeSynDownloadRecBean, ItfTblWorkOrder.class);
+                itfTblWorkOrders.add(itfTblWorkOrder);
+
+            }
+
+            feedbackRespList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderFeedbackService.saveBatch(feedbackRespList);
+            collectionChargeList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblCollectionChargeService.saveBatch(collectionChargeList);
+            collectionChargeDetails.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblCollectionChargeDetailService.saveBatch(collectionChargeDetails);
+            tblOldProductOrderDetailList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblOldProductOrderDetailService.saveBatch(tblOldProductOrderDetailList);
+            tblWorkOrderAddComplainList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderAddComplainService.saveBatch(tblWorkOrderAddComplainList);
+            tblWorkOrderAppointList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderAppointService.saveBatch(tblWorkOrderAppointList);
+            tblWorkOrderCancelList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderCancelService.saveBatch(tblWorkOrderCancelList);
+            tblWorkOrderComplainList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderComplainService.saveBatch(tblWorkOrderComplainList);
+            tblWorkOrderComplainFeedbackList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderComplainFeedbackService.saveBatch(tblWorkOrderComplainFeedbackList);
+            tblWorkOrderCompleteInfoList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderCompleteInfoService.saveBatch(tblWorkOrderCompleteInfoList);
+            tblWorkOrderConsultList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderConsultService.saveBatch(tblWorkOrderConsultList);
+            tblWorkOrderDetailBarcodeList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderDetailBarcodeService.saveBatch(tblWorkOrderDetailBarcodeList);
+            tblWorkOrderDetailRelocationList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderDetailRelocationService.saveBatch(tblWorkOrderDetailRelocationList);
+            tblWorkOrderDispatchOutletsList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderDispatchOutletsService.saveBatch(tblWorkOrderDispatchOutletsList);
+            tblWorkOrderEngineerList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderEngineerService.saveBatch(tblWorkOrderEngineerList);
+            tblWorkOrderEvaluationList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderEvaluationService.saveBatch(tblWorkOrderEvaluationList);
+            tblWorkOrderExtList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderExtService.saveBatch(tblWorkOrderExtList);
+            tblWorkOrderIndicatorsList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderIndicatorsService.saveBatch(tblWorkOrderIndicatorsList);
+            tblWorkOrderSignList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderSignService.saveBatch(tblWorkOrderSignList);
+            tblWorkOrderTagList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderTagService.saveBatch(tblWorkOrderTagList);
+            workOrderChargeList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderChargeService.saveBatch(workOrderChargeList);
+            workOrderCollectionComplainList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderCollectionComplainService.saveBatch(workOrderCollectionComplainList);
+            tblWorkOrderDispatchEngineerList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderDispatchEngineerService.saveBatch(tblWorkOrderDispatchEngineerList);
+            tblWorkOrderStatusList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderStatusService.saveBatch(tblWorkOrderStatusList);
+            workOrderCollectionList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblWorkOrderCollectionService.saveBatch(workOrderCollectionList);
+            collectionRepairList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblCollectionRepairService.saveBatch(collectionRepairList);
+            collectionRepairPartList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblCollectionRepairPartService.saveBatch(collectionRepairPartList);
+            collectionRepairProjectList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblCollectionRepairProjectService.saveBatch(collectionRepairProjectList);
+            collectionRepairSymptomReasonList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+            itfTblCollectionRepairService.saveBatch(collectionRepairSymptomReasonList);
+
+
+            itfTblWorkOrderService.saveBatch(itfTblWorkOrders);
+
+
+        } catch (Exception e) {
+            List<Long> syncIds = itfGreeSynDownloadRecs.stream().map(ItfGreeSynDownloadRec::getSynReqId).collect(Collectors.toList());
+
+            itfGreeSynDownloadRecService.lambdaUpdate()
+                    .in(ItfGreeSynDownloadRec::getSynReqId, syncIds)
+                    .set(ItfGreeSynDownloadRec::getGreeStatSynErrMsg, e.getMessage())
+                    .set(ItfGreeSynDownloadRec::getGreeStatSynErrMsg, new Date())
+                    .set(ItfGreeSynDownloadRec::getGreeStatSynStatus, 99).update();
+
+
+        } finally {
+            obtain.unlock();
+        }
 
     }
 }

+ 1 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/policy/AgreementLogic.java

@@ -84,7 +84,7 @@ public class AgreementLogic {
 
         List<String> adminCompanyIds = adminUser.getCompanyWechatIds();
         //1.组装查询条件
-        zfireParam = FieldUtils.supplyParam(zfireParam, PolicyVo.class);
+        zfireParam = FieldUtils.supplyParam(zfireParam, AgreementVo.class);
 
         IPage<AgreementVo> agreementVoIPage = policyCMapper.listAgreement(page, zfireParam,adminCompanyIds);
         return agreementVoIPage;

+ 2 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/policy/PolicyOrderLogic.java

@@ -1,5 +1,6 @@
 package com.gree.mall.manager.logic.policy;
 
+import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@@ -141,7 +142,7 @@ public class PolicyOrderLogic {
             policyOrder.setEndTime(DateUtil.endOfDay(DateUtil.parse((String) row.get(10), "yyyy-MM-dd")));
             policyOrder.setClassWebsitId((String) row.get(11));
             policyOrder.setClassWebsitName((String) row.get(12));
-            policyOrder.setPayAmount((BigDecimal) row.get(8));
+            policyOrder.setPayAmount(Convert.toBigDecimal(row.get(8)));
 
 
             if (new Date().after(policyOrder.getStartTime()) && new Date().before(policyOrder.getEndTime()))

+ 10 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/policy/WorkerManagerLogic.java

@@ -291,6 +291,7 @@ public class WorkerManagerLogic {
                     throw new RemoteServiceException("雇主险必须有生效的保险");
                 }
             }
+            workerManagerBean.setExamineStatus(ExamineWorkerStatusEnum.OK.getKey());
         }else {
 
             List<WorkerPolicy> workerPolicies = workerManagerBean.getWorkerPolicies().stream().filter(item -> item.getPolicyType().equals("AC")).collect(Collectors.toList());
@@ -313,11 +314,16 @@ public class WorkerManagerLogic {
                 if (in)
                     throw new RemoteServiceException("工伤险有相同覆盖范围内的保险");
 
-                if (workerPoliciesIn.stream().filter(item -> item.getStatus().equals("BZZ")).count() < 1) {
+                if (workerPoliciesIn.stream().filter(item -> item.getStatus().equals("BZZ") || item.getStatus().equals("DSX")).count() < 1) {
                     workerManagerBean.setExamineStatus(ExamineWorkerStatusEnum.WAIT_WORKER.getKey());
                     this.scGongShang(workerManagerBean);
                 }
 
+                if (workerPolicies.stream().filter(item -> item.getStatus().equals("BZZ")).count() > 1) {
+                    workerManagerBean.setExamineStatus(ExamineWorkerStatusEnum.OK.getKey());
+                }
+
+
 
             } else {
                 List<WorkerPolicy> workerPoliciesEm = workerManagerBean.getWorkerPolicies().stream()
@@ -333,6 +339,9 @@ public class WorkerManagerLogic {
                     this.scGuZhu(workerManagerBean);
                 }
 
+                if (workerPolicies.stream().filter(item -> item.getStatus().equals("BZZ")).count() > 1) {
+                    workerManagerBean.setExamineStatus(ExamineWorkerStatusEnum.OK.getKey());
+                }
 
             }
 

+ 2 - 2
mall-server-api/src/main/java/com/gree/mall/manager/schedule/InsureEmailSchedule.java

@@ -25,14 +25,14 @@ public class InsureEmailSchedule {
 
 
     //每小时执行1次
-//    @Scheduled(fixedDelay = 60*60* 1000)
+    @Scheduled(fixedDelay =60* 1000)
     public void task() throws IOException {
         agreementLogic.sendEmailSche();
     }
 
 
     //监测今天是否有回执邮件,如果有则表示今天买保险的回执成功
-//    @Scheduled(fixedDelay = 60* 1000)
+    @Scheduled(fixedDelay = 60* 1000)
     public void task2() throws IOException, MessagingException {
         agreementLogic.receEmail();
     }