From 79243a38ffb959be94e1a81f922675d093850454 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期日, 18 二月 2024 16:55:11 +0800 Subject: [PATCH] ERP接口 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 135 ++++++++++++++++++++++++++------------------- 1 files changed, 78 insertions(+), 57 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java index 99374b6..e41b4b1 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java @@ -197,7 +197,7 @@ } @Override - public void batchBlock(List<Integer> ids) { + public void batchBlock(List<Integer> ids,Integer type) { if (CollectionUtils.isEmpty(ids)) { return; } @@ -206,10 +206,28 @@ for (Integer id:ids) { member = memberMapper.selectById(id); if(!Objects.isNull(member)&&member.getStatus()==Constants.ZERO){ + UserAction userAction=new UserAction(); + userAction.setBeforeStatus(member.getStatus()); member.setStatus(Constants.TWO); member.setEditor(loginUserInfo.getId()); member.setEditDate(new Date()); memberMapper.updateById(member); + + userAction.setIsdeleted(Constants.ZERO); + userAction.setCreateDate(new Date()); + userAction.setCreator(loginUserInfo.getId()); + if(Constants.equalsInteger(type,Constants.ONE)){ + userAction.setType(Constants.ONE); + userAction.setRemark("鐢便��"+loginUserInfo.getUsername()+"銆戜簬銆愭搷浣滄椂闂�"+new Date()+"銆戯紝杩涜銆愬喕缁撱��"); + } + if(Constants.equalsInteger(type,Constants.TWO)){ + userAction.setType(Constants.TWO); + userAction.setRemark("鐢便��"+loginUserInfo.getUsername()+"銆戜簬銆愭搷浣滄椂闂�"+new Date()+"銆戯紝杩涜銆愭媺榛戙��"); + + } + userAction.setMemberId(id+""); + + userActionJoinMapper.insert(userAction); } } /* memberMapper.deleteBatchIds(ids);*/ @@ -559,43 +577,6 @@ @Override public PageData<MemberInfoDTO> findMemberInfoPage(PageWrap<MemberQuery> pageWrap) { - /* //鏄惁鏄暟瀛� - boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords()); - //鏄惁鍖呭惈涓枃 - boolean b = Validator.hasChinese(pageWrap.getModel().getKeyWords()); - //鏄惁鍖呭惈鑻辨枃 - boolean hasWord = ReUtil.contains(PatternPool.WORD, pageWrap.getModel().getKeyWords());*/ - - /* IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); - MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); - MemberQuery model = pageWrap.getModel(); - Utils.MP.blankToNull(model); - - queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId) - .leftJoin(DeviceRole.class,DeviceRole::getId,Member::getRoleId); - *//* .leftJoin(MemberCard.class,MemberCard::getMemberId,Member::getId);*//* - - queryWrapper.selectAll(Member.class) - .selectAs(Company::getName,MemberInfoDTO::getCompanyName) - .selectAs(DeviceRole::getName,MemberInfoDTO::getRoleName) - *//* .select("count(t3.id) as memberCardCount ");*//* - .select(""); - - queryWrapper.in(Objects.nonNull(model.getCompanyIds()),Member::getCompanyId,model.getCompanyIds()) - *//* .like(number,Member::getPhone,model.getKeyWords()) - .like((b||hasWord),Member::getPhone,model.getKeyWords())*//* - .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,model.getKeyWords()) - .or().like(Member::getName,model.getKeyWords()) - .or().like(Member::getCode,model.getKeyWords())) - - .isNull(Constants.equalsInteger(model.getHasFace(),Constants.ZERO),Member::getFaceId) - .isNotNull(Constants.equalsInteger(model.getHasFace(),Constants.ONE),Member::getFaceId) - .eq(Objects.nonNull(model.getCanVisit()),Member::getCanVisit,model.getCanVisit()) - .eq(Objects.nonNull(model.getStatus()),Member::getStatus,model.getStatus()); - IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); - if (!CollectionUtils.isEmpty(memberIPage.getRecords())){ - memberIPage.getRecords().forEach(s->s.setSex(IdcardUtil.getGenderByIdCard(s.getIdcardDecode()))); - }*/ IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); @@ -603,22 +584,60 @@ queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0, Member::getCompanyId,pageWrap.getModel().getCompanyIds()) - .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,pageWrap.getModel().getKeyWords()) - .or().like(Member::getName,pageWrap.getModel().getKeyWords()) - .or().like(Member::getCode,pageWrap.getModel().getKeyWords())) - .isNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId) - .isNotNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId) + .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyword()),ms->ms + .like(Member::getPhone,pageWrap.getModel().getKeyword()) + .or().like(Member::getName,pageWrap.getModel().getKeyword()) + .or().like(Member::getCode,pageWrap.getModel().getKeyword())) + .isNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId) + .isNotNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId) .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),Member::getCanVisit,pageWrap.getModel().getCanVisit()) - .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getCanVisit,pageWrap.getModel().getStatus()) + .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus()) + .eq(StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId()) .eq(Member::getIsdeleted,Constants.ZERO) - .eq(Member::getStatus,Constants.Status.ENABLE.getValue()) +// .eq(Member::getStatus,Constants.Status.ENABLE.getValue()) .eq(Member::getType,Constants.memberType.internal) .orderByDesc(Member::getCreateDate); IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); + + if(CollectionUtils.isNotEmpty(memberIPage.getRecords())){ + //FTP鏂囦欢璁块棶鍓嶇紑 + String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + + systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); + //闂ㄧ缁勪俊鎭� + List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() + .select(DeviceRole::getId,DeviceRole::getName) + .eq(DeviceRole::getIsdeleted,Constants.ZERO)); + for (MemberInfoDTO memberInfoDTO:memberIPage.getRecords()) { + //鑾峰緱闂ㄧ缁勫悕绉版暟缁� + memberInfoDTO.setRoleNames(this.dealRoleDatas(memberInfoDTO.getRoleId(),deviceRoleList)); + //鎷兼帴鍓嶇紑 + if(StringUtils.isNotBlank(memberInfoDTO.getFaceImg())){ + memberInfoDTO.setFaceImg(prefixUrl + memberInfoDTO.getFaceImg()); + } + if(StringUtils.isNotBlank(memberInfoDTO.getImgurl())){ + memberInfoDTO.setImgurl(prefixUrl + memberInfoDTO.getImgurl()); + } + } + } return PageData.from(memberIPage); } + + public List<String> dealRoleDatas(String roleIds,List<DeviceRole> deviceRoleList){ + List<String> stringList = new ArrayList<>(); + if(StringUtils.isNotBlank(roleIds)){ + roleIds = roleIds.replace("[","").replace("]",""); + List<String> ids = Arrays.asList(roleIds.split(",")); + ids.forEach(i->{ + DeviceRole deviceRole = deviceRoleList.stream().filter(m->m.getId().toString().equals(i)).findFirst().get(); + if(!Objects.isNull(deviceRole)){ + stringList.add(deviceRole.getName()); + } + }); + } + return stringList; + } @Override public PageData<MemberInfoDTO> findVisitPage(PageWrap<MemberQuery> pageWrap) { @@ -627,19 +646,20 @@ queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.selectAll(Member.class) .selectAs(Company::getName,MemberInfoDTO::getCompanyName) - .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0) as visitsCount") - .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE limit 1) as visitsLastDate"); + .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 and v.status = 2 ) as visitsCount") + .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 and v.status = 2 order by CREATE_DATE limit 1) as visitsLastDate"); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Member::getName,pageWrap.getModel().getName()) .like(StringUtils.isNotBlank(pageWrap.getModel().getPhone()),Member::getPhone,pageWrap.getModel().getPhone()) - .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()) + .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()), ms->ms.like(Member::getVisitCompanyName,pageWrap.getModel().getCompanyName()) + .or().like(Company::getName,pageWrap.getModel().getCompanyName())) .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo()) + .eq(StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId()) .eq(Objects.isNull(pageWrap.getModel().getStatus()),Member::getStatus,Constants.Status.ENABLE.getValue()) .eq(!Objects.isNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus()) .eq(Member::getType,Constants.memberType.visitor) .eq(Member::getIsdeleted,Constants.ZERO) .orderByDesc(Member::getCreateDate); - IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); return PageData.from(memberIPage); @@ -654,17 +674,18 @@ queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.selectAll(Member.class) .selectAs(Company::getName,MemberInfoDTO::getCompanyName) - .select(" (select ua.CREATE_DATE from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0 and ua.type=1 order by ua.CREATE_DATE limit 1) as userActionType1") - .select(" (select uac.remark from user_action uac where uac.MEMBER_ID=t.id and uac.ISDELETED=0 and uac.type=1 order by uac.CREATE_DATE limit 1) as creatorName") - /* .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0) as visitsCount")*/ - .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE limit 1) as visitsLastDate"); + .select(" (select ua.CREATE_DATE from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0 order by ua.CREATE_DATE desc limit 1) as optTime") + .select(" (select s.REALNAME from user_action uac left join system_user s on uac.CREATOR = s.ID where uac.MEMBER_ID=t.id and uac.ISDELETED=0 order by uac.CREATE_DATE desc limit 1) as creatorName") + .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE desc limit 1) as visitsLastDate"); 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.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Member::getName,pageWrap.getModel().getName()) - .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,pageWrap.getModel().getName()) + queryWrapper + .and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Member::getPhone,pageWrap.getModel().getName()) .or().like(Member::getName,pageWrap.getModel().getName())) - .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()) + .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()), + ms->ms.like(Company::getName,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(Objects.nonNull(pageWrap.getModel().getCode()),Member::getCode,pageWrap.getModel().getCode()) @@ -813,7 +834,7 @@ .ne(Member::getType,Constants.memberType.visitor) ); //闈炶瀹㈢敤鎴� 杩涜鍒ゆ柇鏄惁瀛樺湪鐢ㄦ埛 - if(Objects.isNull(member)&&!member.getType().equals(Constants.memberType.visitor)){ + if(!Objects.isNull(member)&&!member.getType().equals(Constants.memberType.visitor)){ if(member.getIsdeleted() == Constants.ONE){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳"); } -- Gitblit v1.9.3