From 46e8af542c02d801bea9fa8cf8f55974dcfa8554 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 30 十二月 2025 11:03:00 +0800
Subject: [PATCH] 更改头部
---
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 733 ++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 494 insertions(+), 239 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 a9ae43a..5b8ff5b 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
@@ -2,7 +2,9 @@
import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.PhoneUtil;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -23,6 +25,12 @@
import com.doumee.core.haikang.model.param.respose.UserAddResponse;
import com.doumee.core.haikang.model.param.respose.UserDelResponse;
import com.doumee.core.haikang.service.HKService;
+import com.doumee.core.jiandaoyun.api.arch.DeptApiClient;
+import com.doumee.core.jiandaoyun.constants.HttpConstant;
+import com.doumee.core.jiandaoyun.model.dept.DeptEntityModel;
+import com.doumee.core.jiandaoyun.model.request.MemberPushData;
+import com.doumee.core.jiandaoyun.model.request.UserPushData;
+import com.doumee.core.jiandaoyun.model.user.UserEntityModel;
import com.doumee.dao.web.response.DDAuthorizeVO;
import com.doumee.service.business.third.TmsService;
import com.doumee.service.business.third.model.LoginUserInfo;
@@ -59,17 +67,21 @@
import com.doumee.service.business.third.model.response.TmsEmployeeListResponse;
import com.doumee.service.system.SystemLoginService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
-import com.taobao.api.ApiException;
+import lombok.Synchronized;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.util.DataUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.shiro.SecurityUtils;
+import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -86,6 +98,7 @@
* @author 姹熻箘韫�
* @date 2023/11/30 15:33
*/
+@Slf4j
@Service
public class MemberServiceImpl implements MemberService {
@@ -153,7 +166,7 @@
@Autowired
private DingTalk dingTalk;
-
+
@Value("${debug_model}")
private Boolean isDebug;
@Override
@@ -169,18 +182,18 @@
Member insert = initAddMemberModel(member,loginUserInfo);
//娴峰悍浜哄憳鏂板涓氬姟
try {
- if(dealHkUserBiz(insert)){
- memberMapper.insert(insert);
- //鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛�
+// if(dealHkUserBiz(insert)){
+ memberMapper.insert(insert);
+ //鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛�
// if(Constants.equalsInteger(member.getCompanyType(),Constants.ONE)){
- //濡傛灉鏄唴閮ㄧ粍缁囦汉鍛橈紝鏂板绯荤粺鐧婚檰璐﹀彿
- systemUserMapper.insert(createSystemUser(insert,systemDictDataBiz));
- //澶勭悊鍩硅鏈夋晥鏈熶笟鍔�
- dealTrainTIme(member,0,loginUserInfo);
+ //濡傛灉鏄唴閮ㄧ粍缁囦汉鍛橈紝鏂板绯荤粺鐧婚檰璐﹀彿
+ systemUserMapper.insert(createSystemUser(insert,systemDictDataBiz));
+ //澶勭悊鍩硅鏈夋晥鏈熶笟鍔�
+ dealTrainTIme(member,0,loginUserInfo);
// }
- }else{
- throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃绋嶅悗閲嶈瘯锛�");
- }
+// }else{
+// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+// }
}catch (BusinessException e){
//濡傛灉鍙戠敓寮傚父锛屽垹闄ゅ凡缁忓垱寤虹殑浜哄憳淇℃伅
deleteHkUserBiz(new String[]{insert.getHkId()});
@@ -193,6 +206,7 @@
}
return insert;
}
+
public static SystemUser createSystemUser(Member insert,SystemDictDataBiz systemDictDataBiz) {
SystemUser user = new SystemUser();
// 鐢熸垚瀵嗙爜鐩�
@@ -239,12 +253,12 @@
insert.setHkDate(new Date());
insert.setDdId(member.getDdId());
insert.setErpId(member.getErpId());
- insert.setWorkStatus(Constants.ZERO);//榛樿鍦ㄨ亴
- insert.setCanVisit(Constants.ZERO);//榛樿涓嶅彲璁块棶
+ insert.setWorkStatus(Constants.formatIntegerNum(member.getWorkStatus()));//榛樿鍦ㄨ亴
+ insert.setCanVisit(Constants.formatIntegerNum(member.getCanVisit()));//榛樿涓嶅彲璁块棶
insert.setAuthStatus(Constants.ZERO);
insert.setName(member.getName());
insert.setHkId(UUID.randomUUID().toString().replace("-",""));
- insert.setHkStatus(Constants.ONE);
+ insert.setHkStatus(Constants.ZERO);
insert.setSex(Constants.getSexByCardNo( member.getIdcardNo()));//鏍规嵁韬唤璇佸彿鑾峰彇鎬у埆
insert.setJobDate(member.getJobDate());
insert.setIsDangyuan(member.getIsDangyuan());
@@ -365,7 +379,7 @@
private void isMemberParamValid(Member member) {
if(member.getCompanyId() == null){
- throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎵�灞炵粍缁囦笉瀛樺湪锛�");
}
if (StringUtils.isBlank(member.getPhone())||!PhoneUtil.isPhone(member.getPhone())){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢佃瘽鍙风爜鏍煎紡鏈夎");
@@ -387,13 +401,13 @@
.eq(Member::getIsdeleted,Constants.ZERO) ) >0){
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙枫��"+member.getPhone()+"銆戝凡琚娇鐢紝涓嶈兘閲嶅");
}
- Company company = companyMapper.selectById(member.getCompanyId());
+ Company company = member.getCompany()!=null ?member.getCompany(): companyMapper.selectById(member.getCompanyId());
if(company == null || Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ョ粍缁囦俊鎭凡琚垹闄わ紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ョ粍缁囦俊鎭凡琚垹闄わ紒");
}
- if(StringUtils.isBlank(company.getHkId())){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ョ粍缁囦俊鎭湭鍚屾瀹夐槻骞冲彴锛岃鍏堝墠寰�銆愮粍缁囩鐞嗐�戣彍鍗曡繘琛岀淮鎶わ紒");
- }
+// if(StringUtils.isBlank(company.getHkId())){
+// throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ョ粍缁囦俊鎭湭鍚屾瀹夐槻骞冲彴锛岃鍏堝墠寰�銆愮粍缁囩鐞嗐�戣彍鍗曡繘琛岀淮鎶わ紒");
+// }
member.setHkOrgId(company.getHkId());
member.setCompanyType(company.getType());
if(Constants.equalsInteger(company.getType(),Constants.ONE)){
@@ -477,7 +491,7 @@
isNeedUpdateUser = true;
}
if(StringUtils.isNotBlank(member.getCode()) && StringUtils.equals(member.getPhone(),model.getCode())){
- // 楠岃瘉宸ュ彿
+ // 楠岃瘉宸ュ彿
SystemUser queryUserDto = new SystemUser();
queryUserDto = new SystemUser();
queryUserDto.setDeleted(Boolean.FALSE);
@@ -491,7 +505,7 @@
}
if(member.getCompanyId()!=null && !Constants.equalsInteger(member.getCompanyId(),model.getCompanyId())){
//濡傛灉缁勭粐鍙戠敓鍙樺寲
- Company company = companyMapper.selectById(member.getCompanyId());
+ Company company = member.getCompany()!=null ?member.getCompany(): companyMapper.selectById(member.getCompanyId());
if(company == null || Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇ョ粍缁囦俊鎭凡琚垹闄わ紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
}
@@ -508,15 +522,15 @@
if(isNeedUpdateUser){
//鏇存柊绯荤粺鐢ㄦ埛璐﹀彿淇℃伅
systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
- .set(SystemUser::getUpdateUser,member.getLoginUserInfo().getId())
- .set(SystemUser::getUpdateTime,new Date())
- .set(StringUtils.isNotBlank(member.getFaceImg()),SystemUser::getAvatar,member.getFaceImg())
- .set(StringUtils.isNotBlank(member.getName()),SystemUser::getPinyin,Constants.getChinesePingyin(member.getName()))
- .set(StringUtils.isNotBlank(member.getPhone()),SystemUser::getMobile,member.getPhone())
- .set(StringUtils.isNotBlank(member.getPhone()),SystemUser::getUsername,member.getPhone())
- .set(StringUtils.isNotBlank(member.getName()),SystemUser::getRealname,member.getName())
- .set(member.getCompanyId() !=null,SystemUser::getCompanyId,member.getCompanyId())
- .set(StringUtils.isNotBlank(member.getCode()),SystemUser::getEmpNo,member.getCode())
+ .set(SystemUser::getUpdateUser,member.getLoginUserInfo()!=null?member.getLoginUserInfo().getId():null)
+ .set(SystemUser::getUpdateTime,new Date())
+ .set(StringUtils.isNotBlank(member.getFaceImg()),SystemUser::getAvatar,member.getFaceImg())
+ .set(StringUtils.isNotBlank(member.getName()),SystemUser::getPinyin,Constants.getChinesePingyin(member.getName()))
+ .set(StringUtils.isNotBlank(member.getPhone()),SystemUser::getMobile,member.getPhone())
+ .set(StringUtils.isNotBlank(member.getPhone()),SystemUser::getUsername,member.getPhone())
+ .set(StringUtils.isNotBlank(member.getName()),SystemUser::getRealname,member.getName())
+ .set(member.getCompanyId() !=null,SystemUser::getCompanyId,member.getCompanyId())
+ .set(StringUtils.isNotBlank(member.getCode()),SystemUser::getEmpNo,member.getCode())
.eq(SystemUser::getMemberId,model.getId()));
}
if(Constants.equalsInteger(model.getCompanyType(),Constants.ZERO)
@@ -524,7 +538,7 @@
&& member.getTrainStartTime()!=null){
TrainTime trainTime = new TrainTime();
trainTime.setIsdeleted(Constants.ZERO);
- trainTime.setCreator(member.getLoginUserInfo().getId());
+ trainTime.setCreator(member.getLoginUserInfo()!=null?member.getLoginUserInfo().getId():null);
trainTime.setCreateDate(new Date());
trainTime.setEdirot(trainTime.getCreator());
trainTime.setEditDate(trainTime.getCreateDate());
@@ -609,7 +623,7 @@
Member member=new Member();
member.setId(id);
member.setIsdeleted(Constants.ONE);
- member.setEditor(loginUserInfo.getId());
+ member.setEditor(loginUserInfo!=null?loginUserInfo.getId():null);
member.setEditDate(date);
member.setHkStatus(Constants.ZERO);
member.setRemark("浜哄憳宸插垹闄わ紝绛夊緟鍒犻櫎闂ㄧ鏉冮檺");
@@ -633,20 +647,20 @@
);
if (carsList!=null && carsList.size()>0){
for(Cars car :carsList){
- if(Constants.equalsInteger(car.getAuthStatus(),Constants.ONE)){
- carsMapper.update(null,new UpdateWrapper<Cars>().lambda()
- .eq(Cars::getId,car.getId())
- .set(Cars::getStartTime,null)
+ if(Constants.equalsInteger(car.getAuthStatus(),Constants.ONE)){
+ carsMapper.update(null,new UpdateWrapper<Cars>().lambda()
+ .eq(Cars::getId,car.getId())
+ .set(Cars::getStartTime,null)
// .set(Cars::getMemberId,null)
- .set(Cars::getEndTime,null)
- .set(Cars::getAuthTimeType,null)
- .set(Cars::getAuthStatus,Constants.ZERO)
- .set(Cars::getEditDate,member.getEditDate())
- .set(Cars::getEdirot,member.getEditor())
- );
- //鍒犻櫎宸叉巿鏉冧笅鍙戠殑鍖呮湡鎺堟潈
- CarsServiceImpl.dealCancelBookBiz(car.getCode(),date,parkBookMapper);
- }
+ .set(Cars::getEndTime,null)
+ .set(Cars::getAuthTimeType,null)
+ .set(Cars::getAuthStatus,Constants.ZERO)
+ .set(Cars::getEditDate,member.getEditDate())
+ .set(Cars::getEdirot,member.getEditor())
+ );
+ //鍒犻櫎宸叉巿鏉冧笅鍙戠殑鍖呮湡鎺堟潈
+ CarsServiceImpl.dealCancelBookBiz(car.getCode(),date,parkBookMapper);
+ }
}
}
}
@@ -683,14 +697,14 @@
}
}
if(Constants.equalsInteger(memberRole.getTimeType(),Constants.ZERO) ){
- memberRole.setStartTime(null);
- memberRole.setEndTime(null);
+ 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;
+ continue;
}
if(StringUtils.isBlank(member.getFaceId()) || !Constants.equalsInteger(member.getFaceStatus(),Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+member.getName()+"銆戠殑浜鸿劯淇℃伅涓嶆弧瓒虫巿鏉冩潯浠讹紝璇疯繑鍥炲畬鍠勫悗鍐嶈繘琛岃鎿嶄綔锛�");
@@ -729,7 +743,7 @@
saveUserActionBiz(member,memberRole.getLoginUserInfo(), Constants.UserActionType.AUTH_ROLE,userActionJoinMapper,null);
//閲嶆柊鎺堟潈
HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,member,deviceRoleMapper,empowerMapper,deviceMapper);
- }
+ }
}
public static Integer getRoleIdByParam(Integer[] param, Member member,MemberRoleMapper memberRoleMapper,DeviceRoleMapper deviceRoleMapper) {
@@ -744,7 +758,7 @@
//妫�鏌ョ敤鎴锋儏鍐垫潈闄愬師鏈氨鏄┖鐨勶紝 鍒欐棤闇�澶勭悊
return 0;
}
- if((param == null || param.length==0 ) &&( roleList!=null && roleList.size()>0) ){
+ if((param == null || param.length==0 ) &&( roleList!=null && roleList.size()>0) ){
//濡傛灉娓呯┖鍘熸潵鏈夋潈闄愶紝鎺ュ彛杩涜鏉冮檺鍒犻櫎鍘熸湁鏉冮檺鍗冲彲
memberRoleMapper.delete(new QueryWrapper<MemberRole>().lambda().eq(MemberRole::getMemberId,member.getId()));
return 1;
@@ -831,14 +845,14 @@
@Override
public void empowerByList(Member member) {
if(member.getIdList()!=null && member.getIdList().size() >0){
- List<Member> members = memberMapper.selectList(new QueryWrapper<Member>().lambda()
- .in(Member::getId,member.getIdList())
- .eq(Member::getIsdeleted,Constants.ZERO));
- if(members!=null){
- for(Member m : members){
- HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,m,deviceRoleMapper,empowerMapper,deviceMapper);
- }
- }
+ List<Member> members = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+ .in(Member::getId,member.getIdList())
+ .eq(Member::getIsdeleted,Constants.ZERO));
+ if(members!=null){
+ for(Member m : members){
+ HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,m,deviceRoleMapper,empowerMapper,deviceMapper);
+ }
+ }
}
}
@@ -951,45 +965,47 @@
}
//鏍¢獙鍙傛暟 骞朵笖鏇存柊systemuser 鎵嬫満鍙峰拰宸ュ彿淇℃伅锛堝鏋滈渶瑕佷慨鏀圭殑璇濓級
Member model = isMemberUpdateParamValid(updateMember);
- updateMember.setEditor(loginUserInfo.getId());
+ updateMember.setEditor(loginUserInfo!=null?loginUserInfo.getId():null);
updateMember.setEditDate(new Date());
//娴峰悍浜哄憳鏂板涓氬姟
- if(dealHkUserForUpdateBiz(updateMember)){
- updateMember.setHkId(null);
- updateMember.setAuthStatus(Constants.ZERO);
- memberMapper.update(null,new UpdateWrapper<Member>().lambda()
- .set(Member::getStartTime,null)
- .set(Member::getEndTime,null)
- .set(Member::getRoleId,null)
- .set(StringUtils.isNotBlank(updateMember.getPhone()),Member::getPhone,updateMember.getPhone())
- .set(StringUtils.isNotBlank(updateMember.getName()),Member::getName,updateMember.getName())
- .set(Member::getEditDate,updateMember.getEditDate())
- .set(Member::getEditor,updateMember.getEditor())
- .set(StringUtils.isNotBlank(updateMember.getName()),Member::getPinyin,Constants.getChinesePingyin(updateMember.getName()))
- .set(StringUtils.isNotBlank(updateMember.getIdcardNo()),Member::getIdcardNo,updateMember.getIdcardNo())
- .set(StringUtils.isNotBlank(updateMember.getIdcardDecode()),Member::getIdcardDecode,updateMember.getIdcardDecode())
- .set( Member::getAuthStatus,Constants.ZERO)
- .set(updateMember.getHkStatus()!=null,Member::getHkStatus,updateMember.getHkStatus())
- .set(updateMember.getSex()!=null,Member::getSex,updateMember.getSex())
- .set(updateMember.getFaceStatus()!=null,Member::getFaceStatus,updateMember.getFaceStatus())
- .set(updateMember.getHkDate()!=null,Member::getHkDate,updateMember.getHkDate())
- .set(StringUtils.isNotBlank(updateMember.getRemark()),Member::getRemark,updateMember.getRemark())
- .set(StringUtils.isNotBlank(updateMember.getFaceImg()),Member::getFaceImg,updateMember.getFaceImg())
- .set(updateMember.getFaceId()!=null,Member::getFaceId,updateMember.getFaceId())
- .set(updateMember.getCompanyId()!=null,Member::getCompanyId,updateMember.getCompanyId())
- .set(Member::getCode,updateMember.getCode())
+// if(dealHkUserForUpdateBiz(updateMember)){
+ updateMember.setHkId(null);
+ updateMember.setAuthStatus(Constants.ZERO);
+ memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+ .set(Member::getStartTime,null)
+ .set(Member::getEndTime,null)
+ .set(Member::getRoleId,null)
+ .set(StringUtils.isNotBlank(updateMember.getPhone()),Member::getPhone,updateMember.getPhone())
+ .set(StringUtils.isNotBlank(updateMember.getName()),Member::getName,updateMember.getName())
+ .set(Member::getEditDate,updateMember.getEditDate())
+ .set(Member::getEditor,updateMember.getEditor())
+ .set(StringUtils.isNotBlank(updateMember.getName()),Member::getPinyin,Constants.getChinesePingyin(updateMember.getName()))
+ .set(StringUtils.isNotBlank(updateMember.getIdcardNo()),Member::getIdcardNo,updateMember.getIdcardNo())
+ .set(StringUtils.isNotBlank(updateMember.getIdcardDecode()),Member::getIdcardDecode,updateMember.getIdcardDecode())
+ .set( Member::getAuthStatus,Constants.ZERO)
+ .set(updateMember.getHkStatus()!=null,Member::getHkStatus,updateMember.getHkStatus())
+ .set(updateMember.getSex()!=null,Member::getSex,updateMember.getSex())
+ .set(updateMember.getCanVisit()!=null,Member::getCanVisit,updateMember.getCanVisit())
+ .set(updateMember.getFaceStatus()!=null,Member::getFaceStatus,updateMember.getFaceStatus())
+ .set(updateMember.getHkDate()!=null,Member::getHkDate,updateMember.getHkDate())
+ .set(updateMember.getHkDate()!=null,Member::getHkDate,updateMember.getHkDate())
+ .set(StringUtils.isNotBlank(updateMember.getRemark()),Member::getRemark,updateMember.getRemark())
+ .set(StringUtils.isNotBlank(updateMember.getFaceImg()),Member::getFaceImg,updateMember.getFaceImg())
+ .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( updateMember.getPositionId()!=null,Member::getPositionId,updateMember.getPositionId())
- .set( updateMember.getIsDangyuan()!=null,Member::getIsDangyuan,updateMember.getIsDangyuan())
- .set( updateMember.getJobDate()!=null,Member::getJobDate,updateMember.getJobDate())
- .eq(Member::getId,updateMember.getId()));
- dealTrainTIme(updateMember,1,loginUserInfo);
- cancelAllMemberEmpower(updateMember,memberRoleMapper,empowerMapper);
- //璁板綍鎿嶄綔鏃ュ織
- saveUserActionBiz(updateMember,loginUserInfo,Constants.UserActionType.EDIT,userActionJoinMapper,null);
- }else{
- throw new BusinessException(ResponseStatus.SERVER_ERROR.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())
+ .eq(Member::getId,updateMember.getId()));
+ dealTrainTIme(updateMember,1,loginUserInfo);
+ cancelAllMemberEmpower(updateMember,memberRoleMapper,empowerMapper);
+ //璁板綍鎿嶄綔鏃ュ織
+ saveUserActionBiz(updateMember,loginUserInfo,Constants.UserActionType.EDIT,userActionJoinMapper,null);
+// }else{
+// throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅鍚屾瀹夐槻骞冲彴澶辫触锛岃绋嶅悗閲嶈瘯锛�");
+// }
}
private void dealTrainTIme(Member updateMember, int i,LoginUserInfo loginUserInfo) {
@@ -1015,7 +1031,7 @@
public static void saveUserActionBiz(Member updateMember,LoginUserInfo user, Constants.UserActionType type,UserActionJoinMapper userActionMapper,String content) {
updateMember.setEditDate(updateMember.getEditDate()==null?new Date():updateMember.getEditDate());
- UserAction userAction=new UserAction();
+ UserAction userAction=new UserAction();
userAction.setIsdeleted(Constants.ZERO);
userAction.setCreateDate(updateMember.getEditDate());
userAction.setCreator(updateMember.getEditor());
@@ -1033,39 +1049,39 @@
QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
wrapper.lambda().ne(Member::getRemark,"浜鸿劯宸插悓姝ユ渶鏂�");
List<Member> list =memberMapper.selectList(wrapper);
- if(list!=null){
- String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
- +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
- for(Member m : list){
- String faceId= HkSyncOrgUserToHKServiceImpl.dealMemberFace(m,path);
- if(StringUtils.isNotBlank(faceId)){
- Member update = new Member();
- update.setId(m.getId());
- update.setFaceId(faceId);
- update.setRemark("浜鸿劯宸插悓姝ユ渶鏂�");
- update.setFaceStatus(Constants.ONE);
- memberMapper.updateById(update);
- return true;
- }
- }
- }
- return false;
+ if(list!=null){
+ String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
+ +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+ for(Member m : list){
+ String faceId= HkSyncOrgUserToHKServiceImpl.dealMemberFace(m,path);
+ if(StringUtils.isNotBlank(faceId)){
+ Member update = new Member();
+ update.setId(m.getId());
+ update.setFaceId(faceId);
+ update.setRemark("浜鸿劯宸插悓姝ユ渶鏂�");
+ update.setFaceStatus(Constants.ONE);
+ memberMapper.updateById(update);
+ return true;
+ }
+ }
+ }
+ return false;
}
@Override
public void delHkForce(Member member) {
- Member model =memberMapper.selectById(member.getId());
- if(model ==null) {
+ Member model =memberMapper.selectById(member.getId());
+ if(model ==null) {
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浜哄憳淇℃伅涓嶅瓨鍦紒");
- }
+ }
if(!Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鍙湁閽堝绂昏亴浜哄憳鍙繘琛岃鎿嶄綔锛�");
- }
+ }
if(Constants.equalsInteger(model.getHkStatus(),Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヤ汉鍛樺凡琚垹闄わ紒");
- }
+ }
if(StringUtils.isBlank(model.getHkId())){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヤ汉鍛橀潪瀹夐槻骞冲彴鍒涘缓浜哄憳锛屼笉鑳借繘琛岃鎿嶄綔锛�");
- }
+ }
HkSyncEmpowerServiceImpl.doHkDeleteUser(model.getId(),model.getHkId(),new Date(),memberMapper,memberCardMapper);
}
@Override
@@ -1074,23 +1090,23 @@
if(model ==null) {
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝浜哄憳淇℃伅涓嶅瓨鍦紒");
}
- if(model.getCompanyId()!=null) {
- if(Constants.equalsInteger(member.getHeadStatus(),Constants.ONE)){
- //濡傛灉鏄彇娑堜富绠�
- companyMapper.update(null,new UpdateWrapper<Company>().lambda()
- .eq(Company::getId,model.getCompanyId())
- .set(Company::getHeadId,member.getId()));
- //璁板綍鎿嶄綔鏃ュ織
- saveUserActionBiz(member,member.getLoginUserInfo(), Constants.UserActionType.BE_HEAD,userActionJoinMapper,null);
- }else{
- //濡傛灉鏄涓轰富绠�
- companyMapper.update(null,new UpdateWrapper<Company>().lambda()
- .eq(Company::getId,model.getCompanyId())
- .set(Company::getHeadId,null)
- );
- saveUserActionBiz(member,member.getLoginUserInfo(),Constants.UserActionType.NOT_HEAD,userActionJoinMapper,null);
- }
- }
+ if(model.getCompanyId()!=null) {
+ if(Constants.equalsInteger(member.getHeadStatus(),Constants.ONE)){
+ //濡傛灉鏄彇娑堜富绠�
+ companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+ .eq(Company::getId,model.getCompanyId())
+ .set(Company::getHeadId,member.getId()));
+ //璁板綍鎿嶄綔鏃ュ織
+ saveUserActionBiz(member,member.getLoginUserInfo(), Constants.UserActionType.BE_HEAD,userActionJoinMapper,null);
+ }else{
+ //濡傛灉鏄涓轰富绠�
+ companyMapper.update(null,new UpdateWrapper<Company>().lambda()
+ .eq(Company::getId,model.getCompanyId())
+ .set(Company::getHeadId,null)
+ );
+ saveUserActionBiz(member,member.getLoginUserInfo(),Constants.UserActionType.NOT_HEAD,userActionJoinMapper,null);
+ }
+ }
}
@Override
@@ -1273,12 +1289,12 @@
List<Member> list = memberJoinMapper.selectList(queryWrapper);
if(list!=null){
for(Member m : list){
- if(m.getName()!=null){
- Member u = new Member();
- u.setId(m.getId());
- u.setPinyin(Constants.getChinesePingyin(m.getName()));
- memberMapper.updateById(u);
- }
+ if(m.getName()!=null){
+ Member u = new Member();
+ u.setId(m.getId());
+ u.setPinyin(Constants.getChinesePingyin(m.getName()));
+ memberMapper.updateById(u);
+ }
}
}
@@ -1316,7 +1332,7 @@
Utils.MP.blankToNull(pageWrap.getModel());
if (pageWrap.getModel().getKeyword() != null) {
queryWrapper.lambda().and( ms->ms.like(Member::getName,pageWrap.getModel().getKeyword())
- .or().like(Member::getPhone,pageWrap.getModel().getKeyword())
+ .or().like(Member::getPhone,pageWrap.getModel().getKeyword())
.or().like(Member::getCode,pageWrap.getModel().getKeyword()));
}
if(pageWrap.getModel().getType() != null){
@@ -1549,7 +1565,8 @@
.eq(pageWrap.getModel().getHkStatus()!=null,Member::getHkStatus,pageWrap.getModel().getHkStatus())
.orderByAsc(Company::getSortnum)
- .orderByAsc(Position::getSortnum);
+ .orderByAsc(Position::getSortnum)
+ .orderByAsc(Member::getId);
// .orderByAsc(!Constants.equalsInteger(pageWrap.getModel().getIsdeleted(),Constants.ONE),Member::getPinyin)
// .orderByDesc(Constants.equalsInteger(pageWrap.getModel().getIsdeleted(),Constants.ONE),Member::getEditDate);
if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin())==DataSyncConfig.origin.erp){
@@ -1575,7 +1592,7 @@
systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
//闂ㄧ缁勪俊鎭�
List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda()
- .select(DeviceRole::getId,DeviceRole::getName)
+ .select(DeviceRole::getId,DeviceRole::getName)
.eq(DeviceRole::getIsdeleted,Constants.ZERO));
for (Member memberInfoDTO:memberIPage.getRecords()) {
//鑾峰緱闂ㄧ缁勫悕绉版暟缁�
@@ -1641,8 +1658,8 @@
queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
queryWrapper.selectAll(Member.class)
.selectAs(Company::getName,Member::getCompanyName)
- .selectAs(Position::getName,Member::getPositionName)
- .leftJoin(Position.class,Position::getId,Member::getPositionId)
+ .selectAs(Position::getName,Member::getPositionName)
+ .leftJoin(Position.class,Position::getId,Member::getPositionId)
.selectAs(Member::getLastVisitDate,Member::getLastVisitDate)
.select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 and v.status in (7,8) ) as visitTimes");
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Member::getName,pageWrap.getModel().getName())
@@ -1681,14 +1698,14 @@
.selectAs(Company::getCompanyNamePath,Member::getCompanyName)
.select(" (select ua.remark from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0 and ua.type="+actiontype+" order by ua.CREATE_DATE desc limit 1) as optRemark")
.eq(Member::getIsdeleted,Constants.ZERO);
- queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCreaterId()),Member::getEditor,pageWrap.getModel().getCreaterId());
- queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Member::getType,pageWrap.getModel().getType());
- queryWrapper
+ queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCreaterId()),Member::getEditor,pageWrap.getModel().getCreaterId());
+ queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Member::getType,pageWrap.getModel().getType());
+ queryWrapper
.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Member::getPhone,pageWrap.getModel().getName())
.or().like(Member::getName,pageWrap.getModel().getName()))
.and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),
ms->ms.like(Company::getName,pageWrap.getModel().getCompanyName())
- .or().like(Member::getVisitCompanyName,pageWrap.getModel().getCompanyName()))
+ .or().like(Member::getVisitCompanyName,pageWrap.getModel().getCompanyName()))
.like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo())
.eq(Member::getStatus,Constants.Status.FREEZE.getValue())
.eq((pageWrap.getModel().getCompanyId())!=null,Company::getId,pageWrap.getModel().getCompanyId())
@@ -1796,7 +1813,7 @@
.apply("to_days(LAST_VISIT_DATE)+ "+days+" < to_days(now())" )
.orderByAsc(Member::getPinyin));
if(CollectionUtils.isEmpty(memberList)){
- return;
+ return;
}
List<Integer> memberIds = memberList.stream().map(m->m.getId()).collect(Collectors.toList());
//鍐荤粨鐘舵��
@@ -2043,7 +2060,7 @@
public List<MemberVO> getVisitedMember(CheckVisitedDTO checkVisitedDTO){
List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
.selectAll(Member.class)
- .selectAs(Company::getName,Member::getCompanyName)
+ .selectAs(Company::getName,Member::getCompanyName)
.leftJoin(Company.class,Company::getId,Member::getCompanyId)
.selectAs(Position::getName,Member::getPositionName)
.leftJoin(Position.class,Position::getId,Member::getPositionId)
@@ -2143,8 +2160,8 @@
.groupBy(Company::getId,Company::getName)
);
List<Map<String,Object>> retentionMaps = retentionJoinMapper.selectMaps(new MPJLambdaWrapper<Retention>()
- .select(" count(1) as memberCount, type as memberType ")
- .ne(Retention::getType,3)
+ .select(" count(1) as memberCount, type as memberType ")
+ .ne(Retention::getType,3)
.groupBy(Retention::getType)
);
stagingHeadVO.setCompanyUsers(companyMaps);
@@ -2186,10 +2203,10 @@
model.setPhone(ScientificNotationTUtil.convertToString(model.getPhone()));
model.setIdcardNo(ScientificNotationTUtil.convertToString(model.getIdcardNo()));
if(StringUtils.isBlank(model.getName())
- &&StringUtils.isBlank(model.getIdcardNo())
+ &&StringUtils.isBlank(model.getIdcardNo())
&&StringUtils.isBlank(model.getPhone())
&&StringUtils.isBlank(model.getCompanyName())){
- continue;
+ continue;
}
Member member = checkModelParam(model,newList,i,loginUserInfo,list,companyList,companyType,positionList);
newList.add(member);
@@ -2223,8 +2240,8 @@
for(Member insert: newList){
//鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛�
// if(Constants.equalsInteger(insert.getCompanyType(),Constants.ONE)){
- //濡傛灉鏄唴閮ㄧ粍缁囦汉鍛橈紝鏂板绯荤粺鐧婚檰璐﹀彿
- userList.add(createSystemUser(insert,systemDictDataBiz));
+ //濡傛灉鏄唴閮ㄧ粍缁囦汉鍛橈紝鏂板绯荤粺鐧婚檰璐﹀彿
+ userList.add(createSystemUser(insert,systemDictDataBiz));
// }
}
if(userList.size()>0){
@@ -2358,7 +2375,7 @@
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public void registerDriver(RegisterDriverDTO registerDriverDTO){
if(Objects.isNull(registerDriverDTO)
- || StringUtils.isBlank(registerDriverDTO.getName())
+ || StringUtils.isBlank(registerDriverDTO.getName())
|| StringUtils.isBlank(registerDriverDTO.getPassword())
|| StringUtils.isBlank(registerDriverDTO.getValidCode())
|| StringUtils.isBlank(registerDriverDTO.getPhone())
@@ -2374,7 +2391,7 @@
};
if(systemUserMapper.selectCount(new QueryWrapper<SystemUser>().lambda()
.eq(SystemUser::getDeleted,Constants.ZERO)
- .and(i->i.eq(SystemUser::getMobile,registerDriverDTO.getPhone()).or().eq(SystemUser::getUsername,registerDriverDTO.getPhone()))
+ .and(i->i.eq(SystemUser::getMobile,registerDriverDTO.getPhone()).or().eq(SystemUser::getUsername,registerDriverDTO.getPhone()))
)>Constants.ZERO){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎵嬫満鍙峰凡娉ㄥ唽!");
};
@@ -2413,23 +2430,206 @@
* 鍚屾閽夐拤鍐呴儴鍛樺伐淇℃伅
*/
@Override
- public void syncDDUserInfo() throws ApiException {
- List<OapiV2UserGetResponse.UserGetResponse> list = dingTalk.syncAllUserInfo();
- if(CollectionUtils.isEmpty(list)){
- return;
- }
- List<Member> addList = new ArrayList<>();
- List<Member> updateList = new ArrayList<>();
- List<String> delIds = new ArrayList<>();//淇敼涓轰娇鐢ㄩ拤閽塱d erpId
- List<Member> allList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
- .eq(Member::getIsdeleted,Constants.ZERO)
- .eq(Member::getType,Constants.TWO));
- dealMemberChangeList(list,addList,updateList,delIds,allList);
+ public void syncDDUserInfo(){
+ try {
+ List<OapiV2UserGetResponse.UserGetResponse> list = dingTalk.syncAllUserInfo();
+ if(CollectionUtils.isEmpty(list)){
+ return;
+ }
+ log.error("閽夐拤浜哄憳淇℃伅鍚屾琛屾暟锛�"+ list.size());
+ log.error("閽夐拤浜哄憳淇℃伅鍚屾鍐呭锛�"+ JSONObject.toJSONString(list));
+ List<Member> addList = new ArrayList<>();
+ List<Member> updateList = new ArrayList<>();
+ List<String> delIds = new ArrayList<>();//淇敼涓轰娇鐢ㄩ拤閽塱d erpId
+ List<Member> allList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+ .eq(Member::getIsdeleted,Constants.ZERO)
+ .eq(Member::getType,Constants.TWO));
+ dealMemberChangeList(list,addList,updateList,delIds,allList);
- if(delIds.size()>0){
- syncDelMember(delIds);
+ if(delIds.size()>0){
+ syncDelMember(delIds);
+ }
+ }catch (Exception e){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"鍚屾閽夐拤浜哄憳淇℃伅寮傚父锛�");
}
+
+ }
+ @Override
+ @Async
+ public void sendMemberInfoResult(String username, String info, int status){
+ try {
+ String url = systemDictDataBiz.queryByCode(Constants.JDY_CONFIG,Constants.JDY_MEMBER_PUSH_STATUS_URL).getCode();
+ log.error("==========鎺ㄩ�佷汉鍛榹}锛氬悓姝ョ粨鏋滃紑濮�=====status={},username={},info={},url={}",username,status,info,url);
+ JSONObject object = new JSONObject();
+ object.put("status",status);
+ object.put("username",username);
+ object.put("info",info);
+ String result = HttpsUtil.postJson(url,JSONObject.toJSONString(object));
+ log.error("==========鎺ㄩ�佷汉鍛榹}锛氬悓姝ョ粨鏋滅粨鏉�=====",result);
+ }catch (Exception e){
+
+ }
+ }
+
+ /**
+ * 澶勭悊绠�閬撲簯鐢ㄦ埛淇℃伅
+ * @param data
+ */
+ @Override
+ public void dealJdyMemberInfo(MemberPushData data){
+ if(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::getIsdeleted,Constants.ZERO )
+ .eq( Member::getType,Constants.TWO )
+ .last("limit 1"));
+ if(member == null){
+ //鏂板浜哄憳
+ if(data.getDeleter()!=null){
+ //濡傛灉鏄凡缁忓垹闄や汉鍛橈紝涓嶅鐞�
+ return;
+ }
+ member = getAddOrUpdateModelFromJDY(data,true);
+ this.create(member);
+ }else{
+ //鏇存柊浜哄憳
+ if(data.getDeleter()!=null){
+ //濡傛灉鏄凡缁忓垹闄や汉鍛橈紝涓嶅鐞�
+ this.deleteById(member.getId(),null);
+ }else{
+ //鏇存柊浜哄憳淇℃伅
+ Member updateMember =getAddOrUpdateModelFromJDY(data,false);
+ updateMember.setId(member.getId());
+ this.updateById(updateMember);
+ }
+ }
+
+ }
+
+ private Member getAddOrUpdateModelFromJDY(MemberPushData data, boolean add) {
+ Member member = new Member();
+ member.setName(data.getName());
+ member.setType(Constants.TWO);
+ member.setIdcardType(Constants.ZERO);
+ member.setIdcardNo(data.getIdcardno());
+ member.setPhone(data.getPhone());
+ if(StringUtils.isNotBlank(data.getSex())){
+ member.setSex(StringUtils.equals(data.getSex(),"鐢�")?0:1);
+ }
+ if(StringUtils.isNotBlank(data.getStatus())){
+ member.setWorkStatus(StringUtils.equals(data.getStatus(),"鍦ㄨ亴")?0:1);
+ }
+ if(StringUtils.isNotBlank(data.getCan_visit())){
+ member.setCanVisit(StringUtils.equals(data.getCan_visit(),"鍙嫓璁�")?1:0);
+ }
+ member.setErpId(data.getUsername());
+ if(data.getDepartment()!=null){
+ member.setErpOrgId(data.getDepartment().getDept_no());
+ }
+ member.setHkStatus(Constants.ZERO);//寰呮洿鏂�
+ if(data.getImgurl()!=null &&data.getImgurl().size()>0){
+ String imgurl = data.getImgurl().get(0).getUrl();
+ if(StringUtils.isNotBlank(imgurl)){
+ member.setImgurl(getMemberImgByJdyImg(imgurl));
+ member.setFaceStatus(Constants.ZERO);
+ member.setFaceImg(member.getImgurl());
+ }
+ }
+ member.setCreateDate(DateUtil.getISO8601DateByStr(data.getCreateTime()));
+ member.setEditDate(DateUtil.getISO8601DateByStr(data.getUpdateTime()));
+ member.setCode(data.getCode());
+ member.setJobDate(DateUtil.getISO8601DateByStr(data.getJob_date()));
+ member.setIsdeleted(Constants.ZERO);
+ if(add ){
+ SystemUser c= getSystemuserByErpId(data.getCreator());//鏌ヨ鍒涘缓浜�
+ if(c!=null){
+ member.setCreator(c.getId());
+ }
+ }
+ SystemUser up= getSystemuserByErpId(data.getUpdater()); //鏌ヨ鏇存柊浜�
+ if(up!=null){
+ member.setEditor(up.getId());
+ }
+ //鏌ヨ缁勭粐淇℃伅
+ Company depart = companyMapper.selectOne(new QueryWrapper<Company>().lambda()
+ .eq( Company::getErpId,data.getDepartment().getDept_no() )
+ .eq( Company::getIsdeleted,Constants.ZERO ));
+ if(depart!=null){
+ member.setCompanyId(depart.getId());
+ }
+ member.setCompany(depart);
+ return member;
+ }
+
+ private String getMemberImgByJdyImg(String imgurl) {
+ try {
+ 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(),
+ systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode());
+ String date = DateUtil.getNowShortDate()+"/";
+ String name = UUID.randomUUID().toString();
+ if(ftp.uploadOnlineFile(imgurl,folder+date,name)){
+ log.error("=======涓婁紶绠�閬撲簯鍥剧墖鎴愬姛锛歳esult:{}=url:{}",date+name,imgurl);
+ return date+name;
+ }
+ }catch (Exception e){
+ log.error("=======涓婁紶绠�閬撲簯鍥剧墖澶辫触锛歶rl锛歿}",imgurl);
+ }
+ return null;
+
+ }
+
+ private SystemUser getSystemuserByErpId(UserPushData user) {
+ if(user!=null &&StringUtils.isNotBlank(user.getUsername())){
+ return systemUserMapper.selectJoinOne(SystemUser.class,new MPJLambdaWrapper<SystemUser>().
+ selectAll(SystemUser.class )
+ .leftJoin(Member.class,Member::getId,SystemUser::getMemberId)
+ .eq(SystemUser::getDeleted,Boolean.FALSE)
+ .eq(Member::getErpId,user.getUsername())
+ .last("limit 1"));
+ }
+ return null;
+ }
+
+ @Override
+ public String syncJdyUserInfo() {
+ DeptApiClient deptApiClient = new DeptApiClient(HttpConstant.API_KEY, HttpConstant.HOST);
+ try {
+ Map<String, Object> result = deptApiClient.deptMemberList(1,true,deptApiClient.getDefaultVersion());
+ if(result!=null && result.get("users")!=null ){
+ TypeReference<List<UserEntityModel>> typeReference = new TypeReference<List<UserEntityModel>>(){};
+ Object obj = result.get("users");
+ List<UserEntityModel> list = com.alibaba.fastjson.JSONObject.parseObject(JSON.toJSONString(obj), typeReference.getType());
+ if(list !=null && list.size()>0){
+ List<Member> addList = new ArrayList<>();
+ List<Member> updateList = new ArrayList<>();
+ List<String> delIds = new ArrayList<>();//淇敼涓轰娇鐢ㄩ拤閽塱d erpId
+ List<Member> allList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+ .eq(Member::getIsdeleted,Constants.ZERO)
+ .eq(Member::getType,Constants.TWO));
+ dealMemberChangeListJdy(list,addList,updateList,delIds,allList);
+ if(delIds.size()>0){
+ syncDelMember(delIds);
+ }
+ return "鍚屾鏁版嵁锛氭柊澧炪��"+addList.size()+"銆戞潯锛屾洿鏂般��"+updateList.size()+"銆戞潯锛屽垹闄ゃ��"+delIds.size()+"銆戞潯";
+ }else{
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鍚屾閽夐拤鏁版嵁涓虹┖锛�");
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鍚屾鏁版嵁寮傚父锛�");
+ }
+
+ return null;
}
private void syncDelMember(List<String> delIds) {
@@ -2465,25 +2665,63 @@
}
}
}
-
+ private void dealMemberChangeListJdy(List<UserEntityModel> list, List<Member> addList, List<Member> updateList, List<String> delIds, List<Member> allList) {
+ Date date = new Date();
+ for(UserEntityModel respone : list){
+ //鏍规嵁erpid鏌ヨ浼佷笟淇℃伅锛屽垽鏂槸鏂板杩樻槸鏇存柊
+ Member param = new Member();
+ param.setErpId(respone.getUsername());
+ param.setName(respone.getName());
+ param.setDdId(respone.getIntegrate_id());
+ param.setCompanyIdList(respone.getDepartments());
+ Member member = findMemberByERPId(allList,respone.getUsername());
+ if(member == null){
+ //濡傛灉鏄柊澧� //灏佽鏂板缁勭粐瀵硅薄鏁版嵁
+ addList.add(syncDDAddMemberModel(param,new Member()));
+ }else{
+ updateList.add(syncDDEditMemberModel(param,member));
+ }
+ }
+ if(allList!=null && allList.size()>0){
+ for(Member m : allList){
+ if(!isMemberDeletedJdy(m,list)){
+ delIds.add(m.getErpId());
+ }
+ }
+ }
+ }
private Member getAddMemberModel(OapiV2UserGetResponse.UserGetResponse deptGetResponse,Member member) {
- return syncDDAddMemberModel(deptGetResponse,member);
+ Member param = new Member();
+ param.setErpId(deptGetResponse.getUnionid());
+ param.setPhone(deptGetResponse.getMobile());
+ param.setName(deptGetResponse.getName());
+ param.setCode(deptGetResponse.getJobNumber());
+ param.setDdId(deptGetResponse.getUserid());
+ param.setCompanyIdList(deptGetResponse.getDeptIdList());
+ return syncDDAddMemberModel(param,member);
}
private Member getUpdateMemberModel(OapiV2UserGetResponse.UserGetResponse deptGetResponse,Member member) {
- return syncDDEditMemberModel(deptGetResponse,member);
+ Member param = new Member();
+ param.setErpId(deptGetResponse.getUnionid());
+ param.setPhone(deptGetResponse.getMobile());
+ param.setName(deptGetResponse.getName());
+ param.setCode(deptGetResponse.getJobNumber());
+ param.setDdId(deptGetResponse.getUserid());
+ param.setCompanyIdList(deptGetResponse.getDeptIdList());
+ return syncDDEditMemberModel(param,member);
}
- private Member syncDDAddMemberModel(OapiV2UserGetResponse.UserGetResponse deptGetResponse,Member member) {
+ private Member syncDDAddMemberModel(Member deptGetResponse,Member member) {
member.setCreateDate(new Date());
- member.setErpId(deptGetResponse.getUnionid());
- member.setPhone(deptGetResponse.getMobile());
+ member.setErpId(deptGetResponse.getErpId());
+ member.setPhone(deptGetResponse.getPhone());
member.setName(deptGetResponse.getName());
- member.setCode(deptGetResponse.getJobNumber());
- member.setDdId(deptGetResponse.getUserid());
- isMemberParamValidDetail(member,deptGetResponse.getDeptIdList());
+ member.setCode(deptGetResponse.getCode());
+ member.setDdId(deptGetResponse.getDdId());
+ isMemberParamValidDetail(member,deptGetResponse.getCompanyIdList());
//鑾峰彇鍑虹敓鏃ユ湡
//鑴辨晱鎿嶄綔
Member insert = initAddMemberModel(member,null);
@@ -2508,7 +2746,7 @@
}
if(Objects.nonNull(deptIdList)){
List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda().in(Company::getErpId,deptIdList)
- .eq(Company::getType,Constants.ONE).eq(Company::getIsdeleted,Constants.ZERO)
+ .eq(Company::getType,Constants.ONE).eq(Company::getIsdeleted,Constants.ZERO)
// .isNotNull(Company::getHkId) 鏆傛椂鏃犳硶鍚屾娴峰悍 鍏堟敞閲�
);
if(CollectionUtils.isNotEmpty(companyList)){
@@ -2518,7 +2756,7 @@
}
member.setCompanyType(Constants.ONE);
SystemUser queryUserDto = new SystemUser();
- queryUserDto.setUsername(member.getPhone());
+ queryUserDto.setUsername(StringUtils.defaultString(member.getPhone(),member.getErpId()));
queryUserDto.setDeleted(Boolean.FALSE);
SystemUser user = systemUserMapper.selectOne(new QueryWrapper<>(queryUserDto).last("limit 1"));
if (user != null) {
@@ -2535,14 +2773,14 @@
}
}
}
-
- public Member syncDDEditMemberModel(OapiV2UserGetResponse.UserGetResponse deptGetResponse,Member updateMember) {
+
+ public Member syncDDEditMemberModel(Member deptGetResponse1,Member updateMember) {
updateMember.setEditDate(new Date());
- updateMember.setErpId(deptGetResponse.getUnionid());
- updateMember.setPhone(deptGetResponse.getMobile());
- updateMember.setName(deptGetResponse.getName());
- updateMember.setCode(deptGetResponse.getJobNumber());
- updateMember.setDdId(deptGetResponse.getUserid());
+// updateMember.setErpId(deptGetResponse.getErpId());
+// updateMember.setPhone(deptGetResponse.getPhone());
+// updateMember.setName(deptGetResponse.getName());
+// updateMember.setCode(deptGetResponse.getCode());
+// updateMember.setDdId(deptGetResponse.getDdId());
updateMember.setHkId(null);
updateMember.setAuthStatus(Constants.ZERO);
Boolean hkFlag = dealHkUserForUpdateBiz(updateMember);
@@ -2604,40 +2842,52 @@
}
return false;
}
-
+ private boolean isMemberDeletedJdy(Member member, List<UserEntityModel> list) {
+ for(UserEntityModel m : list){
+ if(StringUtils.equals(m.getUsername(),member.getErpId())){
+ return true;
+ }
+ }
+ return false;
+ }
@Override
- public void ddPushMemberInfo(String eventType, shade.com.alibaba.fastjson2.JSONObject eventData) throws ApiException {
- JSONArray jsonArray = eventData.getJSONArray("userId");
- if(jsonArray.isEmpty()){
- return;
- }
- if(eventType.equals("user_leave_org")){
- //鍒犻櫎瀵逛汉鍛樹俊鎭�
- List<String> userIdList = new ArrayList<>();
- for (int i = 0; i < jsonArray.size(); i++) {
- String deptId = jsonArray.getString(i);
- userIdList.add(deptId);
+ public void ddPushMemberInfo(String eventType, shade.com.alibaba.fastjson2.JSONObject eventData) {
+ try {
+ JSONArray jsonArray = eventData.getJSONArray("userId");
+ if(jsonArray.isEmpty()){
+ return;
}
- if(CollectionUtils.isNotEmpty(userIdList)){
- syncDelMember(userIdList);
- }
- }else if(eventType.equals("user_add_org")||eventType.equals("user_modify_org")){
- for (int i = 0; i < jsonArray.size(); i++) {
- OapiV2UserGetResponse.UserGetResponse userGetResponse = dingTalk.syncUserInfo(jsonArray.getString(i));
- Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
- .eq(Member::getIsdeleted,Constants.ZERO)
- .eq(Member::getErpId,userGetResponse.getUnionid())
- .last(" limit 1")
- );
- if(Objects.isNull(member)){
- member = new Member();
- getAddMemberModel(userGetResponse,member);
- }else{
- getUpdateMemberModel(userGetResponse,member);
+ if(eventType.equals("user_leave_org")){
+ //鍒犻櫎瀵逛汉鍛樹俊鎭�
+ List<String> userIdList = new ArrayList<>();
+ for (int i = 0; i < jsonArray.size(); i++) {
+ String deptId = jsonArray.getString(i);
+ userIdList.add(deptId);
+ }
+ if(CollectionUtils.isNotEmpty(userIdList)){
+ syncDelMember(userIdList);
+ }
+ }else if(eventType.equals("user_add_org")||eventType.equals("user_modify_org")){
+ for (int i = 0; i < jsonArray.size(); i++) {
+ OapiV2UserGetResponse.UserGetResponse userGetResponse = dingTalk.syncUserInfo(jsonArray.getString(i));
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+ .eq(Member::getIsdeleted,Constants.ZERO)
+ .eq(Member::getErpId,userGetResponse.getUnionid())
+ .last(" limit 1")
+ );
+ if(Objects.isNull(member)){
+ member = new Member();
+ getAddMemberModel(userGetResponse,member);
+ }else{
+ getUpdateMemberModel(userGetResponse,member);
+ }
}
}
+ }catch (Exception e){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"鏁版嵁澶勭悊澶辫触锛�");
}
+
}
/**
@@ -2645,25 +2895,25 @@
* @param code
* @param source
* @return
- * @throws ApiException
*/
@Override
- public DDAuthorizeVO ddAuthorize(String code, Integer source) throws ApiException {
- if(StringUtils.isBlank(code)||Objects.isNull(source)){
- throw new BusinessException(ResponseStatus.BAD_REQUEST);
- }
- OapiV2UserGetuserinfoResponse.UserGetByCodeResponse userGetByCodeResponse = dingTalk.getDDUserByCode(code);
- if(Objects.isNull(userGetByCodeResponse)
- || StringUtils.isBlank(userGetByCodeResponse.getUnionid())){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽夐拤鎺堟潈澶辫触");
- }
- String unionId = userGetByCodeResponse.getUnionid();
+ public DDAuthorizeVO ddAuthorize(String code, Integer source) {
+ try {
+ if(StringUtils.isBlank(code)||Objects.isNull(source)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ OapiV2UserGetuserinfoResponse.UserGetByCodeResponse userGetByCodeResponse = dingTalk.getDDUserByCode(code);
+ if(Objects.isNull(userGetByCodeResponse)
+ || StringUtils.isBlank(userGetByCodeResponse.getUnionid())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閽夐拤鎺堟潈澶辫触");
+ }
+ String unionId = userGetByCodeResponse.getUnionid();
- DDAuthorizeVO ddAuthorizeVO = new DDAuthorizeVO();
- if(StringUtils.isBlank(unionId)){
- return ddAuthorizeVO;
- }
- ddAuthorizeVO.setUnionId(unionId);
+ DDAuthorizeVO ddAuthorizeVO = new DDAuthorizeVO();
+ if(StringUtils.isBlank(unionId)){
+ return ddAuthorizeVO;
+ }
+ ddAuthorizeVO.setUnionId(unionId);
// if(source==1){
// //澶勭悊鏅�氳瀹汉鍛樿嚜鍔ㄦ巿鏉冮�昏緫
// dealVisitUserAuthBiz(wxAuthorizeVO,openId,source);
@@ -2677,7 +2927,12 @@
//濡傛灉鏄唴閮ㄤ汉鍛橈紝鍒欎粠system_user鏌ヨ
dealSystemUserAuthBizByDD(ddAuthorizeVO,unionId,source);
// }
- return ddAuthorizeVO;
+ return ddAuthorizeVO;
+ }catch (Exception e){
+
+ throw new BusinessException(ResponseStatus.SERVER_ERROR);
+ }
+
}
--
Gitblit v1.9.3