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 | 199 +++++++++++++++++++++++++++++++------------------
1 files changed, 127 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 3584cca..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,44 +2513,60 @@
*/
@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 )
.last("limit 1"));
}
+ 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());
- 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){
+ //濡傛灉鏄儴闂ㄤ富绠�
+ Company updateCom = new Company();
+ updateCom.setHeadId(member.getId());
+ updateCom.setId(member.getCompanyModel().getId());
+ companyMapper.updateById(updateCom);//鏇存柊閮ㄩ棬涓荤浜哄憳
}
}
@@ -2536,7 +2586,11 @@
if(StringUtils.isNotBlank(data.getCan_visit())){
member.setCanVisit(StringUtils.equals(data.getCan_visit(),"鍙嫓璁�")?1:0);
}
- member.setErpId(data.getUsername());
+ if(StringUtils.isNotBlank(data.getMaster())){
+ member.setHeadStatus(StringUtils.equals(data.getMaster(),"鏄�")?1:0);
+ }
+ member.setErpId(data.get_id());
+ member.setDdId(data.getUsername());
if(data.getDepartment()!=null){
member.setErpOrgId(data.getDepartment().getDept_no());
}
@@ -2577,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(),
@@ -2601,15 +2655,16 @@
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
public String syncJdyUserInfo() {
- DeptApiClient deptApiClient = new DeptApiClient(systemDictDataBiz.queryByCode(Constants.JDY_CONFIG, Constants.API_KEY).getCode(), HttpConstant.HOST);
+ DeptApiClient deptApiClient = new DeptApiClient(systemDictDataBiz.queryByCode(Constants.JDY_CONFIG, Constants.JDY_API_KEY).getCode()
+ ,systemDictDataBiz.queryByCode(Constants.JDY_CONFIG, Constants.JDY_API_HOST).getCode());
try {
Map<String, Object> result = deptApiClient.deptMemberList(1,true,deptApiClient.getDefaultVersion());
if(result!=null && result.get("users")!=null ){
--
Gitblit v1.9.3