From d16520069e7a89b5ac0d13d0c8ba4e30af023279 Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期四, 28 三月 2024 18:35:44 +0800
Subject: [PATCH] 整理

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java |  277 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 190 insertions(+), 87 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 ae2b0f8..d0e107c 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
@@ -6,6 +6,7 @@
 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.BaseResponse;
 import com.doumee.core.haikang.model.param.request.*;
 import com.doumee.core.haikang.model.param.respose.*;
@@ -80,81 +81,96 @@
                         //鏌ヨ涓嬪彂鐘舵��
                         BaseResponse<TaskPersonDetailListResponse> response = HKService.taskPersoDetail(param);
                         if(response!=null
-                                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE) && response.getData()!=null
-                        ){
-                            if (response.getData().getList() != null
-                                    && response.getData().getList().size() > 0) {
+                                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
+                                && response.getData()!=null
+                                && response.getData().getList() != null
+                                && response.getData().getList().size() > 0
+                                &&response.getData().getList().get(0) !=null){
                                 TaskPersonDetailResponse model = response.getData().getList().get(0);
-                                if (model != null && StringUtils.equals(model.getPersondownloadResult(), "0")) {
-                                    //鏇存柊宸插畬鎴愪笅杞戒换鍔�
-                                    String remark = "";
-                                    String cardInfo = "鍗$墖涓嬪彂澶辫触";
-                                    TaskPersonDetailCardFaceResponse d = model.getPersonDownloadDetail();
-                                    if (d.getCards() != null && d.getCards().size() > 0) {
-                                        cardInfo = "鍗$墖锛氥��";
-                                        for (TaskPersonDetailCardInfoResponse card : d.getCards()) {
+                            if (model.getPersonDownloadDetail()!=null ) {
+                                boolean isface = false;//鏄惁浜鸿劯涓嬪彂鎴愬姛
+                                boolean iscard = false;//鏄惁鏈夊崱鐗囦笅鍙戞垚鍔�
+                                //鏇存柊宸插畬鎴愪笅杞戒换鍔�
+                                String remark = "";
+                                String cardInfo = "鍗$墖涓嬪彂澶辫触";
+                                TaskPersonDetailCardFaceResponse d = model.getPersonDownloadDetail();
+                                if (d.getCards() != null && d.getCards().size() > 0) {
+                                    for (TaskPersonDetailCardInfoResponse card : d.getCards()) {
+                                        if(StringUtils.equals(card.getErrorCode(),HKResponseCode.ReturnCode.RESPONSE_SUCCEE.getKey())){
                                             cardInfo += card.getId() + " ";
+                                            iscard=true;
                                         }
-                                        cardInfo += "銆戜笅鍙戞垚鍔�";
                                     }
-                                    if (d.getFaces() == null || d.getFaces().size() == 0) {
-                                        remark = cardInfo + "锛� 涓嶆敮鎸佷汉鑴歌澶囷紒";
-                                    } else {
-                                        remark = "" + cardInfo + "锛屼汉鑴镐笅鍙戞垚鍔燂紒";
+                                    if(iscard){
+                                        cardInfo = "鍗$墖銆�"+cardInfo+"銆戜笅鍙戞垚鍔�";
                                     }
-                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
-                                            .lambda()
-                                            .eq(Empower::getId, c.getId())
-                                            .set(Empower::getRemark, remark)
-                                            .set(Empower::getSendInfo, remark)
-                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.pass));
-                                    if(Constants.equalsInteger(c.getMemberDeleted(), Constants.ONE)&& Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){
-                                        //濡傛灉鏄垹闄ゆ潈闄愭垚鍔燂紝妫�鏌ユ槸鍚﹀垹闄や汉鍛�
-                                        checkDelMemberTask(c.getMemberId(),c.getMemberHkId());
-                                    }
+                                }
+                                if (d.getFaces() == null || d.getFaces().size() == 0) {
+                                    remark = cardInfo + "锛� 鏃犱汉鑴镐笅鍙戯紒";
                                 } else {
-                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
-                                            .lambda()
-                                            .eq(Empower::getId, c.getId())
-                                            .set(Empower::getRemark, "涓嬪彂澶辫触")
-                                            .set(Empower::getSendInfo, "涓嬪彂澶辫触")
-                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
+                                    if(d.getFaces().get(0).getErrorCode() !=null && d.getFaces().get(0).getErrorCode().equals(HKConstants.RESPONSE_SUCCEE)){
+                                        isface=true;
+                                        remark = "" + cardInfo + "锛屼汉鑴镐笅鍙戞垚鍔燂紒";
+                                    }else{
+                                        isface=false;
+                                        if(d.getFaces().get(0).getErrorCode()!=null &&
+                                                (d.getFaces().get(0).getErrorCode().equals(HKResponseCode.ReturnCode.RESPONSE_FACE_ERROR.getKey()) ||
+                                                        d.getFaces().get(0).getErrorCode().equals(HKResponseCode.ReturnCode.RESPONSE_FACE_ERROR2.getKey()))){
+                                            //濡傛灉浜鸿劯涓嶅悎鏍�
+                                            memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+                                                    .eq(Member::getId,c.getMemberId())
+                                                    .set(Member::getFaceStatus,Constants.THREE)
+                                                    .set(Member::getEditDate,new Date())
+                                            );
+                                            remark = "" + cardInfo + "锛屼汉鑴稿缓妯″け璐ワ紒";
+                                        }else  if(d.getFaces().get(0).getErrorCode()!=null && d.getFaces().get(0).getErrorCode().equals(HKResponseCode.ReturnCode.RESPONSE_DEVICE_NOFAVOR.getKey())){
+                                            //濡傛灉璁惧涓嶆敮鎸佷汉鑴镐笅鍙�
+                                            isface=true;//姝ゆ儏鍐典笉瑕佽�冭檻浜鸿劯涓嬪彂缁撴灉
+                                            remark = "" + cardInfo + "锛岃澶囦笉鏀寔浜鸿劯涓嬪彂锛�";
+                                        }else{
+                                            remark = "" + cardInfo + "锛屼汉鑴镐笅鍙戝け璐ワ紒";
+                                        }
+                                    }
                                 }
-                            } else {
-                                //濡傛灉鏄凡鍒犻櫎鐨勬暟鎹紝涓嬪彂澶辫触锛堥槻姝㈣澶囩绾匡級锛屽垯灏濊瘯閲嶆柊涓嬪彂浠诲姟
-                                if(Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){
-                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
-                                            .lambda()
-                                            .eq(Empower::getId, c.getId())
-                                            .set(Empower::getRemark, "鍒犻櫎鏉冮檺涓嬪彂澶辫触")
-                                            .set(Empower::getSendInfo, "鍒犻櫎鏉冮檺涓嬪彂澶辫触")
-                                            .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1)
-                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
-                                }else{
-                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
-                                            .lambda()
-                                            .eq(Empower::getId, c.getId())
-                                            .set(Empower::getRemark, "涓嬪彂澶辫触")
-                                            .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1)
-                                            .set(Empower::getSendInfo, "涓嬪彂澶辫触")
-                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
+                                //濡傛灉杩斿洖涓嬪彂鎴愬姛 鎴栬�� 浜鸿劯涓嬪彂鎴愬姛骞朵笖鍗$墖涓嬪彂鎴愬姛
+                                boolean isSuccess =StringUtils.equals(model.getPersondownloadResult(), "0") || (iscard&&isface);
+                                empowerMapper.update(null, new UpdateWrapper<Empower>()
+                                        .lambda()
+                                        .eq(Empower::getId, c.getId())
+                                        .set(Empower::getRemark, remark)
+                                        .set(Empower::getEditDate,new Date())
+                                        .set(Empower::getSendInfo, remark)
+                                        .set(Empower::getSendStatus, isSuccess?Constants.EmpowerStatus.pass:Constants.EmpowerStatus.fail));
+                                if(isSuccess && Constants.equalsInteger(c.getMemberDeleted(), Constants.ONE)&& Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){
+                                    //濡傛灉鏄垹闄ゆ潈闄愭垚鍔燂紝妫�鏌ユ槸鍚﹀垹闄や汉鍛�
+                                    checkDelMemberTask(c.getMemberId(),c.getMemberHkId());
                                 }
+                                continue;
                             }
-                        }else if(response!=null && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_DOWNLOAD_ERROR)                        ){
+                        }
+                        //鎵�鏈夊紓甯告儏鍐甸兘鏍囪涓轰笅鍙戝け璐�
+                        //濡傛灉鏄凡鍒犻櫎鐨勬暟鎹紝涓嬪彂澶辫触锛堥槻姝㈣澶囩绾匡級锛屽垯灏濊瘯閲嶆柊涓嬪彂浠诲姟
+                        if(Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){
                             empowerMapper.update(null, new UpdateWrapper<Empower>()
                                     .lambda()
                                     .eq(Empower::getId, c.getId())
+                                    .set(Empower::getRemark, "鍒犻櫎鏉冮檺涓嬪彂澶辫触")
+                                    .set(Empower::getSendInfo, "鍒犻櫎鏉冮檺涓嬪彂澶辫触")
+                                    .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1)
+                                    .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
+                        }else{
+                            empowerMapper.update(null, new UpdateWrapper<Empower>()
+                                    .lambda()
+                                    .eq(Empower::getId, c.getId())
+                                    .set(Empower::getEditDate,new Date())
                                     .set(Empower::getRemark, "涓嬪彂澶辫触")
-//                                    .set(Empower::getFailFlag, Constants.ONE)//鏃犻渶閲嶅彂锛堜笅杞戒换鍔′笉瀛樺湪锛�
                                     .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1)
                                     .set(Empower::getSendInfo, "涓嬪彂澶辫触")
                                     .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
                         }
                     }
                 }catch (Exception e){
-
-                }finally {
-//                    Constants.DEALING_HK_EMPOWER_DETAIL=false;
+                    e.printStackTrace();
                 }
             }
         });
@@ -301,6 +317,7 @@
                                             .lambda()
                                             .eq(Empower::getHkId,c.getHkId() )
                                             .set(Empower::getSendInfo,"浠诲姟宸蹭笅杞藉畬鎴�" )
+                                            .set(Empower::getRemark,"浠诲姟宸蹭笅杞藉畬鎴�" )
                                             .set(Empower::getSendStatus,Constants.EmpowerStatus.downloaded) );
 
                                 }
@@ -332,9 +349,6 @@
             List<Integer> noIds = new ArrayList<>();
             for(Empower empower:allList){
                 //濡傛灉鏄垹闄ょ殑鏉冮檺涓嬪彂锛屾煡璇㈡槸鍚︿己鍊欐湁涓嬪彂鎴愬姛鐨勬暟鎹紝濡傛灉鏈夛紝鍒欎笉澶勭悊
-                if(empower.getId().equals(392479)){
-                    System.out.println("============================");
-                }
 //                int flag= empowerMapper.selectCount(new QueryWrapper<Empower>().lambda()
 //                        .eq(Empower::getMemberId,empower.getMemberId())
 //                        .eq(Empower::getDeviceId,empower.getDeviceId() )
@@ -382,25 +396,10 @@
             List<Empower> allList =getAllWaitDealList( endId);
             if(allList !=null && allList.size()>0){
                 //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁,閲嶆柊涓嬪彂鏈�鏂颁汉鍛樻潈闄愬嵆鍙�
-//            dealNewListTask(getDealList(Constants.ZERO,endId));
-                List<Empower> dellist = new ArrayList<>();
-                List<Empower> addlist = new ArrayList<>();
-                for(Empower e : allList){
-                    if(Constants.equalsInteger(e.getIsdeleted(),Constants.ONE)){
-                        dellist.add(e);
-                    }else {
-                        addlist.add(e);
-                    }
-                }
                 Thread t1=new Thread(new Runnable() {
                     @Override
                     public void run() {
-                        if(dellist!=null &&dellist.size()>0) {
-                            dealDelListTask(dellist);
-                        }
-                        if(addlist!=null &&addlist.size()>0) {
-                            dealNewListTask(addlist);
-                        }
+                        dealAllListTask(allList);
                     }
                 });
                 t1.start();
@@ -475,8 +474,8 @@
                     .set(Empower::getEditDate,date)
                     .in(Empower::getId,successList));
         }
-
-        empowerMapper.update(null,new UpdateWrapper<Empower>()
+        if(errorList.size()>0){
+            empowerMapper.update(null,new UpdateWrapper<Empower>()
                 .lambda()
                 .set(Empower::getSendStatus,Constants.EmpowerStatus.fail)
                 .set(Empower::getSendDate,date)
@@ -486,6 +485,8 @@
                 .set(Empower::getRemark, "娣诲姞涓嬪彂浠诲姟鏁版嵁鍒櫎鎺堟潈澶辫触")
                 .set(Empower::getEditDate,date)
                 .in(Empower::getId,errorList));
+
+        }
     }
     public class TaskRuner implements Runnable{
         private    List<Empower> list ;
@@ -501,6 +502,99 @@
         public void setList(List<Empower> list) {
             this.list = list;
         }
+    }
+    private void dealAllListTask(List<Empower> list) {
+        //鎸夌収鐖剁骇鐢宠鍒嗘壒澶勭悊姣忔鐢宠鏁版嵁
+        if(list ==null || list.size()==0){
+            return;
+        }
+//        clearAllEmpowerFirst(list);
+        Date date = new Date();
+        //鍒涘缓浠诲姟
+        String taskId = hkTaskAddtion();
+        List<Empower> successList = new ArrayList<>();
+        List<Empower> errorList = new ArrayList<>();
+        List<Empower> waitList = new ArrayList<>();
+        List<Empower> faceErrorList = new ArrayList<>();
+        for(Empower c : list) {
+            //鍚戜换鍔℃坊鍔犱汉鍛樸�佽澶囦俊鎭暟鎹�
+            if(c.getDeviceOnline() !=null && Constants.equalsInteger(c.getDeviceOnline(),0)){
+                waitList.add(c);
+                continue;
+            }
+            if(  Constants.equalsInteger(c.getMemberFaceStatus(),Constants.THREE)){
+                faceErrorList.add(c);
+                continue;
+            }
+            HKConstants.OPERA_TYPE flag = HKConstants.OPERA_TYPE.ADD;
+            if(Constants.equalsObject(c.getIsdeleted(),Constants.ONE)){
+                flag = HKConstants.OPERA_TYPE.DEL;
+            }
+            if(addTaskData(c,taskId,flag.getKey())){
+                successList.add(c);
+            }else{
+                errorList.add(c);
+            }
+        }
+        if(successList.size()>0){
+            //寮�濮嬫墽琛屼笅鍙�
+            boolean status = startTask(taskId);
+            for(Empower model : successList){
+                Empower update = new Empower();
+                update.setId(model.getId());
+                update.setSendDate(date);
+                update.setEditDate(date);
+                update.setHkId(taskId);
+                update.setRemark(status?"涓嬪彂浠诲姟鎴愬姛":"涓嬪彂浠诲姟澶辫触");
+                update.setSendInfo(status?"涓嬪彂浠诲姟鎴愬姛":"涓嬪彂浠诲姟澶辫触");
+                //涓嬪彂涓�
+                update.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail);
+                empowerMapper.updateById(update);
+            }
+        }
+
+        if(errorList.size()>0){
+            for(Empower model : errorList){
+                Empower update = new Empower();
+                update.setId(model.getId());
+                update.setSendDate(date);
+                update.setEditDate(date);
+                update.setHkId(taskId);
+                update.setSendStatus(Constants.EmpowerStatus.fail);
+                update.setRemark( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
+                update.setSendInfo( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
+                empowerMapper.updateById(update);
+            }
+        }
+        if(waitList.size()>0){
+            for(Empower model : waitList){
+                Empower update = new Empower();
+                update.setId(model.getId());
+                update.setSendDate(date);
+                update.setEditDate(date);
+                update.setHkId(taskId);
+                update.setSendStatus(Constants.EmpowerStatus.fail);
+                update.setRemark( "璁惧鐘舵�佸紓甯革紝绛夊緟閲嶆柊涓嬪彂");
+                update.setSendInfo( "璁惧鐘舵�佸紓甯革紝绛夊緟閲嶆柊涓嬪彂");
+                empowerMapper.updateById(update);
+            }
+        }
+        if(faceErrorList.size()>0){
+            for(Empower model : faceErrorList){
+                Empower update = new Empower();
+                update.setId(model.getId());
+                update.setSendDate(date);
+                update.setEditDate(date);
+                update.setHkId(taskId);
+                update.setSendStatus(Constants.EmpowerStatus.fail);
+                update.setRemark( "浜鸿劯寤烘ā澶辫触锛岀瓑寰呮洿鎹汉鑴稿悗閲嶆柊涓嬪彂");
+                update.setSendInfo( "浜鸿劯寤烘ā澶辫触锛岀瓑寰呮洿鎹汉鑴稿悗閲嶆柊涓嬪彂");
+                empowerMapper.updateById(update);
+            }
+        }
+
+
+
     }
     private void dealNewListTask(List<Empower> list) {
         //鎸夌収鐖剁骇鐢宠鍒嗘壒澶勭悊姣忔鐢宠鏁版嵁
@@ -538,17 +632,20 @@
             }
         }
 
-        for(Empower model : errorList){
-            Empower update = new Empower();
-            update.setId(model.getId());
-            update.setSendDate(date);
-            update.setEditDate(date);
-            update.setHkId(taskId);
-            update.setSendStatus(Constants.EmpowerStatus.fail);
-            update.setRemark( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
-            update.setSendInfo( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
-            empowerMapper.updateById(update);
+        if(errorList.size()>0){
+            for(Empower model : errorList){
+                Empower update = new Empower();
+                update.setId(model.getId());
+                update.setSendDate(date);
+                update.setEditDate(date);
+                update.setHkId(taskId);
+                update.setSendStatus(Constants.EmpowerStatus.fail);
+                update.setRemark( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
+                update.setSendInfo( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
+                empowerMapper.updateById(update);
+            }
         }
+
 
 
     }
@@ -639,6 +736,8 @@
         queryWrapper.selectAll(Empower.class);
         queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
         queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId);
+        queryWrapper.selectAs(Member::getFaceStatus,Empower::getMemberFaceStatus);
+        queryWrapper.selectAs(Device::getOnline,Empower::getDeviceOnline);
         queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode);
         queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType);
         queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
@@ -656,6 +755,10 @@
         MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper.select(Empower::getId,Empower::getMemberId,Empower::getDeviceId,Empower::getIsdeleted);
         queryWrapper.select(" (select count(1) from empower ee  where ee.member_id=t.MEMBER_ID and ee.device_id =t.DEVICE_ID   and ee.id>t.id) as tempCouunt");
+        queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId);
+        queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
+        queryWrapper.ne(Member::getFaceStatus,Constants.THREE);//浜鸿劯寤烘ā娌℃湁澶辫触杩囩殑
+        queryWrapper.ne(Device::getOnline,Constants.ZERO+"");//闈炵绾�
         queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.fail);
         queryWrapper.gt(Empower::getId,endId);
         queryWrapper.orderByAsc(Empower::getId );

--
Gitblit v1.9.3