jiangping
2024-11-05 c9ef2687d3460da668d08d58dee6af468ed6693e
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -62,6 +62,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.util.Date;
import java.util.*;
import java.util.stream.Collectors;
@@ -210,6 +211,9 @@
        insert.setHkId(UUID.randomUUID().toString().replace("-",""));
        insert.setHkStatus(Constants.ONE);
        insert.setSex(Constants.getSexByCardNo( member.getIdcardNo()));//根据身份证号获取性别
        insert.setJobDate(member.getJobDate());
        insert.setIsDangyuan(member.getIsDangyuan());
        insert.setPositionId(member.getPositionId());
        if(StringUtils.isNotBlank(member.getIdcardNo())){
            insert.setBirthday( DateUtil.fromStringToDate("yyyyMMdd",IdcardUtil.getBirthByIdCard(member.getIdcardNo())));
            insert.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, member.getIdcardNo()));//身份证号加密
@@ -1124,6 +1128,7 @@
                .selectAs(Company::getName,Member::getCompanyName) ;
        queryWrapper.selectAs(Position::getName,Member::getPositionName);
        queryWrapper.leftJoin(Position.class,Position::getId,Member::getPositionId);
        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
        if(StringUtils.isNotBlank(member.getName())){
            queryWrapper.like(Member::getName,member.getName());
        }
@@ -1138,6 +1143,12 @@
        }
        if(null != member.getCompanyId()) {
            queryWrapper.eq(Member::getCompanyId,member.getCompanyId());
        }
        if(null != member.getQuerySpecial() && Constants.equalsInteger(member.getQuerySpecial(),Constants.ONE)){
            String companySpecialId = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SPECIAL_COMPANY_ID).getCode();
            if(StringUtils.isNotBlank(companySpecialId)){
                queryWrapper.apply(" find_in_set('"+companySpecialId+"',REPLACE(t3.company_path,'/',',')) ");
            }
        }
        queryWrapper.eq(Member::getIsdeleted,Constants.ZERO);
        queryWrapper.eq(Member::getWorkStatus,Constants.ZERO);
@@ -1374,6 +1385,8 @@
        queryWrapper.selectAs(Company::getCompanyNamePath,Member::getCompanyNamePath);
        queryWrapper.selectAs(Company::getCompanyPath,Member::getCompanyPath);
        queryWrapper.select(" ( select count(1) from member_card mc where mc.isdeleted = 0 and  mc.member_id = t.id ) as  memberCardCount ");
        queryWrapper.select(" ( select max(tt.END_TIME) from train_time tt where tt.isdeleted = 0 and  tt.member_id = t.id ) as  trainEndTime ");
        queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Member::getEditor);
        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId);
        queryWrapper.selectAs(Position::getName,Member::getPositionName);
@@ -1449,6 +1462,19 @@
                if(StringUtils.isNotBlank(memberInfoDTO.getImgurl())){
                    memberInfoDTO.setImgurlFull(prefixUrl + memberInfoDTO.getImgurl());
                }
                memberInfoDTO.setHasFace(memberInfoDTO.getFaceId()!=null?Constants.ONE:Constants.ZERO);
                if(Constants.equalsInteger(Constants.ONE,memberInfoDTO.getAuthStatus())){
                    if(memberInfoDTO.getStartTime() ==null || memberInfoDTO.getEndTime() ==null ){
                        memberInfoDTO.setRoleTimeInfo("长期有效");
                    }else{
                        memberInfoDTO.setRoleTimeInfo(DateUtil.getPlusTime2(memberInfoDTO.getStartTime())+"至"+DateUtil.getPlusTime2(memberInfoDTO.getEndTime()));
                    }
                }else{
                    memberInfoDTO.setRoleTimeInfo("-");
                }
                memberInfoDTO.setAuthStatus(Constants.formatIntegerNum(memberInfoDTO.getAuthStatus()));
                memberInfoDTO.setWorkStatus(Constants.formatIntegerNum(memberInfoDTO.getWorkStatus()));
                memberInfoDTO.setSex(Constants.formatIntegerNum(memberInfoDTO.getSex()));
            }
        }
        return PageData.from(memberIPage);
@@ -1628,9 +1654,11 @@
        }catch (Exception e){
        }
        List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>()
                .lambda().eq(Member::getIsdeleted,Constants.ZERO)
                .eq(Member::getType,Constants.memberType.internal)
        List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
                .selectAll(Member.class)
                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                .eq(Member::getIsdeleted,Constants.ZERO)
                .eq(Company::getType,Constants.ZERO)
                .eq(Member::getStatus,Constants.ZERO)
                .isNotNull(Member::getHkId)
                .apply("to_days(LAST_VISIT_DATE)+ "+days+" < to_days(now())" ));
@@ -1744,7 +1772,7 @@
                .eq(Member::getStatus,Constants.ZERO)
                .eq(Member::getWorkStatus,Constants.ZERO)
                .eq(Member::getCanVisit,Constants.ONE)
                .eq(Member::getType,Constants.memberType.internal)
                .eq(Company::getType,Constants.ONE)
        );
        List<MemberVO> memberVOList = new ArrayList<>();
        if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberList)) {
@@ -1853,7 +1881,7 @@
            ExcelImporter ie = null;
            List<MemberImport> dataList =null;
            try {
                ie = new ExcelImporter(file,1,0);
                ie = new ExcelImporter(file,2,0);
                dataList = ie.getDataList(MemberImport.class,null);
            }  catch (Exception e) {
                e.printStackTrace();
@@ -1938,6 +1966,11 @@
        if (!PhoneUtil.isPhone(model.getPhone())){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行手机号【"+model.getPhone()+"】格式不正确,请检查表格内容!");
        }
        if(model.getPhone().indexOf(".")>=Constants.ZERO){
            model.setPhone(
                    String.valueOf(new BigDecimal(model.getPhone()).intValue())
            );
        }
        if(StringUtils.isNotBlank(model.getIdcardNo())){
            if ( !isDebug && !IdcardUtil.isValidCard(model.getIdcardNo())){
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行身份证号【"+model.getIdcardNo()+"】格式不正确,请检查表格内容!");