From 6c40e04eb7c2060feb2533735cd3089d438965e5 Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期二, 19 三月 2024 17:19:36 +0800
Subject: [PATCH] 整理

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java |  647 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 607 insertions(+), 40 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 2e89198..3b9e929 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,23 +1,31 @@
 package com.doumee.service.business.impl.hksync;
 
+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.param.BaseResponse;
-import com.doumee.core.haikang.model.param.request.VisitAppointmentRequest;
-import com.doumee.core.haikang.model.param.respose.VisitAppointmentResponse;
+import com.doumee.core.haikang.model.param.request.*;
+import com.doumee.core.haikang.model.param.respose.*;
 import com.doumee.core.haikang.service.HKService;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.DeviceMapper;
+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.Empower;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Visits;
+import com.doumee.dao.business.model.*;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -30,53 +38,612 @@
 @Slf4j
 public class HkSyncEmpowerServiceImpl extends HkSyncBaseServiceImpl {
     @Autowired
-    private EmpowerJoinMapper empowerJoinMapper;
+    private EmpowerJoinMapper empowerMapper;
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private MemberMapper memberMapper;
+    @Autowired
+    private DeviceMapper deviceMapper;
+    @Autowired
+    private MemberCardMapper memberCardMapper;
 
     /**
-     * 鍚屾娴峰悍缁勭粐淇℃伅,鏍规嵁erp鍚屾缁勭粐缁撴灉锛屽畾鏃舵鏌ラ渶瑕佷笅鍙戝埌娴峰悍鐨勭粍缁囦俊鎭�
+     * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉
      */
     @Override
-    public  void syncEmpowerData(){
-        if(Constants.DEALING_HK_EMPOWER){
+    public  Integer   syncEmpowerDetailData(Integer endId){
+//        if(Constants.DEALING_HK_EMPOWER_DETAIL){
+//            return   ;
+//        }
+//        Constants.DEALING_HK_EMPOWER_DETAIL = true;
+            //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍
+            List<Empower>  list = getDealListDetail(endId);
+           if(list == null || list.size() ==0){
+               return null;
+           }
+        Thread t1=new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    for(Empower c : list){
+                        TaskPersonDetailRequest param = new TaskPersonDetailRequest();
+                        param.setPageNo(1);
+                        param.setPageSize(10);
+                        param.setPersonIds(new String[]{c.getMemberHkId()});
+                        param.setTaskId(c.getHkId());
+                        TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest();
+                        rec.setResourceIndexCode(c.getDeviceIndexCode());
+                        rec.setResourceType(c.getDeviceType());
+                        param.setResourceInfo(rec);
+                        //鏌ヨ涓嬪彂鐘舵��
+                        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) {
+                                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()) {
+                                            cardInfo += card.getId() + " ";
+                                        }
+                                        cardInfo += "銆戜笅鍙戞垚鍔�";
+                                    }
+                                    if (d.getFaces() == null || d.getFaces().size() == 0) {
+                                        remark = cardInfo + "锛� 涓嶆敮鎸佷汉鑴歌澶囷紒";
+                                    } else {
+                                        remark = "" + 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));
+                                } 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));
+                                }
+                            } else {
+                                //濡傛灉鏄凡鍒犻櫎鐨勬暟鎹紝涓嬪彂澶辫触锛堥槻姝㈣澶囩绾匡級锛屽垯灏濊瘯閲嶆柊涓嬪彂浠诲姟
+                                if(Constants.equalsInteger(c.getIsdeleted(), Constants.ONE) ){
+//                               && Constants.formatIntegerNum(c.getTryNum())+1 < tryNum ){
+                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
+                                            .lambda()
+                                            .eq(Empower::getId, c.getId())
+                                            .set(Empower::getRemark,  "涓嬪彂澶辫触锛岀瓑寰呴噸鏂板垹闄ゆ潈闄�")
+//                                   .set(Empower::getHkId,null)
+//                                   .set(Empower::getSendDate,null)
+                                            .set(Empower::getTryNum,Constants.formatIntegerNum(c.getTryNum())+1)
+                                            .set(Empower::getSendInfo, "涓嬪彂澶辫触锛岀瓑寰呴噸鏂板垹闄ゆ潈闄�")
+                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.wait));
+                                    empowerMapper.update(null, new UpdateWrapper<Empower>()
+                                            .lambda()
+                                            .eq(Empower::getId, c.getId())
+                                            .set(Empower::getRemark, "鍒犻櫎鏉冮檺涓嬪彂澶辫触")
+                                            .set(Empower::getSendInfo, "鍒犻櫎鏉冮檺涓嬪彂澶辫触")
+                                            .set(Empower::getSendStatus, Constants.EmpowerStatus.fail));
+                                }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));
+                                }
+                            }
+                            checkDelMemberTask(c.getMemberId());
+                        }
+                    }
+                }catch (Exception e){
+
+                }finally {
+//                    Constants.DEALING_HK_EMPOWER_DETAIL=false;
+                }
+            }
+        });
+        t1.start();
+         return list.get(list.size()-1).getId();
+
+    }
+
+
+    /**
+     * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
+     * @param id
+     * @param date
+     */
+    private boolean doHkDeleteUser(Integer  id,String delHkIds,  Date date ) {
+        if(StringUtils.isBlank(delHkIds)){
+            return true;
+        }
+        UserDelRequest request = new UserDelRequest();
+        request.setPersonIds(new String[]{delHkIds});
+        BaseResponse<List<UserDelResponse>> result =  HKService.delBatchUser(request);
+        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));
+            }else{
+                //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
+                memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+                        .set(Member::getHkStatus,Constants.ONE)//鍚屾鎴愬姛
+                        .set(Member::getRemark,"鍚屾娴峰悍鍒犻櫎澶辫触")//鍚屾澶辫触
+                        .set(Member::getHkDate,date)
+                        .in(Member::getId, id));
+                //鍒犻櫎鎵�鏈夌粦瀹氱殑鍗$墖淇℃伅
+                memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,id));
+            }
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 妫�鏌ュ垹闄や汉鍛樼殑鏉冮檺鏄惁閮藉垹闄ゅ畬鎴愶紝濡傛灉鏉冮檺鍒犻櫎瀹屾垚锛� 杩涜娴峰悍浜哄憳鐨勫垹闄ゆ搷浣�
+     */
+    private void checkDelMemberTask(Integer memberId) {
+            Date date = new Date();
+            Member member = memberMapper.selectById(memberId);
+            if(member!=null && Constants.equalsInteger(member.getIsdeleted(),Constants.ONE) ){
+                if(empowerMapper.selectCount(new QueryWrapper<Empower>().lambda()
+                        .eq(Empower::getMemberId,member.getId())
+                        .eq(Empower::getIsdeleted,Constants.ONE)
+                        .ne(Empower::getSendStatus,Constants.EmpowerStatus.pass)) ==0){
+                    //濡傛灉鏉冮檺閮藉凡缁忓垹闄ゆ垚鍔燂紝鍒欏垹闄ゆ捣搴蜂汉鍛樺拰鍗$墖鏁版嵁
+                     doHkDeleteUser(member.getId(),member.getHkId(),date);
+            }
+        }
+    }
+
+    public  void syncEmpowerDetailDataOld(){
+        if(Constants.DEALING_HK_EMPOWER_DETAIL){
             return   ;
         }
-        Constants.DEALING_HK_EMPOWER =true;
+        Constants.DEALING_HK_EMPOWER_DETAIL = true;
         try {
-            //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
+            //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍
+            List<Empower>  list = getDealListDetail(0);
+           if(list == null || list.size() ==0){
+               return;
+           }
+           for(Empower c : list){
+               AuthItemListRequest param = new AuthItemListRequest();
+               param.setPageNo(1);
+               param.setPageSize(100);
+//               param.setPersonIds(new ArrayList<>());
 
-            MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
-            queryWrapper.selectAll(Empower.class);
-            queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName)
-                        .select("t1.hk_id as receptMemberHkId")
-                        .leftJoin(Member.class,Member::getId,Visits::getReceptMemberId);
-            queryWrapper.eq(Visits::getStatus,Constants.VisitStatus.pass)//瀹℃壒閫氳繃
-                    .eq(Visits::getHkStatus,Constants.ZERO)//鏈悓姝ュ埌娴峰悍
-                    .orderByAsc(Visits::getCreateDate);
-            List<Empower> list = empowerJoinMapper.selectJoinList(Empower.class,queryWrapper);
-            if(list ==null || list.size()==0){
-                return;
-            }
-            Date date = new Date();
-            for(Empower c : list) {
-                //鍒犻櫎鐨勬暟鎹紝杩涜鍒犻櫎
-                VisitAppointmentRequest request = new VisitAppointmentRequest();
-                BaseResponse<VisitAppointmentResponse> response = HKService.visitAppiontment(request);
-                if (response != null
-                        && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)
-                        &&response.getData()!=null
-                        &&StringUtils.isNotBlank(response.getData().getAppointRecordId())) {
-                    //娴峰悍涓嬪彂鎴愬姛
-                    c.setHkId( response.getData().getAppointRecordId());//棰勭害鏍囪瘑
-                } else {
-                    //娴峰悍涓嬪彂鎴愬姛
-                }
-                empowerJoinMapper.updateById(c);
-            }
+               param.setPersonIds(new String[]{c.getMemberHkId()});
+               param.setQueryType(c.getDeviceType());
+               TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest();
+               rec.setResourceIndexCode(c.getDeviceIndexCode());
+               rec.setResourceType(c.getDeviceType());
+//               rec.setChannelNos(c.getDeviceChannelNo().split(","));
+               List<TaskDataAdditionResourceRequest> resourceRequests = new ArrayList<>();
+               resourceRequests.add(rec);
+//               param.setResourceInfos(resourceRequests);
+               //鏌ヨ宸蹭笅杞�
+//               param.setPersonStatus(new Integer[]{3});
+               //鏌ヨ涓嬪彂鐘舵��
+               BaseResponse<AuthItemListResponse> response = HKService.authItemList(param);
+               if(response!=null
+                       && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
+                       && response.getData()!=null
+                       && response.getData().getList() != null
+                       && response.getData().getList().size()>0 ){
+                   //鏇存柊宸插畬鎴愪笅杞戒换鍔�
+                   empowerMapper.update(null,new UpdateWrapper<Empower>()
+                           .lambda()
+                           .eq(Empower::getId,c.getId() )
+                           .set(Empower::getSendStatus,Constants.EmpowerStatus.pass) );
+               }
+           }
         }catch (Exception e){
             e.printStackTrace();
         }finally {
-            Constants.DEALING_HK_EMPOWER =false;
+            Constants.DEALING_HK_EMPOWER_DETAIL=false;
+        }
+
+    }
+    /**
+     * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉
+     */
+    @Override
+    public  Integer syncEmpowerResultData(Integer endId){
+//        if(Constants.DEALING_HK_EMPOWER_RESULT){
+//            return  null ;
+//        }
+//        Constants.DEALING_HK_EMPOWER_RESULT=true;
+            //鏌ヨ鎵�鏈夋墽琛屼腑寰楁暟鎹�
+         List<Empower>  list = getIngTaskListResult(Constants.formatIntegerNum(endId));
+           if(list == null || list.size() ==0){
+               return null;
+           }
+            Thread t1=new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    try {
+                        for(Empower c : list){
+                            TaskProgressRequest param = new TaskProgressRequest();
+                            param.setTaskId(c.getHkId());
+                            //鏌ヨ涓嬪彂鐘舵��
+                            BaseResponse<TaskProgressNumResponse> response = HKService.taskProgressNum(param);
+                            if(response!=null
+                                    && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
+                                    && response.getData()!=null){
+                                //鏇存柊宸插畬鎴愪笅杞戒换鍔�
+                                if(  response.getData().getIsDownloadFinished() != null
+                                        && response.getData().getIsDownloadFinished() ){
+                                    empowerMapper.update(null,new UpdateWrapper<Empower>()
+                                            .lambda()
+                                            .eq(Empower::getHkId,c.getHkId() )
+                                            .set(Empower::getSendInfo,"浠诲姟宸蹭笅杞藉畬鎴�" )
+                                            .set(Empower::getSendStatus,Constants.EmpowerStatus.downloaded) );
+
+                                }
+                            }
+                        }
+                    }catch (Exception e1){
+                        e1.printStackTrace();
+                    }finally {
+                        Constants.DEALING_HK_EMPOWER_RESULT =false;
+                    }
+                }
+            });
+            t1.start();
+            return list.get(list.size()-1).getId();
+
+    }
+
+
+
+    /**
+     * 澶勭悊浜哄憳鎺堟潈鏁版嵁锛屽畾鏃朵笅鍙�
+     */
+    @Override
+    public  Integer syncEmpowerData(Integer endId) {
+//        if(Constants.DEALING_HK_EMPOWER){
+//            return  null ;
+//        }
+//        Constants.DEALING_HK_EMPOWER =true;
+            //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁
+            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);
+                        }
+                    }
+                });
+                t1.start();
+                return allList.get(allList.size()-1).getId();
+            }
+        return null;
+    }
+    @Override
+    public  void syncEmpowerDataNew(int start,int end) {
+        try {
+            //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁
+            dealDelListTask(getDealList(Constants.ONE,start,end));
+            //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁,閲嶆柊涓嬪彂鏈�鏂颁汉鍛樻潈闄愬嵆鍙�
+            dealNewListTask(getDealList(Constants.ZERO,start,end));
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
         }
     }
 
+    /**
+     * 鍒嗘璇锋眰涓嬪彂鏉冮檺
+     * @param list
+     */
+    private void dealDelListTask(List<Empower> list) {
+        int sublistSize = 100;
+        int startIndex = 0;
+        int endIndex = sublistSize;
+
+        while (startIndex < list.size()) {
+            if (endIndex > list.size()) {
+                endIndex = list.size();
+            }
+            List<Empower> sublist = list.subList(startIndex, endIndex);
+            if(sublist.size()>0){
+                dealDelListTaskDo(sublist);
+            }
+            startIndex = endIndex;
+            endIndex += sublistSize;
+        }
+    }
+    private void dealDelListTaskDo(List<Empower> list) {
+        //鎸夌収鐖剁骇鐢宠鍒嗘壒澶勭悊姣忔鐢宠鏁版嵁
+        if(list ==null || list.size()==0){
+            return;
+        }
+        Date date = new Date();
+        //鍒涘缓浠诲姟
+        String taskId = hkTaskAddtion();
+        List<Integer> successList = new ArrayList<>();
+        List<Integer> errorList = new ArrayList<>();
+        for(Empower c : list) {
+            //鍚戜换鍔℃坊鍔犱汉鍛樸�佽澶囦俊鎭暟鎹�
+            if(addTaskData(c,taskId,HKConstants.OPERA_TYPE.DEL.getKey())){
+                successList.add(c.getId());
+            }else{
+                errorList.add(c.getId());
+            }
+        }
+        if(successList.size()>0){
+            //寮�濮嬫墽琛屼笅鍙�
+            boolean status = startTask(taskId);
+            empowerMapper.update(null,new UpdateWrapper<Empower>()
+                    .lambda()
+                    .set(Empower::getSendDate,date)
+                    .set(Empower::getEditDate,date)
+                    .set(Empower::getSendStatus,status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail)
+                    .set(Empower::getHkId,taskId)
+                    .set(Empower::getSendInfo,status?"涓嬪彂浠诲姟鎵ц鎴愬姛":"涓嬪彂浠诲姟鎵ц澶辫触")
+                    .set(Empower::getRemark,status?"涓嬪彂浠诲姟鎵ц鎴愬姛":"涓嬪彂浠诲姟鎵ц澶辫触")
+                    .set(Empower::getEditDate,date)
+                    .in(Empower::getId,successList));
+        }
+
+        empowerMapper.update(null,new UpdateWrapper<Empower>()
+                .lambda()
+                .set(Empower::getSendStatus,Constants.EmpowerStatus.fail)
+                .set(Empower::getSendDate,date)
+                .set(Empower::getEditDate,date)
+                .set(Empower::getHkId,taskId)
+                .set(Empower::getSendInfo, "娣诲姞涓嬪彂浠诲姟鏁版嵁鍒櫎鎺堟潈澶辫触")
+                .set(Empower::getRemark, "娣诲姞涓嬪彂浠诲姟鏁版嵁鍒櫎鎺堟潈澶辫触")
+                .set(Empower::getEditDate,date)
+                .in(Empower::getId,errorList));
+    }
+    public class TaskRuner implements Runnable{
+        private    List<Empower> list ;
+        @Override
+        public void run() {
+            dealNewListTask(list);
+        }
+
+        public List<Empower> getList() {
+            return list;
+        }
+
+        public void setList(List<Empower> list) {
+            this.list = list;
+        }
+    }
+    private void dealNewListTask(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<>();
+        for(Empower c : list) {
+            //鍚戜换鍔℃坊鍔犱汉鍛樸�佽澶囦俊鎭暟鎹�
+            if(addTaskData(c,taskId,HKConstants.OPERA_TYPE.ADD.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);
+            }
+        }
+
+        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);
+        }
+
+
+    }
+
+    private void clearAllEmpowerFirst(List<Empower> list) {
+        //鏌ヨ鍏ㄩ儴鏁版嵁
+        List<Device> allDevice = deviceMapper.selectList(new QueryWrapper<Device>().lambda().isNotNull(Device::getHkId));
+        //鍒涘缓浠诲姟
+        String taskId = hkTaskAddtion();
+        for(Empower c : list) {
+            //鍚戜换鍔″埅闄や汉鍛樼殑鎵�鏈夎澶囦俊鎭暟鎹�
+            addTaskDataAllDel(c.getHkId(),taskId,allDevice);
+        }
+        startTask(taskId);
+    }
+
+    private boolean addTaskData(Empower c,String taskId,int type) {
+        if(StringUtils.isBlank(c.getMemberHkId() )
+                ||StringUtils.isBlank(c.getDeviceChannelNo())
+                ||StringUtils.isBlank(c.getDeviceType())
+                ||StringUtils.isBlank(c.getDeviceIndexCode())){
+            //蹇呭~鍙傛暟鏍¢獙
+            c.setSendInfo("璁惧淇℃伅涓嶆敮鎸佹巿鏉冧笅鍙戯紝妫�鏌ヤ汉鍛樻槸鍚﹀凡涓嬪彂娴峰悍鎴栬�呰澶囨槸鍚︺�愯澶囩被鍨嬨�侀�氶亾鍙枫�戞槸鍚﹀畬鍠�");
+            c.setRemark("璁惧淇℃伅涓嶆敮鎸佹巿鏉冧笅鍙戯紝妫�鏌ヤ汉鍛樻槸鍚﹀凡涓嬪彂娴峰悍鎴栬�呰澶囨槸鍚︺�愯澶囩被鍨嬨�侀�氶亾鍙枫�戞槸鍚﹀畬鍠�");
+            return  false;
+        }
+        TaskDataAdditionRequest param = new TaskDataAdditionRequest();
+        param.setTaskId(taskId);
+        List<TaskDataAdditionResourceRequest> resourceInfos = new ArrayList<>();//	object[]	True	璧勬簮瀵硅薄
+        TaskDataAdditionResourceRequest res = new TaskDataAdditionResourceRequest();
+        res.setChannelNos(c.getDeviceChannelNo().split(","));
+        res.setResourceType(c.getDeviceType());
+        res.setResourceIndexCode(c.getDeviceIndexCode());
+        resourceInfos.add(res);
+        List<TaskDataAdditionPersonRequest> personInfos = new ArrayList<>();
+        TaskDataAdditionPersonRequest pinfo = new TaskDataAdditionPersonRequest();
+        pinfo.setName(c.getMemberName());
+        pinfo.setEndTime(DateUtil.getISO8601Timestamp(c.getEndTime()));
+        pinfo.setStartTime(DateUtil.getISO8601Timestamp(c.getStartTime()));
+        pinfo.setOperatorType(type);
+        pinfo.setPersonId(c.getMemberHkId());
+        personInfos.add(pinfo);//
+        param.setResourceInfos(resourceInfos);
+        param.setPersonInfos(personInfos);
+
+        //--------------鍗$墖娣诲姞----------
+      /*  if(StringUtils.isNotBlank(c.getCardNos())){
+            List<TaskDataAdditionCardRequest> cards = new ArrayList<>();
+            for(String s : c.getCardNos().split(",")){
+                TaskDataAdditionCardRequest tc = new TaskDataAdditionCardRequest();
+                tc.setCard(s);
+                tc.setStatus(HKConstants.OPERA_TYPE.ADD.getKey());
+                tc.setCardType(HKConstants.CARD_TYPE.NORMAL.getKey());
+                cards.add(tc);
+            }
+            param.setCards(cards);
+        }*/
+        BaseResponse response =  HKService.taskDataAddition(param);
+        if(response!=null
+                && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)){
+            return true;
+        }else{
+            c.setRemark("娣诲姞浜哄憳銆佽澶囬�氶亾鏉冮檺涓嬪彂鏁版嵁澶辫触"+(response!=null?response.getMsg():""));
+            c.setSendInfo("娣诲姞浜哄憳銆佽澶囬�氶亾鏉冮檺涓嬪彂鏁版嵁澶辫触"+(response!=null?response.getMsg():""));
+            return  false;
+        }
+    }
+    private List<Empower> getDealList(int del ,Integer endId ) {
+        MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(Empower.class);
+        queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
+        queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId);
+        queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode);
+        queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType);
+        queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
+        queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId);
+        queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.wait);
+//        queryWrapper.eq( Empower::getIsdeleted,del);
+        queryWrapper.gt(Empower::getId,endId);
+        queryWrapper.orderByAsc(Empower::getId );
+//        queryWrapper.orderByAsc(Empower::getCreateDate );
+        queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓�
+        List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
+        return list;
+    }
+    private List<Empower> getAllWaitDealList(int endId   ) {
+        MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(Empower.class);
+        queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
+        queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId);
+        queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode);
+        queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType);
+        queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
+        queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId);
+        queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.wait);
+//        queryWrapper.eq( Empower::getIsdeleted,del);
+        queryWrapper.gt(Empower::getId,endId);
+        queryWrapper.orderByAsc(Empower::getId );
+//        queryWrapper.orderByAsc(Empower::getCreateDate );
+        queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓�
+        List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
+        return list;
+    }
+
+    private List<Empower> getDealList(int del ,int start,int end) {
+        MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(Empower.class);
+        queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
+        queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId);
+        queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode);
+        queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType);
+        queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
+        queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId);
+        queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.wait);
+        queryWrapper.eq( Empower::getIsdeleted,del);
+        queryWrapper.gt( Empower::getId,start);
+        queryWrapper.le( Empower::getId,end);
+        queryWrapper.orderByDesc(Empower::getId );
+//        queryWrapper.orderByAsc(Empower::getCreateDate );
+        queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓�
+        List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
+        return list;
+    }
+    private List<Empower> getDealListDetail(int endId ) {
+        MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(Empower.class);
+        queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
+        queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId);
+        queryWrapper.selectAs(Device::getHkId,Empower::getDeviceIndexCode);
+        queryWrapper.selectAs(Device::getResourceType,Empower::getDeviceType);
+        queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId);
+        queryWrapper.leftJoin(Device.class,Device::getId,Empower::getDeviceId);
+        queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.downloaded);
+        queryWrapper.isNotNull(Member::getHkId) ;
+        queryWrapper.gt(Empower::getId,endId);
+        queryWrapper.orderByAsc(Empower::getSendDate);
+        queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓�
+        List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
+        return list;
+    }
+    private List<Empower> getIngTaskListResult(int endId) {
+        MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(Empower.class);
+        queryWrapper.eq(Empower::getSendStatus,Constants.EmpowerStatus.ing);
+        queryWrapper.gt(Empower::getId,endId);
+        queryWrapper.groupBy(Empower::getHkId);
+        queryWrapper.orderByAsc(Empower::getSendDate);
+        queryWrapper.last("limit 100");//姣忔闄愬埗涓嬪彂100涓�
+        List<Empower> list = empowerMapper.selectList(queryWrapper);
+        return list;
+    }
+
+
 }

--
Gitblit v1.9.3