From b0ea50dd24a7ed5ada38dc6c8209f78fc09f0441 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 21 六月 2024 17:45:33 +0800
Subject: [PATCH] 修复bug

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java |   96 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 77 insertions(+), 19 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
index d0e107c..0447e18 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java
@@ -1,12 +1,12 @@
 package com.doumee.service.business.impl.hksync;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.doumee.biz.system.SystemDictDataBiz;
-import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.exception.BusinessException;
 import com.doumee.core.haikang.model.HKConstants;
 import com.doumee.core.haikang.model.HKResponseCode;
+import com.doumee.core.haikang.model.param.BaseListPageResponse;
 import com.doumee.core.haikang.model.param.BaseResponse;
 import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.respose.*;
@@ -17,14 +17,14 @@
 import com.doumee.dao.business.MemberCardMapper;
 import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.join.EmpowerJoinMapper;
-import com.doumee.dao.business.join.VisitsJoinMapper;
-import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.model.Device;
+import com.doumee.dao.business.model.Empower;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.MemberCard;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -92,7 +92,7 @@
                                 boolean iscard = false;//鏄惁鏈夊崱鐗囦笅鍙戞垚鍔�
                                 //鏇存柊宸插畬鎴愪笅杞戒换鍔�
                                 String remark = "";
-                                String cardInfo = "鍗$墖涓嬪彂澶辫触";
+                                String cardInfo ="";
                                 TaskPersonDetailCardFaceResponse d = model.getPersonDownloadDetail();
                                 if (d.getCards() != null && d.getCards().size() > 0) {
                                     for (TaskPersonDetailCardInfoResponse card : d.getCards()) {
@@ -103,7 +103,11 @@
                                     }
                                     if(iscard){
                                         cardInfo = "鍗$墖銆�"+cardInfo+"銆戜笅鍙戞垚鍔�";
+                                    }else{
+                                        cardInfo = "鍗$墖涓嬪彂澶辫触";
                                     }
+                                }else {
+                                    cardInfo = "鍗$墖涓嬪彂澶辫触";
                                 }
                                 if (d.getFaces() == null || d.getFaces().size() == 0) {
                                     remark = cardInfo + "锛� 鏃犱汉鑴镐笅鍙戯紒";
@@ -185,25 +189,42 @@
      * @param id
      * @param date
      */
-    private boolean doHkDeleteUser(Integer  id,String delHkIds,  Date date ) {
+    public static boolean doHkDeleteUser(Integer  id,String delHkIds,  Date date ,MemberMapper memberMapper,MemberCardMapper memberCardMapper) {
         if(StringUtils.isBlank(delHkIds)){
+
             return true;
         }
         UserDelRequest request = new UserDelRequest();
         request.setPersonIds(new String[]{delHkIds});
         BaseResponse<List<UserDelResponse>> result =  HKService.delBatchUser(request);
+        boolean succes = false;
         if(result !=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){
-            List<String> fIds = new ArrayList<>();
             //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
             if(result.getData()!=null && result.getData().size()>0){
-                log.info("娴峰悍鍒犻櫎鐢ㄦ埛澶辫触锛�==============="+result.getData().get(0).getPersonId());
-                memberMapper.update(null,new UpdateWrapper<Member>().lambda()
-                        .set(Member::getHkStatus,Constants.TWO)//鍚屾澶辫触
-                        .set(Member::getRemark,"鍚屾娴峰悍鍒犻櫎澶辫触")//鍚屾澶辫触
-                        .set(Member::getHkDate,date)
-                        .in(Member::getId, id));
+                UserDelResponse tem = result.getData().get(0);
+                if(tem!=null && StringUtils.equals(tem.getPersonId(),delHkIds)){
+                    UserByParamListRequest param = new UserByParamListRequest();
+                    param.setPersonIds(delHkIds);
+                    param.setPageNo(1);
+                    param.setPageSize(2);
+                    BaseResponse<BaseListPageResponse<UserInfoResponse>>  t =  HKService.personList(param);
+                    if(t!=null && t.getData()!=null && t.getData().getTotal()  ==0){
+                        //浜哄憳淇℃伅宸茶鍒犻櫎鐨勫紓甯� 浣滀负宸插垹闄ゆ垚鍔熷鐞�
+                        succes =true;
+                    }else{
+                        //鎺掗櫎浜哄憳淇℃伅宸茶鍒犻櫎鐨勫紓甯�
+                        memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+                                .set(Member::getHkStatus,Constants.TWO)//鍚屾澶辫触
+                                .set(Member::getRemark,"鍚屾娴峰悍鍒犻櫎澶辫触" + JSONObject.toJSONString(result.getData().get(0)))//鍚屾澶辫触
+                                .set(Member::getHkDate,date)
+                                .in(Member::getId, id));
+                    }
+                }
             }else{
                 //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
+                succes =true;
+            }
+            if(succes){
                 memberMapper.update(null,new UpdateWrapper<Member>().lambda()
                         .set(Member::getHkStatus,Constants.ONE)//鍚屾鎴愬姛
                         .set(Member::getRemark,"宸插悓姝�")//鍚屾澶辫触
@@ -212,9 +233,8 @@
                 //鍒犻櫎鎵�鏈夌粦瀹氱殑鍗$墖淇℃伅
                 memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,id));
             }
-            return true;
         }
-        return false;
+        return succes;
     }
 
     /**
@@ -230,7 +250,7 @@
                         .ne(Empower::getFailFlag,Constants.ONE)
                         .ne(Empower::getSendStatus,Constants.EmpowerStatus.pass)) ==0){
                     //濡傛灉鏉冮檺閮藉凡缁忓垹闄ゆ垚鍔燂紝鍒欏垹闄ゆ捣搴蜂汉鍛樺拰鍗$墖鏁版嵁
-                     doHkDeleteUser(memberId,memberHkid,date);
+                     doHkDeleteUser(memberId,memberHkid,date,memberMapper,memberCardMapper);
 //            }
         }
     }
@@ -321,6 +341,15 @@
                                             .set(Empower::getSendStatus,Constants.EmpowerStatus.downloaded) );
 
                                 }
+                            }else if(response!=null
+                                    && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
+                                    && response.getData()==null){
+                                empowerMapper.update(null,new UpdateWrapper<Empower>()
+                                        .lambda()
+                                        .eq(Empower::getHkId,c.getHkId() )
+                                        .set(Empower::getSendInfo,"浠诲姟宸茶鍒犻櫎锛屼笅鍙戝け璐�" )
+                                        .set(Empower::getRemark,"浠诲姟宸茶鍒犻櫎锛屼笅鍙戝け璐�" )
+                                        .set(Empower::getSendStatus,Constants.EmpowerStatus.fail) );
                             }
                         }
                     }catch (Exception e1){
@@ -393,6 +422,11 @@
 //        }
 //        Constants.DEALING_HK_EMPOWER =true;
             //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁
+            if(empowerMapper.selectCount(new QueryWrapper<Empower>().lambda()
+                    .eq(Empower::getSendStatus,Constants.EmpowerStatus.ing)) > 1000){
+                //濡傛灉褰撳墠浠诲姟澶т簬1000涓紙澶ф10涓换鍔★級
+                return endId;
+            }
             List<Empower> allList =getAllWaitDealList( endId);
             if(allList !=null && allList.size()>0){
                 //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁,閲嶆柊涓嬪彂鏈�鏂颁汉鍛樻潈闄愬嵆鍙�
@@ -515,9 +549,16 @@
         List<Empower> successList = new ArrayList<>();
         List<Empower> errorList = new ArrayList<>();
         List<Empower> waitList = new ArrayList<>();
+        List<Empower> cancelList = new ArrayList<>();
         List<Empower> faceErrorList = new ArrayList<>();
         for(Empower c : list) {
             //鍚戜换鍔℃坊鍔犱汉鍛樸�佽澶囦俊鎭暟鎹�
+            if (Constants.equalsInteger(c.getDeviceDeleted(),Constants.ONE) ||
+                    (Constants.equalsInteger(c.getMemberDeleted(), Constants.ONE) &&
+                            Constants.equalsInteger(c.getMemberHkStatus(), Constants.ONE))){
+                cancelList.add(c);
+                continue;
+            }
             if(c.getDeviceOnline() !=null && Constants.equalsInteger(c.getDeviceOnline(),0)){
                 waitList.add(c);
                 continue;
@@ -576,6 +617,20 @@
                 update.setSendStatus(Constants.EmpowerStatus.fail);
                 update.setRemark( "璁惧鐘舵�佸紓甯革紝绛夊緟閲嶆柊涓嬪彂");
                 update.setSendInfo( "璁惧鐘舵�佸紓甯革紝绛夊緟閲嶆柊涓嬪彂");
+                empowerMapper.updateById(update);
+            }
+        }
+        if(cancelList.size()>0){
+            for(Empower model : cancelList){
+                Empower update = new Empower();
+                update.setId(model.getId());
+                update.setSendDate(date);
+                update.setEditDate(date);
+                update.setHkId(taskId);
+                update.setFailFlag(Constants.ONE);
+                update.setSendStatus(Constants.EmpowerStatus.cancel);
+                update.setRemark( "璁惧鎴栦汉鍛樺凡鍒犻櫎锛屽彇娑堜笅鍙�");
+                update.setSendInfo( "璁惧鎴栦汉鍛樺凡鍒犻櫎锛屽彇娑堜笅鍙�");
                 empowerMapper.updateById(update);
             }
         }
@@ -737,7 +792,10 @@
         queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
         queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId);
         queryWrapper.selectAs(Member::getFaceStatus,Empower::getMemberFaceStatus);
+        queryWrapper.selectAs(Member::getHkStatus,Empower::getMemberHkStatus);
         queryWrapper.selectAs(Device::getOnline,Empower::getDeviceOnline);
+        queryWrapper.selectAs(Device::getIsdeleted,Empower::getDeviceDeleted);
+        queryWrapper.selectAs(Member::getIsdeleted,Empower::getMemberDeleted);
         queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode);
         queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType);
         queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
@@ -761,8 +819,8 @@
         queryWrapper.ne(Device::getOnline,Constants.ZERO+"");//闈炵绾�
         queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.fail);
         queryWrapper.gt(Empower::getId,endId);
+        queryWrapper.and(w-> w.eq( Empower::getFailFlag,Constants.ZERO).or().isNull(Empower::getFailFlag));
         queryWrapper.orderByAsc(Empower::getId );
-        queryWrapper.ne( Empower::getFailFlag,Constants.ONE);
         List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
         return list;
     }

--
Gitblit v1.9.3