| | |
| | | import com.doumee.core.haikang.model.param.request.VisitAppointmentRequest; |
| | | import com.doumee.core.haikang.model.param.respose.VisitAppointmentResponse; |
| | | import com.doumee.core.haikang.service.HKService; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.core.wx.wxPlat.WxPlatNotice; |
| | | import com.doumee.dao.admin.response.InterestedListVO; |
| | | import com.doumee.dao.admin.response.PCWorkPlatformDataVO; |
| | | import com.doumee.dao.business.*; |
| | | import com.doumee.dao.business.dao.CompanyMapper; |
| | | import com.doumee.dao.business.dto.ResetPasswordDTO; |
| | |
| | | import com.doumee.dao.business.join.VisitsJoinMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.SystemUserMapper; |
| | | import com.doumee.dao.system.dto.NoticesDTO; |
| | | import com.doumee.dao.system.dto.ResetSystemUserPwdDTO; |
| | | import com.doumee.dao.system.join.NoticesJoinMapper; |
| | | import com.doumee.dao.system.model.Notices; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.dao.web.reqeust.AuditApproveDTO; |
| | | import com.doumee.dao.web.reqeust.ErpVisitDTO; |
| | |
| | | import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl; |
| | | 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; |
| | |
| | | private SystemUserMapper systemUserMapper; |
| | | @Autowired |
| | | private ApproveService approveService; |
| | | |
| | | @Autowired |
| | | private NoticesJoinMapper noticesJoinMapper; |
| | | @Autowired |
| | | private InoutDayCountMapper inoutDayCountMapper; |
| | | |
| | | @Override |
| | | public Integer create(Visits visits) { |
| | |
| | | systemUserBiz.resetPwd(dto); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param queryType 查询类型:1=在园人数;2=报表数据;3=待办事项;4=超时预警 |
| | | * @param loginUserInfo |
| | | * @return |
| | | */ |
| | | @Override |
| | | public PCWorkPlatformDataVO getPcWorkPlatformData(Integer queryType ,LoginUserInfo loginUserInfo){ |
| | | PCWorkPlatformDataVO pcWorkPlatformDataVO = new PCWorkPlatformDataVO(); |
| | | if(Constants.equalsInteger(queryType,Constants.ONE)){ |
| | | List<Retention> retentionList = retentionMapper.selectJoinList(Retention.class, |
| | | new MPJLambdaWrapper<Retention>() |
| | | .selectAll(Retention.class) |
| | | .selectAs(Company::getType,Retention::getCompanyType) |
| | | .leftJoin(Company.class,Company::getId,Retention::getCompanyId) |
| | | ); |
| | | |
| | | InoutDayCount inoutDayCount = inoutDayCountMapper.selectOne(new QueryWrapper<InoutDayCount>() |
| | | .lambda() |
| | | .apply(" DATE(TIME_INFO) = CURDATE() ") |
| | | .last(" limit 1 ") |
| | | ); |
| | | |
| | | //今日在园人数 |
| | | pcWorkPlatformDataVO.setTodayInParkUserNum( |
| | | retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)).count() |
| | | ); |
| | | |
| | | pcWorkPlatformDataVO.setTodayInUserNum(Constants.ZERO); |
| | | pcWorkPlatformDataVO.setTodayOutUserNum(Constants.ZERO); |
| | | |
| | | //在园长期相关方人数 |
| | | pcWorkPlatformDataVO.setInParkLwUserNum( |
| | | retentionList.stream().filter(i->Constants.equalsInteger(i.getCompanyType(),Constants.ONE)).count() |
| | | ); |
| | | pcWorkPlatformDataVO.setLwUserInNum(Constants.ZERO); |
| | | pcWorkPlatformDataVO.setLwUserOutNum(Constants.ZERO); |
| | | |
| | | |
| | | //在园访客数量 |
| | | pcWorkPlatformDataVO.setInParkVisitUserNum( |
| | | retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)&&Objects.isNull(i.getCompanyType())).count() |
| | | ); |
| | | pcWorkPlatformDataVO.setVisitUserNum(Constants.ZERO); |
| | | pcWorkPlatformDataVO.setSignLevelNum(Constants.ZERO); |
| | | |
| | | //在园车辆 |
| | | pcWorkPlatformDataVO.setTodayInParkCarNum( |
| | | retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)).count() |
| | | ); |
| | | pcWorkPlatformDataVO.setTodayInCarNum(Constants.ZERO); |
| | | pcWorkPlatformDataVO.setTodayOutCarNum(Constants.ZERO); |
| | | if(Objects.nonNull(inoutDayCount)){ |
| | | //相关方 |
| | | pcWorkPlatformDataVO.setLwUserInNum(inoutDayCount.getInOtherMemberNum()); |
| | | pcWorkPlatformDataVO.setLwUserOutNum(inoutDayCount.getOutOtherMemberNum()); |
| | | //访客 |
| | | pcWorkPlatformDataVO.setVisitUserNum(inoutDayCount.getInVisitorNum()); |
| | | pcWorkPlatformDataVO.setSignLevelNum(inoutDayCount.getOutVisitorNum()); |
| | | //车辆 |
| | | pcWorkPlatformDataVO.setTodayInCarNum(inoutDayCount.getInCarNum()); |
| | | pcWorkPlatformDataVO.setTodayOutCarNum(inoutDayCount.getOutCarNum()); |
| | | //总人数 |
| | | pcWorkPlatformDataVO.setTodayInUserNum(pcWorkPlatformDataVO.getLwUserInNum() + pcWorkPlatformDataVO.getVisitUserNum() + inoutDayCount.getInSelfMemberNum() ); |
| | | pcWorkPlatformDataVO.setTodayOutUserNum(pcWorkPlatformDataVO.getLwUserOutNum() + pcWorkPlatformDataVO.getSignLevelNum() + inoutDayCount.getOutSelfMemberNum() ); |
| | | } |
| | | |
| | | }else if(Constants.equalsInteger(queryType,Constants.TWO)){ |
| | | List<String> weekDays = DateUtil.getBeforDays(new Date(),7); |
| | | List<InterestedListVO> weekVisitList = new ArrayList<>(); |
| | | List<InterestedListVO> weekCarList = new ArrayList<>(); |
| | | List<InterestedListVO> lwList = new ArrayList<>(); |
| | | |
| | | for (String days:weekDays) { |
| | | InoutDayCount inoutDayCount = inoutDayCountMapper.selectOne(new QueryWrapper<InoutDayCount>() |
| | | .lambda() |
| | | .apply(" DATE(TIME_INFO) = '"+days+"' ") |
| | | .last(" limit 1 ") |
| | | ); |
| | | InterestedListVO visitVO = new InterestedListVO(); |
| | | visitVO.setName(days); |
| | | InterestedListVO carVO = new InterestedListVO(); |
| | | carVO.setName(days); |
| | | if(Objects.isNull(inoutDayCount)){ |
| | | visitVO.setNum(Constants.ZERO); |
| | | carVO.setNum(Constants.ZERO); |
| | | }else{ |
| | | visitVO.setNum(inoutDayCount.getInVisitorNum()); |
| | | carVO.setNum(inoutDayCount.getInCarNum()); |
| | | } |
| | | weekVisitList.add(visitVO); |
| | | weekCarList.add(carVO); |
| | | } |
| | | pcWorkPlatformDataVO.setWeekVisitList(weekVisitList ); |
| | | pcWorkPlatformDataVO.setWeekCarList(weekCarList); |
| | | |
| | | // List<Retention> retentionList = retentionMapper.selectJoinList(Retention.class, |
| | | // new MPJLambdaWrapper<Retention>() |
| | | // .selectAll(Retention.class) |
| | | // .selectAs(Company::getType,Retention::getCompanyType) |
| | | // .selectAs(Company::getName,Retention::getCompanyName) |
| | | // .leftJoin(Company.class,Company::getId,Retention::getCompanyId) |
| | | // .eq(Company::getType,Constants.ZERO) |
| | | // .groupBy(Company::getId,Company::getName) |
| | | // .orderByDesc(Retention::getNum) |
| | | // ); |
| | | |
| | | List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>().lambda() |
| | | .eq(Company::getType,Constants.ZERO) |
| | | .eq(Company::getIsdeleted,Constants.ZERO) |
| | | ); |
| | | |
| | | if(CollectionUtils.isNotEmpty(companyList)){ |
| | | List<Integer> companyIds = companyList.stream().map(i->i.getId()).collect(Collectors.toList()); |
| | | List<Retention> retentionList = retentionMapper.selectList( |
| | | new QueryWrapper<Retention>().lambda() |
| | | .in(Retention::getCompanyId,companyIds) |
| | | ); |
| | | for (Company company:companyList) { |
| | | Integer count = retentionList.stream().filter(i->Constants.equalsInteger(i.getCompanyId(),company.getId())).collect(Collectors.toList()).size(); |
| | | InterestedListVO lw = new InterestedListVO(); |
| | | lw.setNum(count); |
| | | lw.setName(company.getName()); |
| | | lwList.add(lw); |
| | | } |
| | | } |
| | | |
| | | pcWorkPlatformDataVO.setLwList(lwList ); |
| | | }else if(Constants.equalsInteger(queryType,Constants.THREE)) { |
| | | MPJLambdaWrapper<Notices> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Notices.class); |
| | | if (Objects.isNull(loginUserInfo.getMemberId())) { |
| | | queryWrapper.eq("1", "2"); |
| | | } else { |
| | | queryWrapper.eq(Notices::getStatus, Constants.ZERO); |
| | | queryWrapper.eq(Notices::getSendacopy, Constants.ZERO); |
| | | queryWrapper.eq(Notices::getParam2, Constants.ZERO); |
| | | queryWrapper.eq(Notices::getUserId, loginUserInfo.getMemberId()); |
| | | } |
| | | queryWrapper.orderByDesc(Notices::getCreateDate); |
| | | List<Notices> noticesList = noticesJoinMapper.selectList(queryWrapper); |
| | | pcWorkPlatformDataVO.setNoticesList(noticesList); |
| | | pcWorkPlatformDataVO.setNoticesNum(noticesList.size()); |
| | | }else{ |
| | | String code= systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.TIMEOUT_WARNING).getCode(); |
| | | MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Visits.class); |
| | | queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName); |
| | | queryWrapper.select("TIMESTAMPDIFF( MINUTE, NOW(), t.OUT_DATE) 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.eq(Visits::getStatus,Constants.VisitStatus.signin); |
| | | queryWrapper.apply(" TIMESTAMPDIFF( MINUTE, NOW(), t.OUT_DATE) <= "+code+" "); |
| | | queryWrapper.ne("m.type ",Constants.TWO); |
| | | queryWrapper.eq(Visits::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.orderByDesc(Visits::getEditDate); |
| | | List<Visits> result = visitsJoinMapper.selectList(queryWrapper); |
| | | if(result!=null&&result!=null){ |
| | | result.stream().forEach(s ->{ |
| | | if(s.getStatus().equals(Constants.VisitStatus.signin)){ |
| | | if(s.getTimeOut()<=Integer.valueOf(code)&&s.getTimeOut()>=0){ |
| | | s.setOutStatus(Constants.TWO); |
| | | }else if(s.getTimeOut()>Constants.ZERO){ |
| | | s.setOutStatus(Constants.ZERO); |
| | | }else{ |
| | | s.setOutStatus(Constants.ONE); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | pcWorkPlatformDataVO.setTimeOutVisitList(result); |
| | | pcWorkPlatformDataVO.setTimeOutVisitNum(result.size()); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | return pcWorkPlatformDataVO; |
| | | } |
| | | } |