From 2d95605efd098e1b1c80f80021b259314b10f204 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 01 三月 2024 10:41:14 +0800
Subject: [PATCH] ERP接口

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncEmpowerServiceImpl.java |  238 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 201 insertions(+), 37 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 d400e2e..55c23bb 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
@@ -12,12 +12,11 @@
 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.Device;
-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;
@@ -39,7 +38,11 @@
     @Autowired
     private EmpowerJoinMapper empowerMapper;
     @Autowired
+    private MemberMapper memberMapper;
+    @Autowired
     private DeviceMapper deviceMapper;
+    @Autowired
+    private MemberCardMapper memberCardMapper;
 
     /**
      * 瀹氭椂鏌ヨ鏉冮檺涓嬪彂浠诲姟杩涘害鎵ц缁撴灉
@@ -57,20 +60,141 @@
                return;
            }
            for(Empower c : list){
+               TaskPersonDetailRequest param = new TaskPersonDetailRequest();
+               param.setPageNo(1);
+               param.setPageSize(100);
+//               param.setPersonIds(new ArrayList<>());
+
+               param.setPersonIds(new String[]{c.getMemberHkId()});
+               param.setTaskId(c.getHkId());
+               TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest();
+               rec.setResourceIndexCode(c.getDeviceIndexCode());
+               rec.setResourceType(c.getDeviceType());
+//               rec.setChannelNos(c.getDeviceChannelNo().split(","));
+               param.setResourceInfo(rec);
+               //鏌ヨ涓嬪彂鐘舵��
+               BaseResponse<TaskPersonDetailListResponse> response = HKService.taskPersoDetail(param);
+               if(response!=null
+                       && StringUtils.equals(response.getCode(),HKConstants.RESPONSE_SUCCEE)
+                       && response.getData()!=null
+                       && 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) );
+                   }
+
+               }
+           }
+           checkDelMemberTask();
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            Constants.DEALING_HK_EMPOWER_DETAIL=false;
+        }
+
+    }
+    /**
+     * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
+     * @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::getHkDate,date)
+                        .in(Member::getId, id));
+            }else{
+                //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
+                memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+                        .set(Member::getHkStatus,Constants.ONE)//鍚屾鎴愬姛
+                        .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() {
+        List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+                .eq(Member::getIsdeleted,Constants.ONE)
+                .eq(Member::getHkStatus,Constants.FOUR));
+        if(memberList!=null &&memberList.size()>0 ){
+            Date date = new Date();
+            for(Member member : memberList){
+                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_DETAIL = true;
+        try {
+            //鏌ヨ鎵�鏈夊畬鎴愪笅杞斤紝寰呮煡璇㈢粨鏋滅殑鏁版嵁璁板綍
+            List<Empower>  list = getDealListDetail();
+           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<>());
-//               AuthItemListPersonRequest p = new AuthItemListPersonRequest();
-//               p.setPersonIds(c.getMemberHkId());
+
                param.setPersonIds(new String[]{c.getMemberHkId()});
-                param.setQueryType(c.getDeviceType());
+               param.setQueryType(c.getDeviceType());
                TaskDataAdditionResourceRequest rec = new TaskDataAdditionResourceRequest();
                rec.setResourceIndexCode(c.getDeviceIndexCode());
                rec.setResourceType(c.getDeviceType());
-               rec.setChannelNos(c.getDeviceChannelNo().split(","));
+//               rec.setChannelNos(c.getDeviceChannelNo().split(","));
                List<TaskDataAdditionResourceRequest> resourceRequests = new ArrayList<>();
-
                resourceRequests.add(rec);
 //               param.setResourceInfos(resourceRequests);
                //鏌ヨ宸蹭笅杞�
@@ -85,7 +209,7 @@
                    //鏇存柊宸插畬鎴愪笅杞戒换鍔�
                    empowerMapper.update(null,new UpdateWrapper<Empower>()
                            .lambda()
-                           .eq(Empower::getHkId,c.getHkId() )
+                           .eq(Empower::getId,c.getId() )
                            .set(Empower::getSendStatus,Constants.EmpowerStatus.pass) );
                }
            }
@@ -151,7 +275,7 @@
         try {
             //鍏堝垹闄ゆ墍鏈夐渶瑕佸彇娑堟巿鏉冪殑鏁版嵁
             dealDelListTask(getDealList(Constants.ONE));
-            //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁
+            //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁,閲嶆柊涓嬪彂鏈�鏂颁汉鍛樻潈闄愬嵆鍙�
             dealNewListTask(getDealList(Constants.ZERO));
         }catch (Exception e){
             e.printStackTrace();
@@ -160,7 +284,28 @@
         }
     }
 
+    /**
+     * 鍒嗘璇锋眰涓嬪彂鏉冮檺
+     * @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;
@@ -168,41 +313,41 @@
         Date date = new Date();
         //鍒涘缓浠诲姟
         String taskId = hkTaskAddtion();
-        List<Empower> successList = new ArrayList<>();
-        List<Empower> errorList = new ArrayList<>();
+        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);
+                successList.add(c.getId());
             }else{
-                errorList.add(c);
+                errorList.add(c.getId());
             }
         }
         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.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail);
-                empowerMapper.updateById(update);
-            }
+            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));
         }
-        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( "娣诲姞涓嬪彂浠诲姟鏁版嵁鍒櫎鎺堟潈澶辫触");
-            empowerMapper.updateById(update);
-        }
+
+        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));
     }
 
     private void dealNewListTask(List<Empower> list) {
@@ -234,6 +379,7 @@
                 update.setEditDate(date);
                 update.setHkId(taskId);
                 update.setRemark(status?"涓嬪彂浠诲姟鎴愬姛":"涓嬪彂浠诲姟澶辫触");
+                update.setSendInfo(status?"涓嬪彂浠诲姟鎴愬姛":"涓嬪彂浠诲姟澶辫触");
                 //涓嬪彂涓�
                 update.setSendStatus(status?Constants.EmpowerStatus.ing:Constants.EmpowerStatus.fail);
                 empowerMapper.updateById(update);
@@ -248,6 +394,7 @@
             update.setHkId(taskId);
             update.setSendStatus(Constants.EmpowerStatus.fail);
             update.setRemark( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
+            update.setSendInfo( "娣诲姞涓嬪彂浠诲姟鏁版嵁澶辫触");
             empowerMapper.updateById(update);
         }
 
@@ -272,6 +419,7 @@
                 ||StringUtils.isBlank(c.getDeviceType())
                 ||StringUtils.isBlank(c.getDeviceIndexCode())){
             //蹇呭~鍙傛暟鏍¢獙
+            c.setSendInfo("璁惧淇℃伅涓嶆敮鎸佹巿鏉冧笅鍙戯紝妫�鏌ヤ汉鍛樻槸鍚﹀凡涓嬪彂娴峰悍鎴栬�呰澶囨槸鍚︺�愯澶囩被鍨嬨�侀�氶亾鍙枫�戞槸鍚﹀畬鍠�");
             c.setRemark("璁惧淇℃伅涓嶆敮鎸佹巿鏉冧笅鍙戯紝妫�鏌ヤ汉鍛樻槸鍚﹀凡涓嬪彂娴峰悍鎴栬�呰澶囨槸鍚︺�愯澶囩被鍨嬨�侀�氶亾鍙枫�戞槸鍚﹀畬鍠�");
             return  false;
         }
@@ -293,12 +441,26 @@
         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;
         }
     }
@@ -324,11 +486,13 @@
         queryWrapper.selectAll(Empower.class);
         queryWrapper.selectAs(Device::getChannelNo,Empower::getDeviceChannelNo);
         queryWrapper.selectAs(Member::getHkId,Empower::getMemberHkId);
-        queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId);
         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.orderByAsc(Empower::getSendDate);
         List<Empower> list = empowerMapper.selectJoinList(Empower.class,queryWrapper);
         return list;
     }

--
Gitblit v1.9.3