From 57b1d0498e3832478986fbd1277bfe278cea816a Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 12 一月 2026 09:39:30 +0800
Subject: [PATCH] 修改简道云人员推送删除功能bug

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java |  185 ++++++++++++++++++++++++++++------------------
 1 files changed, 113 insertions(+), 72 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index f3692d0..390f9ff 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -182,11 +182,11 @@
         Member insert = initAddMemberModel(member,loginUserInfo);
         //娴峰悍浜哄憳鏂板涓氬姟
         try {
-             if(dealHkUserBiz(insert)){
+            if(dealHkUserBiz(insert)){
                 insert.setHkStatus(Constants.ONE);
                 memberMapper.insert(insert);
                 //鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛�
-    //                if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
+                //                if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
                 //濡傛灉鏄唴閮ㄧ粍缁囦汉鍛橈紝鏂板绯荤粺鐧婚檰璐﹀彿
                 systemUserMapper.insert(createSystemUser(insert,systemDictDataBiz));
                 //澶勭悊鍩硅鏈夋晥鏈熶笟鍔�
@@ -377,6 +377,38 @@
                 .eq(Empower::getIsdeleted,Constants.ZERO)
                 .set(Empower::getSendStatus,Constants.ZERO));
     }
+    public   void cancelAllMemberEmpowerBathch(List<Integer> members,LoginUserInfo user) {
+        //鍒犻櫎鍏ㄩ儴鏉冮檺
+        Date date = new Date();
+        memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+                .in(Member::getId,members)
+                .set(Member::getRoleId,null)
+                .set(Member::getAuthStatus,Constants.ZERO)
+                .set(Member::getStartTime,null)
+                .set(Member::getEndTime,null)
+                .set(Member::getEditor,user.getId())
+                .set(Member::getEditDate,new Date()) );
+        memberRoleMapper.update(null,new UpdateWrapper<MemberRole>().lambda()
+                .in(MemberRole::getMemberId,members)
+                .set(MemberRole::getIsdeleted,Constants.ONE)
+                .set(MemberRole::getEdirot,user.getId())
+                .set(MemberRole::getEditDate,date));
+        //鎶婃墍鏈夊緟涓嬪彂鐨勪换鍔℃敼鎴� 宸插彇娑�
+        empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
+                .in(Empower::getMemberId,members)
+                .eq(Empower::getIsdeleted,Constants.ZERO)
+                .eq(Empower::getSendStatus,Constants.EmpowerStatus.wait)
+                .set(Empower::getIsdeleted,Constants.ONE)
+                .set(Empower::getSendStatus,Constants.EmpowerStatus.cancel));
+        //鎵�鏈変笅鍙戣繃鐨勪换鍔★紝鏀逛负寰呭垹闄ゆ潈闄�
+        empowerMapper.update(null,new UpdateWrapper<Empower>().lambda()
+                .in(Empower::getMemberId,members)
+                .set(Empower::getIsdeleted,Constants.ONE)
+                .notIn(Empower::getSendStatus,Constants.EmpowerStatus.fail)
+                .set(Empower::getRemark,"绛夊緟鍚屾鍒犻櫎瀹夐槻骞冲彴")
+                .eq(Empower::getIsdeleted,Constants.ZERO)
+                .set(Empower::getSendStatus,Constants.ZERO));
+    }
 
     private void isMemberParamValid(Member member) {
         if(member.getCompanyId() == null){
@@ -445,7 +477,6 @@
         if(model ==null ||Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ュ憳宸ヤ俊鎭笉瀛樺湪锛岃鍒锋柊椤甸潰閲嶈瘯锛�");
         }
-        member.setSex(model.getSex());//榛樿鏄師鏉ョ殑鎬у埆
         if (StringUtils.isNotBlank(member.getPhone())  ){
             if ( !PhoneUtil.isPhone(member.getPhone())) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鐢佃瘽鍙风爜鏍煎紡鏈夎");
@@ -683,6 +714,7 @@
         }
         if(memberRole.getRoleIds() ==null || memberRole.getRoleIds().length ==0){
             //濡傛灉鏄竻绌烘潈闄�
+            cancelAllMemberEmpowerBathch(memberRole.getIds(),memberRole.getLoginUserInfo() );
         }else{
             if( ! (Constants.equalsInteger(memberRole.getTimeType(),Constants.ZERO)
                     ||Constants.equalsInteger(memberRole.getTimeType(),Constants.TWO)
@@ -696,54 +728,54 @@
             if(Constants.equalsInteger(memberRole.getTimeType(),Constants.ONE) && memberRole.getEndTime().getTime() <= memberRole.getStartTime().getTime()){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈夋晥鏈熸埅姝㈡棩鏈熶笉鑳藉皬浜庡紑濮嬫椂闂达紒");
             }
-        }
-        if(Constants.equalsInteger(memberRole.getTimeType(),Constants.ZERO) ){
-            memberRole.setStartTime(null);
-            memberRole.setEndTime(null);
-        }
-        for (Integer id : memberRole.getIds()){
-            Member member = memberMapper.selectById(id);
-            if(member==null || member.getIsdeleted().equals(Constants.ONE)){
-                //濡傛灉鍛樺伐淇℃伅涓嶅悎娉曠洿鎺ヨ烦杩�
-                continue;
+            if(Constants.equalsInteger(memberRole.getTimeType(),Constants.ZERO) ){
+                memberRole.setStartTime(null);
+                memberRole.setEndTime(null);
             }
-            if(StringUtils.isBlank(member.getFaceId()) || !Constants.equalsInteger(member.getFaceStatus(),Constants.ONE)){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+member.getName()+"銆戠殑浜鸿劯淇℃伅涓嶆弧瓒虫巿鏉冩潯浠讹紝璇疯繑鍥炲畬鍠勫悗鍐嶈繘琛岃鎿嶄綔锛�");
-            }
-            member.setStartTime(memberRole.getStartTime());
-            member.setEndTime(memberRole.getEndTime());
-            Integer ischange = getRoleIdByParam(memberRole.getRoleIds(),member,memberRoleMapper,deviceRoleMapper);
-            if(memberRole.getRoleIds()!=null && memberRole.getRoleIds().length>0 && StringUtils.isBlank(member.getRoleId())){
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鏈煡璇㈠埌鏈夋晥闂ㄧ缁勬暟鎹�");
-            }
-            if(Constants.equalsInteger(memberRole.getTimeType(),Constants.TWO)){
-                //濡傛灉鎸夌収鍩硅鏃ユ湡涓嬪彂
-                TrainTime trainTime = trainTimeMapper.selectOne(new QueryWrapper<TrainTime>().lambda()
-                        .eq(TrainTime::getMemberId,id )
-                        .eq(TrainTime::getIsdeleted,Constants.ZERO )
-                        .orderByDesc(TrainTime::getId)
-                        .last("limit 1")
-                );
-                if(trainTime == null || trainTime.getStartTime()==null || trainTime.getEndTime() ==null || trainTime.getStartTime().getTime()>=trainTime.getEndTime().getTime()){
-                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+member.getName()+"銆戝煿璁湁鏁堟湡淇℃伅涓虹┖锛岃杩斿洖瀹屽杽鍚庡啀杩涜璇ユ搷浣滐紒");
+            for (Integer id : memberRole.getIds()){
+                Member member = memberMapper.selectById(id);
+                if(member==null || member.getIsdeleted().equals(Constants.ONE)){
+                    //濡傛灉鍛樺伐淇℃伅涓嶅悎娉曠洿鎺ヨ烦杩�
+                    continue;
                 }
-                if(trainTime.getEndTime() .getTime()< System.currentTimeMillis()){
-                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+member.getName()+"銆戝煿璁湁鏁堟湡宸茶繃鏈燂紝璇烽噸鏂颁笂浼犲叾鍩硅鏈夋晥鏈燂紒");
+                if(StringUtils.isBlank(member.getFaceId()) || !Constants.equalsInteger(member.getFaceStatus(),Constants.ONE)){
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+member.getName()+"銆戠殑浜鸿劯淇℃伅涓嶆弧瓒虫巿鏉冩潯浠讹紝璇疯繑鍥炲畬鍠勫悗鍐嶈繘琛岃鎿嶄綔锛�");
                 }
-                memberRole.setStartTime(trainTime.getStartTime());
-                memberRole.setEndTime(trainTime.getEndTime());
+                member.setStartTime(memberRole.getStartTime());
+                member.setEndTime(memberRole.getEndTime());
+                Integer ischange = getRoleIdByParam(memberRole.getRoleIds(),member,memberRoleMapper,deviceRoleMapper);
+                if(memberRole.getRoleIds()!=null && memberRole.getRoleIds().length>0 && StringUtils.isBlank(member.getRoleId())){
+                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鏈煡璇㈠埌鏈夋晥闂ㄧ缁勬暟鎹�");
+                }
+                if(Constants.equalsInteger(memberRole.getTimeType(),Constants.TWO)){
+                    //濡傛灉鎸夌収鍩硅鏃ユ湡涓嬪彂
+                    TrainTime trainTime = trainTimeMapper.selectOne(new QueryWrapper<TrainTime>().lambda()
+                            .eq(TrainTime::getMemberId,id )
+                            .eq(TrainTime::getIsdeleted,Constants.ZERO )
+                            .orderByDesc(TrainTime::getId)
+                            .last("limit 1")
+                    );
+                    if(trainTime == null || trainTime.getStartTime()==null || trainTime.getEndTime() ==null || trainTime.getStartTime().getTime()>=trainTime.getEndTime().getTime()){
+                        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+member.getName()+"銆戝煿璁湁鏁堟湡淇℃伅涓虹┖锛岃杩斿洖瀹屽杽鍚庡啀杩涜璇ユ搷浣滐紒");
+                    }
+                    if(trainTime.getEndTime() .getTime()< System.currentTimeMillis()){
+                        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+member.getName()+"銆戝煿璁湁鏁堟湡宸茶繃鏈燂紝璇烽噸鏂颁笂浼犲叾鍩硅鏈夋晥鏈燂紒");
+                    }
+                    memberRole.setStartTime(trainTime.getStartTime());
+                    memberRole.setEndTime(trainTime.getEndTime());
+                }
+                memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+                        .eq(Member::getId,member.getId())
+                        .set(Member::getRoleId,member.getRoleId())
+                        .set(Member::getAuthStatus,Constants.ONE)
+                        .set(Member::getStartTime,memberRole.getStartTime())
+                        .set(Member::getEndTime,memberRole.getEndTime())
+                        .set(Member::getEditor,memberRole.getLoginUserInfo().getId())
+                        .set(Member::getEditDate,new Date()) );
+                saveUserActionBiz(member,memberRole.getLoginUserInfo(), Constants.UserActionType.AUTH_ROLE,userActionJoinMapper,null);
+                //閲嶆柊鎺堟潈
+                HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper);
             }
-            memberMapper.update(null,new UpdateWrapper<Member>().lambda()
-                    .eq(Member::getId,member.getId())
-                    .set(Member::getRoleId,member.getRoleId())
-                    .set(Member::getAuthStatus,Constants.ONE)
-                    .set(Member::getStartTime,memberRole.getStartTime())
-                    .set(Member::getEndTime,memberRole.getEndTime())
-                    .set(Member::getEditor,memberRole.getLoginUserInfo().getId())
-                    .set(Member::getEditDate,new Date()) );
-            saveUserActionBiz(member,memberRole.getLoginUserInfo(), Constants.UserActionType.AUTH_ROLE,userActionJoinMapper,null);
-            //閲嶆柊鎺堟潈
-            HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper);
         }
     }
 
@@ -977,6 +1009,8 @@
                     .set(Member::getStartTime,null)
                     .set(Member::getEndTime,null)
                     .set(Member::getRoleId,null)
+                    .set(StringUtils.isNotBlank(updateMember.getErpId()),Member::getErpId,updateMember.getErpId())
+                    .set(StringUtils.isNotBlank(updateMember.getDdId()),Member::getDdId,updateMember.getDdId())
                     .set(StringUtils.isNotBlank(updateMember.getPhone()),Member::getPhone,updateMember.getPhone())
                     .set(StringUtils.isNotBlank(updateMember.getName()),Member::getName,updateMember.getName())
                     .set(Member::getEditDate,updateMember.getEditDate())
@@ -995,7 +1029,7 @@
                     .set(updateMember.getFaceId()!=null,Member::getFaceId,updateMember.getFaceId())
                     .set(updateMember.getCompanyId()!=null,Member::getCompanyId,updateMember.getCompanyId())
                     .set(Member::getCode,updateMember.getCode())
-    //                    .set(StringUtils.isNotBlank(updateMember.getCode()),Member::getCode,updateMember.getCode())
+                    //                    .set(StringUtils.isNotBlank(updateMember.getCode()),Member::getCode,updateMember.getCode())
                     .set( updateMember.getPositionId()!=null,Member::getPositionId,updateMember.getPositionId())
                     .set( updateMember.getIsDangyuan()!=null,Member::getIsDangyuan,updateMember.getIsDangyuan())
                     .set( updateMember.getJobDate()!=null,Member::getJobDate,updateMember.getJobDate())
@@ -2071,7 +2105,7 @@
                 .eq(Member::getStatus,Constants.ZERO)
                 .eq(Member::getWorkStatus,Constants.ZERO)
                 .eq(Member::getCanVisit,Constants.ONE)
-                .eq(Company::getType,Constants.ONE)
+//                .eq(Company::getType,Constants.ONE)
                 .orderByAsc(Member::getPinyin)
         );
         List<MemberVO> memberVOList = new ArrayList<>();
@@ -2479,20 +2513,37 @@
      */
     @Override
     public void dealJdyMemberInfo(MemberPushData data){
-        if(StringUtils.isBlank(data.getUsername())
+        if(data.getDeleter()!=null){
+            //濡傛灉鏄凡缁忓垹闄や汉鍛橈紝涓嶅鐞� //鍐呴儴浜哄憳淇℃伅
+            Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+                    .eq( Member::getErpId,data.get_id() )
+                    .eq( Member::getIsdeleted,Constants.ZERO )
+                    .eq( Member::getType,Constants.TWO )
+                    .last("limit 1"));
+            if(member == null){
+                //濡傛灉鏄凡缁忓垹闄や汉鍛橈紝涓嶅鐞�
+                return;
+            }
+            //濡傛灉鏄凡缁忓垹闄や汉鍛�,鍒犻櫎鏈嶅姟涓績浜哄憳
+            this.deleteById(member.getId(),null);
+            return;
+        }
+
+        if(StringUtils.isBlank(data.get_id())
+                ||StringUtils.isBlank(data.getUsername())
                 ||StringUtils.isBlank(data.getPhone())
                 ||StringUtils.isBlank(data.getName())){
             throw  new BusinessException(ResponseStatus.JDY_BAD_REQUEST.getCode(),"浜哄憳淇℃伅涓嶅畬鏁达紒");
         }
         //鍐呴儴浜哄憳淇℃伅
         Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
-                .eq( Member::getErpId,data.getUsername() )
+                .eq( Member::getErpId,data.get_id() )
                 .eq( Member::getIsdeleted,Constants.ZERO )
                 .eq( Member::getType,Constants.TWO )
                 .last("limit 1"));
         if(member ==null){
             //濡傛灉erpid鏈粦瀹氾紝鎸夋墜鏈哄彿鏌ヨ鐢ㄦ埛
-              member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+            member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
                     .eq( Member::getPhone,data.getPhone() )
                     .eq( Member::getIsdeleted,Constants.ZERO )
                     .eq( Member::getType,Constants.TWO )
@@ -2500,26 +2551,15 @@
         }
         boolean addOrEdit = false;
         if(member == null){
-            //鏂板浜哄憳
-            if(data.getDeleter()!=null){
-                //濡傛灉鏄凡缁忓垹闄や汉鍛橈紝涓嶅鐞�
-                return;
-            }
             member = getAddOrUpdateModelFromJDY(data,true);
             this.create(member);
             addOrEdit=true;
         }else{
-            //鏇存柊浜哄憳
-            if(data.getDeleter()!=null){
-                //濡傛灉鏄凡缁忓垹闄や汉鍛橈紝涓嶅鐞�
-                this.deleteById(member.getId(),null);
-            }else{
-                //鏇存柊浜哄憳淇℃伅
-                Member updateMember =getAddOrUpdateModelFromJDY(data,false);
-                updateMember.setId(member.getId());
-                addOrEdit=true;
-                this.updateById(updateMember);
-            }
+            //鏇存柊浜哄憳淇℃伅
+            Member updateMember =getAddOrUpdateModelFromJDY(data,false);
+            updateMember.setId(member.getId());
+            addOrEdit=true;
+            this.updateById(updateMember);
         }
         if(addOrEdit && Constants.equalsInteger(member.getHeadStatus(),Constants.ONE) && member.getCompanyModel()!=null){
             //濡傛灉鏄儴闂ㄤ富绠�
@@ -2549,7 +2589,8 @@
         if(StringUtils.isNotBlank(data.getMaster())){
             member.setHeadStatus(StringUtils.equals(data.getMaster(),"鏄�")?1:0);
         }
-        member.setErpId(data.getUsername());
+        member.setErpId(data.get_id());
+        member.setDdId(data.getUsername());
         if(data.getDepartment()!=null){
             member.setErpOrgId(data.getDepartment().getDept_no());
         }
@@ -2590,7 +2631,7 @@
 
     private String getMemberImgByJdyImg(String imgurl) {
         try {
-            String folder =   systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+            String folder = systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
             FtpUtil ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(),
                     Integer.parseInt(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode()),
                     systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode(),
@@ -2614,10 +2655,10 @@
                     selectAll(SystemUser.class )
                     .leftJoin(Member.class,Member::getId,SystemUser::getMemberId)
                     .eq(SystemUser::getDeleted,Boolean.FALSE)
-                    .eq(Member::getErpId,user.getUsername())
+                    .eq(Member::getDdId,user.getUsername())
                     .last("limit 1"));
         }
-       return null;
+        return null;
     }
 
     @Override

--
Gitblit v1.9.3