From 51a208c7715ecfea9faeccd5ee56ed2d0a697c95 Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期六, 20 四月 2024 15:24:28 +0800
Subject: [PATCH] 工作调度

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java |  122 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 108 insertions(+), 14 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
index bc8ff99..9af2a01 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business.impl.hksync.ferp;
 
+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;
@@ -19,6 +20,7 @@
 import com.doumee.dao.business.model.*;
 import com.doumee.service.business.ext.ERPSyncService;
 import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
+import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import io.swagger.models.auth.In;
 import lombok.extern.slf4j.Slf4j;
@@ -55,6 +57,8 @@
     private MemberCardMapper memberCardMapper;
     @Autowired
     private MemberJoinMapper memberMapper;
+    @Autowired
+    private MemberMapper memberMapper1;
     @Autowired
     private ERPSyncService erpSyncService;
     @Autowired
@@ -288,6 +292,85 @@
             Constants.DEALING_HK_USER =false;
         }
     }
+    /**
+     * 鍚屾娴峰悍浜哄憳淇℃伅
+     * @return
+     */
+    @Override
+    public   void syncMemberDelData(){
+        if(Constants.DEALING_HK_DEL_USER  || Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) != DataSyncConfig.origin.erp){
+            return   ;
+        }
+        Constants.DEALING_HK_DEL_USER =true;
+        try {
+            dealWaitDelMemberData();//绛夊緟鍒犻櫎鏉冮檺鏁版嵁鐨勫垹闄や笅鍙�
+//            dealFailDelMemberData();//澶勭悊鍒犻櫎澶辫触鏁版嵁閲嶆柊涓嬪彂
+        }catch (Exception e){
+            e.printStackTrace();
+        }finally {
+            Constants.DEALING_HK_DEL_USER =false;
+        }
+    }
+
+    /**
+     *  澶勭悊鍒犻櫎澶辫触鏁版嵁閲嶆柊涓嬪彂
+     */
+    private void dealFailDelMemberData() {
+        //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
+        List<Member> list = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+                .selectAll(Member.class )
+                .eq(Member::getHkStatus,Constants.TWO)//绛夊緟涓嬪彂瀹屾垚鐨�
+                .eq(Member::getIsdeleted,Constants.ONE)//宸插垹闄ょ殑
+                .eq(Member::getType,Constants.memberType.internal)
+                .orderByAsc(Member::getEditDate));
+        if(list ==null || list.size()==0){
+            return;
+        }
+        Date date = new Date();
+        for(Member member : list){
+            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::getFailFlag,Constants.ONE)
+                        .ne(Empower::getSendStatus,Constants.EmpowerStatus.pass)) ==0) {
+                    //濡傛灉鏉冮檺閮藉凡缁忓垹闄ゆ垚鍔燂紝鍒欏垹闄ゆ捣搴蜂汉鍛樺拰鍗$墖鏁版嵁
+                    HkSyncEmpowerServiceImpl.doHkDeleteUser(member.getId(),member.getHkId(),new Date(),memberMapper1,memberCardMapper);
+                }
+            }
+        }
+    }
+
+    /**
+     * 绛夊緟鍒犻櫎鏉冮檺鏁版嵁鐨勫垹闄や笅鍙�
+     */
+    private void dealWaitDelMemberData() {
+        //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑浼佷笟鏁版嵁
+        List<Member> list = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+                .selectAll(Member.class )
+                .eq(Member::getHkStatus,Constants.FOUR)//绛夊緟涓嬪彂瀹屾垚鐨�
+                .eq(Member::getIsdeleted,Constants.ONE)//宸插垹闄ょ殑
+                .eq(Member::getType,Constants.memberType.internal)
+                .orderByAsc(Member::getEditDate));
+        if(list ==null || list.size()==0){
+            return;
+        }
+        Date date = new Date();
+        for(Member member : list){
+            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::getFailFlag,Constants.ONE)
+                        .ne(Empower::getSendStatus,Constants.EmpowerStatus.pass)) ==0) {
+                    //濡傛灉鏉冮檺閮藉凡缁忓垹闄ゆ垚鍔燂紝鍒欏垹闄ゆ捣搴蜂汉鍛樺拰鍗$墖鏁版嵁
+
+                    HkSyncEmpowerServiceImpl.doHkDeleteUser(member.getId(),member.getHkId(),date,memberMapper1,memberCardMapper);
+                }
+            }
+        }
+    }
+
     public static   List<Integer>  getRoleIdByParam(  Member member,DeviceRoleMapper deviceRoleMapper) {
             //鏌ヨ鏁版嵁搴撳瓨鍦ㄧ殑鏉冮檺
             List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
@@ -353,10 +436,19 @@
                 .set(ParkBook::getIsdeleted,Constants.ONE)
                 .eq(ParkBook::getIsdeleted,Constants.ZERO)
                 .set(ParkBook::getHkStatus,Constants.ZERO));
+            //鎶婃墍鏈夊緟涓嬪彂鐨勪换鍔℃敼鎴� 宸插彇娑�
+            empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
+                    .eq(Empower::getMemberId,member.getId())
+                    .eq(Empower::getIsdeleted,Constants.ZERO)
+                    .eq(Empower::getSendStatus,Constants.EmpowerStatus.wait)
+                    .set(Empower::getIsdeleted,Constants.ONE)
+                    .set(Empower::getSendStatus,Constants.EmpowerStatus.cancel));
             return  empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
                         .eq(Empower::getMemberId,member.getId())
                         .set(Empower::getIsdeleted,Constants.ONE)
+                        .notIn(Empower::getSendStatus,Constants.EmpowerStatus.fail)
                         .set(Empower::getRemark,"绛夊緟鍚屾鍒犻櫎瀹夐槻骞冲彴")
+                        .eq(Empower::getIsdeleted,Constants.ZERO)
                         .eq(Empower::getIsdeleted,Constants.ZERO)
                         .set(Empower::getSendStatus,Constants.ZERO));
     }
@@ -402,6 +494,7 @@
                 model.setSendInfo("寰呭悓姝ュ畨闃插钩鍙�");
                 model.setRemark("寰呭悓姝ュ畨闃插钩鍙�");
                 model.setStartTime(member.getStartTime());
+                model.setFailFlag(Constants.ZERO);
                 model.setEndTime(member.getEndTime());
                 //榛樿缁欎簬铏氭嫙鍗�
                 model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId());
@@ -461,6 +554,7 @@
                 model.setCreateDate(new Date());
                 model.setMemberId(member.getId());
                 model.setIsdeleted(Constants.ZERO);
+                model.setFailFlag(Constants.ZERO);
                 model.setDeviceId(deviceRole.getId());
                 model.setSendStatus(Constants.ZERO);
                 model.setSendInfo("寰呭悓姝ュ畨闃插钩鍙�");
@@ -578,15 +672,13 @@
             if(rr >0){
                 //濡傛灉鏈夋瑠闄愬緟鍒櫎锛岀瓑寰呭垹闄ゅ畬鎴愬啀鍒犻櫎浜哄憳
                 c.setHkStatus(Constants.FOUR );
+                c.setFaceStatus(Constants.ONE);//鎶婂紓甯镐汉鑴哥姸鎬佹敼涓烘甯革紝鐢ㄤ簬鍒犻櫎鏉冮檺鏁版嵁
                 c.setRemark( "绛夊緟鍒犻櫎鎺堟潈锛�");
+                c.setEditDate(date);
+                memberMapper.updateById(c);
             }else{
                 //娌℃湁鏉冮檺鐩存帴鍒犻櫎浜哄憳
-                boolean r = doHkDeleteUser(c.getId(),c.getHkId(),date);
-                c.setHkStatus(r?Constants.ONE:Constants.TWO);
-                c.setRemark(r?null:"鍒犻櫎娴峰悍浜哄憳淇℃伅澶辫触锛�");
-                c.setIsdeleted(r? Constants.ONE: Constants.ZERO);//鍒犻櫎澶辫触锛屾仮澶嶆暟鎹�
-                //鍒犻櫎鎵�鏈夌粦瀹氱殑鍗$墖淇℃伅
-                memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,c.getId()));
+               HkSyncEmpowerServiceImpl.doHkDeleteUser(c.getId(),c.getHkId(),new Date(),memberMapper1,memberCardMapper);;
             }
         }else{
             //澶勭悊淇敼鏁版嵁锛屽苟涓旀洿鏂颁汉鑴�
@@ -615,10 +707,10 @@
                 c.setHkStatus(Constants.TWO);
                 c.setRemark("浜哄憳淇℃伅鍚屾瀹夐槻骞冲彴鏇存柊澶辫触锛岃淇鍚庨噸璇曪紒锛�"+(result!=null?result.getCode()+result.getMsg():""));
             }
-
+            c.setHkDate(date);
+            c.setEditDate(date);
+            memberMapper.updateById(c);
         }
-        c.setHkDate(date);
-        memberMapper.updateById(c);
     }
 
     /**
@@ -712,12 +804,12 @@
         //閫氱煡ERP浜鸿劯鏁版嵁涓嶆纭�
         erpSyncService.noticeUserFail(r);
     }
-
-    /**
+/*
+    *//**
      * 瀵规捣搴峰垹闄ょ粍缁囦俊鎭�
      * @param id
      * @param date
-     */
+     *//*
     private boolean doHkDeleteUser(Integer  id,String delHkIds,  Date date ) {
         if(StringUtils.isBlank(delHkIds)){
             return true;
@@ -726,25 +818,26 @@
         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)
+                        .set(Member::getRemark,"鍚屾娴峰悍鍒犻櫎澶辫触:"+ JSONObject.toJSONString(result.getData().get(0) ))
                         .in(Member::getId, id));
             }else{
                 //鏍囪鍒犻櫎鎴愬姛鐨勬暟鎹紙娴峰悍瀵规帴鐘舵�佷负宸插悓姝ワ紝锛屽悓姝ュけ璐ョ殑浠嶄负寰呭悓姝ワ紝绛変笅涓�娆$户缁鐞嗭紝鐭ラ亾鍏ㄩ儴鍒犻櫎瀹屾瘯锛�
                 memberMapper.update(null,new UpdateWrapper<Member>().lambda()
                         .set(Member::getHkStatus,Constants.ONE)//鍚屾鎴愬姛
                         .set(Member::getHkDate,date)
+                        .set(Member::getRemark,"宸插悓姝�")
                         .in(Member::getId, id));
             }
             return true;
         }
         return false;
-    }
+    }*/
 
     /**
      * 鍒犻櫎浜哄憳鎵�鏈夎澶囦笂鐨勬潈闄愪俊鎭�
@@ -812,4 +905,5 @@
         return  model;
     }
 
+
 }

--
Gitblit v1.9.3