From e59a768f56efb64bf2fad412f62eca2a836b652f Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 28 十二月 2023 14:13:00 +0800 Subject: [PATCH] 海康接口对接开发 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 218 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 180 insertions(+), 38 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java index cd6e234..40f22bd 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java @@ -3,6 +3,11 @@ import cn.hutool.core.util.IdcardUtil; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; +import com.doumee.core.erp.ErpConstants; +import com.doumee.core.erp.ErpTool; +import com.doumee.core.erp.model.openapi.request.erp.ApproveAddRequest; +import com.doumee.core.erp.model.openapi.request.erp.UserInfoRequest; +import com.doumee.core.erp.model.openapi.response.erp.ApproveInfoResponse; import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.HKTools; @@ -30,15 +35,18 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import com.github.yulichang.wrapper.MPJLambdaWrapper; +import io.swagger.models.auth.In; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; import org.springframework.util.DigestUtils; import java.util.*; +import java.util.stream.Collectors; /** * 璁垮鐢宠淇℃伅琛⊿ervice瀹炵幇 @@ -83,21 +91,28 @@ //妫�鏌ユ槸鍚﹀繀椤荤瓟棰橈紝骞朵笖绗﹀悎绛旈瑕佹眰 ProblemLog problemLog = isValidProblemLog(visits); //鑾峰彇鐢宠鐨勬捣搴疯闂棬绂佺粍淇℃伅 - String[] hkIds = getHkDeviceRoles(visits); + getHkDeviceRoles(visits); //妫�楠屾嫓璁夸汉鏄惁鍚堟硶 - isValideVisitedUser(visits.getReceptMemberId()); + Member visitMember = isValideVisitedUser(visits.getReceptMemberId()); if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType()) &&!IdcardUtil.isValidCard(visits.getIdcardNo())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�"); } Date date = new Date(); + //鍒涘缓鏃堕棿 + visits.setCreateDate(date); + //鏅�氳瀹� + visits.setType(Constants.ONE); + //闅忚浜哄憳鏁伴噺 + visits.setMemberNum(CollectionUtils.isNotEmpty(visits.getWithUserList())?visits.getWithUserList().size():0); //璁垮淇℃伅(浣跨敤韬唤璇佸彿鏌ヨ鏄惁宸插瓨鍦ㄦ敼鏅�氳瀹紝娌℃湁鍒欐柊澧烇紝瀛樺湪鍒欐洿鏂皁penid绛変俊鎭�),鍖呮嫭闅忚浜哄憳鏍¢獙鍜屽鐞� Member member =dealMemberAndVisits(visits); + visits.setMemberId(member.getId()); //鍒濆鍖栬瀹俊鎭� initVisitInfo(visits,date); //鍙戣捣ERP瀹℃壒鐢宠 - String erpid = startSendErpCheck(visits); - if(StringUtils.isNotBlank(erpid)){ - visits.setErpId(erpid); + String erpId = startSendErpCheck(visits,visitMember); + if(StringUtils.isNotBlank(erpId)){ + visits.setErpId(erpId); }else{ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鍙戣捣鎷滆瀹℃壒鐢宠澶辫触锛�"); } @@ -112,13 +127,13 @@ * @param visits */ private void isValidBaseParam(Visits visits) { - if(visits.getStarttime() == null - || visits.getEndtime() == null + if(visits.getEndtime() == null + || visits.getStarttime() == null || StringUtils.isBlank(visits.getReason()) || StringUtils.isBlank( visits.getName()) || StringUtils.isBlank( visits.getPhone()) || visits.getIdcardType() == null - || StringUtils.isBlank( visits.getFaceImg() ) +// || StringUtils.isBlank( visits.getFaceImg() ) || StringUtils.isBlank( visits.getIdcardNo() ) || visits.getReceptMemberId() == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝淇℃伅濉啓涓嶆纭紒"); @@ -169,13 +184,16 @@ } private void initWithVisitInfo(Visits visits) { - if(visits.getWithUserList()!=null && visits.getLwWithUserList().size()>0){ + if(CollectionUtils.isNotEmpty(visits.getWithUserList())){ for(Visits v :visits.getWithUserList()){ v.setParentId(visits.getId()); v.setStarttime(visits.getStarttime()); v.setEndtime(visits.getEndtime()); v.setIsdeleted(Constants.ZERO); v.setCreateDate(visits.getCreateDate()); + v.setSex(Constants.getSexByCardNo(v.getIdcardNo())); + v.setIdcardDecode(Constants.getTuominStr(v.getIdcardNo()));//鑴辨晱韬唤璇佸彿 + v.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, v.getIdcardNo()));//韬唤璇佸彿鍔犲瘑 v.setErpId(visits.getErpId()); v.setHkStatus(Constants.ZERO); v.setStatus(Constants.ZERO); @@ -189,13 +207,50 @@ visits.setHkStatus(Constants.ZERO);//鏈悓姝� visits.setBirthday(Constants.getBirthdyByCardNo(visits.getIdcardNo())); visits.setStatus(Constants.ZERO);//寰呭鎵� + visits.setSex(Constants.getSexByCardNo(visits.getIdcardNo())); + visits.setIdcardDecode(Constants.getTuominStr(visits.getIdcardNo()));//鑴辨晱韬唤璇佸彿 visits.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, visits.getIdcardNo()));//韬唤璇佸彿鍔犲瘑 - //韬唤璇佸彿瀛樺偍瀵嗘枃 - visits.setIdcardDecode(Constants.getTuominStr(visits.getIdcardNo()));//鑴辨晱鎵嬫満鍙� + visits.setIsdeleted(Constants.ZERO); visits.setCreateDate(date); } - private String startSendErpCheck(Visits visits) { + private String startSendErpCheck(Visits visits,Member visitMember) { + ApproveAddRequest param = new ApproveAddRequest(); + List<Visits> withUserVisitsList = visits.getWithUserList(); + List<UserInfoRequest> withUserList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(withUserVisitsList)){ + for (Visits v:withUserVisitsList) { + UserInfoRequest userInfoRequest = new UserInfoRequest(); + userInfoRequest.setName(v.getName()); + userInfoRequest.setIdNo(v.getIdcardNo()); + userInfoRequest.setSex(v.getSex()); + userInfoRequest.setPhone(v.getPhone()); + userInfoRequest.setFaceImg(v.getFaceImg()); + userInfoRequest.setHealthImg(v.getImgurl()); + withUserList.add(userInfoRequest); + } + param.setWithUserList(withUserList); + } + param.setId(visits.getId()); + param.setBeVisitedUserId(visitMember.getErpId()); + param.setVisitorWorkUint(visits.getCompanyName()); + param.setPurpose(visits.getReason()); + param.setStartTime(DateUtil.getDate(visits.getStarttime(),"yyyy-MM-dd HH:mm:ss")); + param.setEndTime(DateUtil.getDate(visits.getEndtime(),"yyyy-MM-dd HH:mm:ss")); + if(StringUtils.isNotBlank(visits.getCarNos())){ + param.setCarNo(Arrays.asList(visits.getCarNos().split(","))); + } + if(StringUtils.isNotBlank(visits.getDoors())){ + List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda().in(DeviceRole::getId,Arrays.asList(visits.getDoors().split(",")))); + if(CollectionUtils.isNotEmpty(deviceRoleList)){ + param.setRoleIds(deviceRoleList.stream().map(m->m.getId()).collect(Collectors.toList())); + param.setRoleNames(deviceRoleList.stream().map(m->m.getName()).collect(Collectors.toList())); + } + } + ApproveInfoResponse response = ErpTool.submitApprove(ErpConstants.approveUrl,param); + if(!Objects.isNull(response)){ + return response.getId().toString(); + } return null; } @@ -237,25 +292,39 @@ //闅忚浜哄憳淇℃伅澶勭悊 if(visits.getWithUserList()!= null && visits.getWithUserList().size()>0){ for(Visits model:visits.getWithUserList()){ + model.setStarttime(visits.getStarttime()); + model.setEndtime(visits.getEndtime()); //鏍¢獙闅忚浜哄憳濉姤鏁版嵁鍚堟硶鎬� isValidWithVisitParam(model,addList,editList); model.setCreateDate(visits.getCreateDate()); - getMemberListParam(model.getIdcardNo(),visits,addList,editList); + getMemberListParam(model.getIdcardNo(),model,addList,editList); } } + + if(CollectionUtils.isNotEmpty(addList)){ + memberMapper.insertBatchSomeColumn(addList); + } + if(CollectionUtils.isNotEmpty(editList)){ + editList.forEach(i->{ + memberMapper.updateById(i); + }); + + } + return m; } private Member getMemberListParam(String cardno, Visits visits, List<Member> addList, List<Member> editList) { - if(!Constants.checkCarNo(visits.getCarNos())){ + if(StringUtils.isNotBlank(visits.getCarNos())&&!Constants.checkCarNo(visits.getCarNos())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝杞︾墝鍙枫��"+visits.getCarNos()+"銆戜笉鍚堟硶锛岃鏍稿疄鍚庨噸璇晘"); } Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() .eq(Member::getType,Constants.memberType.visitor) .eq(Member::getIdcardType,visits.getIdcardType()) - .eq(Member::getIdcardNo,visits.getIdcardNo()).last("limit 1" ) + .eq(Member::getIdcardNo,DESUtil.encrypt(Constants.EDS_PWD, cardno)).last("limit 1" ) ); if(member == null){ + member = new Member(); //濡傛灉鐢ㄦ埛涓嶅瓨鍦紝鍒欐柊澧� member.setCreateDate(visits.getCreateDate()); member.setIsdeleted(Constants.ZERO); @@ -263,12 +332,18 @@ member.setIdcardDecode(visits.getIdcardDecode()); member.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, cardno));//韬唤璇佸彿鍔犲瘑 member.setIdcardDecode(Constants.getTuominStr(cardno));//鑴辨晱鎵嬫満鍙� + member.setFaceImg(visits.getFaceImg()); + member.setSex(Constants.getSexByCardNo(cardno)); + member.setImgurl(StringUtils.isNotBlank(visits.getImgurl())?visits.getImgurl():null); + member.setIdcardType(visits.getIdcardType()); member.setName(visits.getName()); member.setPhone(visits.getPhone()); member.setOpenid(visits.getOpenid()); member.setType(Constants.memberType.visitor); member.setStatus(Constants.ZERO); - member.setSex(visits.getSex()); + member.setSex(Constants.getSexByCardNo(cardno)); + member.setHkStatus(Constants.ZERO); + member.setErpStatus(Constants.ZERO); // 鏂板璁垮璁板綍 addList.add(member); }else{ @@ -278,16 +353,30 @@ } //鏍告煡棰勭害鐢ㄦ埛鏄惁瀛樺湪鏈绂荤殑棰勭害璁板綍 isExsitNoOutVisisRecord(member); + member.setFaceImg(visits.getFaceImg()); + member.setImgurl(StringUtils.isNotBlank(visits.getImgurl())?visits.getImgurl():null); member.setEditDate(visits.getCreateDate()); member.setIsdeleted(Constants.ZERO); - member.setIdcardNo(visits.getIdcardNo()); - member.setIdcardDecode(visits.getIdcardDecode()); + member.setSex(Constants.getSexByCardNo(cardno)); + member.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, cardno));//韬唤璇佸彿鍔犲瘑 + member.setIdcardDecode(Constants.getTuominStr(cardno));//鑴辨晱韬唤璇佸彿 member.setName(visits.getName()); member.setPhone(visits.getPhone()); member.setOpenid(visits.getOpenid()); - member.setSex(visits.getSex()); + member.setSex(Constants.getSexByCardNo(cardno)); + member.setHkStatus(Constants.ZERO); + member.setErpStatus(Constants.ZERO); // 鏇存柊璁垮淇℃伅, editList.add(member); + } + //鏍规嵁鎵嬫満鍙峰拰韬唤璇佸彿鐮佹煡璇� 褰撳墠棰勭害鐨勬椂闂存槸鍚︿笌鍏朵粬棰勭害璁板綍鏈夊啿绐� + if (visitsMapper.selectCount(new QueryWrapper<Visits>().lambda() + .and(ms -> ms.eq(Visits::getPhone, visits.getPhone()) + .or().eq(Visits::getIdcardDecode, Constants.getTuominStr(cardno))) + .and(ms -> ms.apply(" visits.STARTTIME <= '" + DateUtil.DateToStr(visits.getStarttime(),"yyyy-MM-dd HH:mm:ss") + "' and visits.ENDTIME >= '" + DateUtil.DateToStr(visits.getStarttime(),"yyyy-MM-dd HH:mm:ss") + "' ") + .or().apply(" visits.STARTTIME <= '" + DateUtil.DateToStr(visits.getEndtime(),"yyyy-MM-dd HH:mm:ss") + "' and visits.ENDTIME >= '" + DateUtil.DateToStr(visits.getEndtime(),"yyyy-MM-dd HH:mm:ss") + "' ") + )) > Constants.ZERO) { + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鎵嬫満鍙枫��"+member.getPhone()+"銆戞垨韬唤璇併��"+ member.getIdcardDecode() +"銆戝瓨鍦ㄩ绾︽椂闂村啿绐侊紝鏃犳硶鐢宠鍝︼紒"); } return member; } @@ -305,6 +394,9 @@ if(v !=null){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝鎵嬫満鍙枫��"+member.getPhone()+"銆戝瓨鍦ㄦ湭绛剧棰勭害鐢宠锛屼笉鑳介噸澶嶇敵璇峰摝锛�"); } + + + } private List<Member> isValideWithUsers(List<Visits> withUserList) { @@ -327,6 +419,7 @@ private void updateProblemLog(Visits visits, ProblemLog problemLog,Member member) { if(problemLog!=null){ problemLog.setEditDate(visits.getCreateDate()); + problemLog.setStatus(Constants.ONE); problemLog.setName(visits.getName()); problemLog.setUserId(member.getId()); problemLog.setPhone(member.getPhone()); @@ -341,7 +434,7 @@ */ private Member isValideVisitedUser(Integer receptMemberId) { Member member = memberMapper.selectById(receptMemberId); - if(member == null || Constants.equalsInteger(Constants.ZERO,member.getIsdeleted())){ + if(member == null || !Constants.equalsInteger(Constants.ZERO,member.getIsdeleted())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇ユ嫓璁夸汉鏆傛椂涓嶈兘鎺ュ彈鎮ㄧ殑鎷滆鐢宠锛�"); } if(!Constants.equalsInteger(member.getStatus(), Constants.ZERO)){ @@ -364,7 +457,7 @@ if(log == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇峰厛鎸夎姹傝繘琛屽畨鍏ㄧ煡璇嗙瓟棰�."); } - if(log.getLogId() !=null){ + if(log.getLogId() !=null&&log.getStatus().equals(Constants.ZERO)){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇峰厛鎸夎姹傝繘琛屽畨鍏ㄧ煡璇嗙瓟棰榽"); } return log; @@ -381,11 +474,23 @@ String mustSelectDoors = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SELECT_DOORS_VISIT_REQUIRED).getCode(); List<DeviceRole> roles = null; if(StringUtils.equals(mustSelectDoors,Constants.ZERO+"")){ - //濡傛灉蹇呴』閫夋嫨闂ㄧ锛屼絾鏈�夋嫨 + //濡傛灉璁剧疆涓嶉�夋嫨闂ㄧ锛屽垯鎻愪緵榛樿闂ㄧ缁勪俊鎭� + if(StringUtils.isBlank(visits.getDoors())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇烽�夋嫨璁块棶闂ㄧ锛�"); } //鏍¢獙闂ㄧ缁勪俊鎭槸鍚︽纭� + String[] dIds = visits.getDoors().split(","); + roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() + .eq(DeviceRole::getIsDefault,Constants.ZERO) + .eq(DeviceRole::getIsdeleted,Constants.ZERO) + .eq(DeviceRole::getType,Constants.DeviceRoleType.fk)); + if(roles.size() ==0){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏆備笉瀛樺湪鍙闂殑璁垮闂ㄧ锛屾棤娉曡繘琛岀敵璇锋搷浣滐紒"); + } + + }else{ + //濡傛灉蹇呴』閫夋嫨闂ㄧ锛屼絾鏈�夋嫨 String[] dIds = visits.getDoors().split(","); roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .eq(DeviceRole::getIsdeleted,Constants.ZERO) @@ -393,17 +498,6 @@ .in(DeviceRole::getId, Arrays.asList(dIds))); if(roles == null || roles.size()==0 || roles.size() != dIds.length){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇烽�夋嫨鏈夋晥璁块棶闂ㄧ锛�"); - } - }else{ - //濡傛灉璁剧疆涓嶉�夋嫨闂ㄧ锛屽垯鎻愪緵榛樿闂ㄧ缁勪俊鎭� - String[] dIds = visits.getDoors().split(","); - roles = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() - .eq(DeviceRole::getIsdeleted,Constants.ZERO) - .eq(DeviceRole::getIsDefault,Constants.ZERO) - .eq(DeviceRole::getType,Constants.DeviceRoleType.fk)); - if(roles.size() ==0){ - - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝鏆備笉瀛樺湪鍙闂殑璁垮闂ㄧ锛屾棤娉曡繘琛岀敵璇锋搷浣滐紒"); } } String[] ids =new String[roles.size()]; @@ -476,8 +570,12 @@ visitQuery.isNotNull(Visits::getParentId); visitQuery.eq(Visits::getIsdeleted,Constants.ZERO); List<Visits> visitsList = visitsJoinMapper.selectList(visitQuery); - visitsList.add(0,result); - result.setVisitsList(visitsList); + Visits v = new Visits(); + BeanUtils.copyProperties(result,v); + visitsList.add(0,v); + result.setWithUserList(visitsList); + result.setPrefixUrl(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + + systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode()); return result; } @@ -506,9 +604,9 @@ queryWrapper.eq(Visits::getIsdeleted,Constants.ZERO); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Visits::getType,pageWrap.getModel().getType()); - queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Visits::getPhone,pageWrap.getModel().getName()) + queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Visits::getName,pageWrap.getModel().getName()) .or().like(Visits::getPhone,pageWrap.getModel().getName())) - .eq(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Visits::getIdcardNo,StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo())) + .eq(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Visits::getIdcardNo,DESUtil.encrypt(Constants.EDS_PWD, pageWrap.getModel().getIdcardNo())) .eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Visits::getCompanyName,pageWrap.getModel().getCompanyName()) .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Visits::getStatus,pageWrap.getModel().getStatus()); queryWrapper.isNull(Visits::getParentId); @@ -522,4 +620,48 @@ QueryWrapper<Visits> wrapper = new QueryWrapper<>(visits); return visitsMapper.selectCount(wrapper); } + + + @Override + public PageData<Visits> retentionPage(PageWrap<Visits> pageWrap) { + IPage<Visits> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); + MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>(); + + queryWrapper.selectAll(Visits.class); + queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName); + queryWrapper.select("TIMESTAMPDIFF(MINUTE,t.ENDTIME , NOW()) AS timeOut"); + queryWrapper.selectAs(Member::getType,Visits::getMemberType); + queryWrapper.selectAs(Company::getName,Visits::getReceptMemberDepartment); + queryWrapper.leftJoin(Member.class,Member::getId,Visits::getReceptMemberId); + queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); + queryWrapper.leftJoin(" member m on m.id=t.MEMBER_ID"); + + queryWrapper.ne("m.type ",Constants.TWO); + queryWrapper.eq(Visits::getIsdeleted,Constants.ZERO); + queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Visits::getType,pageWrap.getModel().getType()); + queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Visits::getPhone,pageWrap.getModel().getName()) + .or().like(Visits::getPhone,pageWrap.getModel().getName())) + .eq(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Visits::getIdcardNo,StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo())) + .eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Visits::getCompanyName,pageWrap.getModel().getCompanyName()) + .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Visits::getStatus,pageWrap.getModel().getStatus()); + queryWrapper.isNull(Visits::getOutDate); + queryWrapper.orderByDesc(Visits::getEditDate); + String code= systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.TIMEOUT_FREEZE).getCode(); + IPage<Visits> result = visitsJoinMapper.selectJoinPage(page, Visits.class,queryWrapper); + if(result!=null&&result.getRecords()!=null){ + result.getRecords().stream().forEach(s ->{ + if(s.getTimeOut()>=Constants.ZERO){ + s.setOutStatus(Constants.ONE); + }else if(s.getTimeOut()<=Integer.valueOf(code)&&s.getTimeOut()>0){ + s.setOutStatus(Constants.TWO); + }else{ + s.setOutStatus(Constants.ZERO); + } + + }); + } + + return PageData.from(result); + } + } -- Gitblit v1.9.3