MrShi
昨天 39fc2d6754953e41a7334a2166347baacfcfb40a
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -78,6 +78,7 @@
import java.math.BigDecimal;
import java.util.Date;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
@@ -93,6 +94,9 @@
    @Autowired
    private MemberJoinMapper memberJoinMapper;
    @Autowired
    private JkCabinetMapper jkCabinetMapper;
    @Autowired
    private TrainTimeMapper trainTimeMapper;
@@ -221,9 +225,9 @@
    private Member initAddMemberModel(Member member, LoginUserInfo loginUserInfo) {
        Member insert=  new Member();
        insert.setCreator(Objects.nonNull(loginUserInfo.getId())?loginUserInfo.getId():null);
        insert.setCreator(Objects.nonNull(loginUserInfo)?loginUserInfo.getId():null);
        insert.setCreateDate(new Date());
        insert.setEditor(Objects.nonNull(loginUserInfo.getId())?loginUserInfo.getId():null);
        insert.setEditor(Objects.nonNull(loginUserInfo)?loginUserInfo.getId():null);
        insert.setEditDate(new Date());
        insert.setHkOrgId(member.getHkOrgId());
        insert.setIsdeleted(Constants.ZERO);
@@ -233,6 +237,8 @@
        insert.setCode(member.getCode());
        insert.setType(Constants.TWO);
        insert.setHkDate(new Date());
        insert.setDdId(member.getDdId());
        insert.setErpId(member.getErpId());
        insert.setWorkStatus(Constants.ZERO);//默认在职
        insert.setCanVisit(Constants.ZERO);//默认不可访问
        insert.setAuthStatus(Constants.ZERO);
@@ -1208,6 +1214,21 @@
                queryWrapper.apply(" find_in_set('"+companySpecialId+"',REPLACE(t3.company_path,'/',',')) ");
            }
        }
        if(null != member.getQueryAuth() && Constants.equalsInteger(member.getQueryAuth(),Constants.ONE)){
            List<JkCabinet> jkCabinets = jkCabinetMapper.selectList(new QueryWrapper<JkCabinet>().lambda()
                    .eq(JkCabinet::getIsdeleted,Constants.ZERO)
                    .isNotNull(JkCabinet::getAuthMemberId)
            );
            if(CollectionUtils.isNotEmpty(jkCabinets)){
                List<String> memberIdList = new ArrayList<>();
                List<String> authMemberId = jkCabinets.stream().map(i->i.getAuthMemberId()).collect(Collectors.toList());
                for (String s:authMemberId) {
                    memberIdList.addAll(Arrays.asList(s.split(","))) ;
                }
                queryWrapper.in(Member::getId,memberIdList);
            }
        }
        queryWrapper.eq(Member::getIsdeleted,Constants.ZERO);
        queryWrapper.eq(Member::getWorkStatus,Constants.ZERO);
        queryWrapper.orderByAsc(Member::getPinyin);
@@ -2138,7 +2159,7 @@
        if(importing!=null && importing){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,已存在员工导入任务正在执行中,请稍后再试!");
        }
        redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_MEMBER,true);
        redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_MEMBER,true,30, TimeUnit.MINUTES);
        try {
            ExcelImporter ie = null;
            List<MemberImport> dataList =null;
@@ -2391,6 +2412,7 @@
    /**
     * 同步钉钉内部员工信息
     */
    @Override
    public void syncDDUserInfo() throws ApiException {
        List<OapiV2UserGetResponse.UserGetResponse>  list = dingTalk.syncAllUserInfo();
        if(CollectionUtils.isEmpty(list)){
@@ -2456,10 +2478,11 @@
    private Member syncDDAddMemberModel(OapiV2UserGetResponse.UserGetResponse deptGetResponse,Member member) {
        member.setCreateDate(new Date());
        member.setErpId(deptGetResponse.getUserid());
        member.setErpId(deptGetResponse.getUnionid());
        member.setPhone(deptGetResponse.getMobile());
        member.setName(deptGetResponse.getName());
        member.setCode(deptGetResponse.getJobNumber());
        member.setDdId(deptGetResponse.getUserid());
        isMemberParamValidDetail(member,deptGetResponse.getDeptIdList());
        //获取出生日期
        //脱敏操作
@@ -2486,7 +2509,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)
                    .isNotNull(Company::getHkId)
//                    .isNotNull(Company::getHkId) 暂时无法同步海康 先注释
            );
            if(CollectionUtils.isNotEmpty(companyList)){
                member.setHkOrgId(companyList.get(Constants.ZERO).getHkId());
@@ -2515,11 +2538,11 @@
    
    public Member syncDDEditMemberModel(OapiV2UserGetResponse.UserGetResponse deptGetResponse,Member updateMember) { 
        updateMember.setEditDate(new Date());
        updateMember.setErpId(deptGetResponse.getUserid());
        updateMember.setErpId(deptGetResponse.getUnionid());
        updateMember.setPhone(deptGetResponse.getMobile());
        updateMember.setName(deptGetResponse.getName());
        updateMember.setCode(deptGetResponse.getJobNumber());
        updateMember.setDdId(deptGetResponse.getUserid());
        updateMember.setHkId(null);
        updateMember.setAuthStatus(Constants.ZERO);
        Boolean hkFlag = dealHkUserForUpdateBiz(updateMember);
@@ -2541,6 +2564,7 @@
                .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(StringUtils.isNotBlank(updateMember.getDdId()),Member::getDdId,updateMember.getDdId())
                .set(updateMember.getFaceId()!=null,Member::getFaceId,updateMember.getFaceId())
                .set(updateMember.getCompanyId()!=null,Member::getCompanyId,updateMember.getCompanyId())
                .set(Member::getCode,updateMember.getCode())
@@ -2582,6 +2606,7 @@
    }
    @Override
    public void ddPushMemberInfo(String eventType, shade.com.alibaba.fastjson2.JSONObject eventData) throws ApiException {
        JSONArray jsonArray = eventData.getJSONArray("userId");
        if(jsonArray.isEmpty()){
@@ -2599,16 +2624,17 @@
            }
        }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,jsonArray.getLong(i))
                        .eq(Member::getErpId,userGetResponse.getUnionid())
                        .last(" limit 1")
                );
                OapiV2UserGetResponse.UserGetResponse deptGetResponse = dingTalk.syncUserInfo(jsonArray.getString(i));
                if(Objects.isNull(member)){
                    getAddMemberModel(deptGetResponse,member);
                    member = new Member();
                    getAddMemberModel(userGetResponse,member);
                }else{
                    getUpdateMemberModel(deptGetResponse,member);
                    getUpdateMemberModel(userGetResponse,member);
                }
            }
        }