From c50686f775664c5a722f4b5ad7afde1e5214b14d Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 05 十一月 2024 19:07:21 +0800 Subject: [PATCH] 最新版本541200007 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 125 +++++++++++++++++++++++++++++++---------- 1 files changed, 94 insertions(+), 31 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java index 3098750..188a1d8 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java @@ -12,33 +12,29 @@ 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.param.BaseListPageResponse; import com.doumee.core.haikang.model.param.BaseResponse; import com.doumee.core.haikang.model.param.request.FacePictureCheckRequest; import com.doumee.core.haikang.model.param.request.VisitAppointmentOutRequest; import com.doumee.core.haikang.model.param.request.VisitAppointmentRequest; -import com.doumee.core.haikang.model.param.respose.AscDeviceStatusInfoResponse; import com.doumee.core.haikang.model.param.respose.FacePictureCheckResponse; 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.DESUtil; -import com.doumee.core.utils.DateUtil; -import com.doumee.core.utils.Utils; +import com.doumee.core.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.dao.SmsEmailMapper; import com.doumee.dao.business.dto.ResetPasswordDTO; import com.doumee.dao.business.join.DeviceJoinMapper; 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; @@ -58,26 +54,18 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl; +import com.doumee.service.business.third.EmayService; 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.Propagation; import org.springframework.transaction.annotation.Transactional; -import sun.misc.BASE64Encoder; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.HttpURLConnection; -import java.net.URL; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; import java.util.*; +import java.util.Date; import java.util.stream.Collectors; /** @@ -132,6 +120,17 @@ private NoticesJoinMapper noticesJoinMapper; @Autowired private InoutDayCountMapper inoutDayCountMapper; + @Autowired + private CarEventMapper carEventMapper; + + @Autowired + private SmsConfigMapper smsConfigMapper; + + @Autowired + private SmsEmailMapper smsEmailMapper; + + @Autowired + private EmayService emayService; @Override public Integer create(Visits visits) { @@ -1220,6 +1219,18 @@ queryWrapper.leftJoin(Member.class,Member::getId,Visits::getReceptMemberId); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); + //鏁版嵁鏉冮檺寮�濮�--------------------start---------------- + LoginUserInfo userInfo =pageWrap.getModel().getLoginUserInfo(); + if(userInfo!=null && userInfo.getCompanyIdList()!=null){ + if( userInfo.getCompanyIdList().size() ==0){ + //鍙兘鐪嬭嚜宸�(鎷滆浜猴級 + queryWrapper.eq(Member::getId,userInfo.getMemberId()); + }else{ + queryWrapper.in(Company::getId ,userInfo.getCompanyIdList()); + } + } + //鏁版嵁鏉冮檺寮�濮�--------------------end---------------- + queryWrapper.eq(Visits::getIsdeleted,Constants.ZERO); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType())&&Constants.equalsInteger(pageWrap.getModel().getType(),Constants.TWO),Visits::getType,pageWrap.getModel().getType()); queryWrapper.ne(Objects.nonNull(pageWrap.getModel().getType())&&!Constants.equalsInteger(pageWrap.getModel().getType(),Constants.TWO),Visits::getType,Constants.TWO); @@ -1529,7 +1540,7 @@ //浠婃棩鍦ㄥ洯浜烘暟 pcWorkPlatformDataVO.setTodayInParkUserNum( - retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)).count() + retentionList.stream().filter(i->!Constants.equalsInteger(i.getType(),Constants.THREE)).count() ); pcWorkPlatformDataVO.setTodayInUserNum(Constants.ZERO); @@ -1545,7 +1556,7 @@ //鍦ㄥ洯璁垮鏁伴噺 pcWorkPlatformDataVO.setInParkVisitUserNum( - retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO)&&Objects.isNull(i.getCompanyType())).count() + retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Objects.isNull(i.getCompanyType())).count() ); pcWorkPlatformDataVO.setVisitUserNum(Constants.ZERO); pcWorkPlatformDataVO.setSignLevelNum(Constants.ZERO); @@ -1576,23 +1587,48 @@ List<InterestedListVO> weekVisitList = new ArrayList<>(); List<InterestedListVO> weekCarList = new ArrayList<>(); List<InterestedListVO> lwList = new ArrayList<>(); + //鏌ヨ涓冨ぉ鍓嶇殑璁垮璁板綍鏁伴噺 + List<Visits> visitsList = visitsMapper.selectList(new QueryWrapper<Visits>().lambda().in(Visits::getStatus, + Constants.VisitStatus.signin,Constants.VisitStatus.signout) + .apply(" STARTTIME > CURDATE() - INTERVAL 7 DAY " ) + ); + + List<CarEvent> carEventList = carEventMapper.selectList(new QueryWrapper<CarEvent>().lambda() + .in(CarEvent::getEventType,"771760131","771760130") + .apply(" STR_TO_DATE(happen_time, '%Y-%m-%dT%H:%i:%s') > CURDATE() - INTERVAL 7 DAY " ) + ); 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); + if(CollectionUtils.isNotEmpty(visitsList)){ + //澶勭悊璁垮浜哄憳鏁伴噺 + List<Visits> daysList = visitsList.stream().filter(i->Objects.nonNull(i.getStarttime())&&DateUtil.dateToString(i.getStarttime(),"yyyy-MM-dd").equals(days)).collect(Collectors.toList()); + List<String> memberIds = daysList.stream().map(i->i.getMemberId().toString()).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(memberIds)){ + visitVO.setNum(new HashSet<String>(memberIds).size()); + } + } + if(Objects.isNull(visitVO.getNum())){ + visitVO.setNum(Constants.ZERO); + } + + visitVO.setName(days); InterestedListVO carVO = new InterestedListVO(); carVO.setName(days); - if(Objects.isNull(inoutDayCount)){ + + + if(CollectionUtils.isNotEmpty(carEventList)){ + //澶勭悊璁垮浜哄憳鏁伴噺 + List<CarEvent> daysList = carEventList.stream().filter(i->StringUtils.isNotBlank(i.getHappenTime()) && i.getHappenTime().substring(0,10).equals(days)).collect(Collectors.toList()); + List<String> carCodeList = daysList.stream().map(i->i.getPlateNos()).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(carCodeList)){ + carVO.setNum(new HashSet<String>(carCodeList).size()); + } + } + if(Objects.isNull(carVO.getNum())){ visitVO.setNum(Constants.ZERO); - carVO.setNum(Constants.ZERO); - }else{ - visitVO.setNum(inoutDayCount.getInVisitorNum()); - carVO.setNum(inoutDayCount.getInCarNum()); } weekVisitList.add(visitVO); weekCarList.add(carVO); @@ -1647,7 +1683,6 @@ 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); @@ -1677,13 +1712,41 @@ }else{ pcWorkPlatformDataVO.setTimeOutVisitList(result); } + } + return pcWorkPlatformDataVO; + } + @Override + public void syncTimeOutData(){ + String times = systemDictDataBiz.queryByCode(Constants.VISIT_CONFIG,Constants.TIME_OUT_CONFIG).getCode(); + List<Visits> visitsList = visitsMapper.selectList(new QueryWrapper<Visits>().lambda() + .eq(Visits::getStatus,Constants.VisitStatus.signin) + .eq(Visits::getSendTimeOutNotice,Constants.ZERO) + .apply(" now() >= DATE_ADD(ENDTIME,INTERVAL -"+times+" MINUTE) ") + ); + for (Visits visits:visitsList) { + if(Constants.equalsInteger(visits.getType(),Constants.TWO)){ + SmsEmailServiceImpl.sendVisitReportSms(systemDictDataBiz, + emayService,smsEmailMapper,smsConfigMapper,visitsMapper,visits.getId(), + SmsConstants.visitReportingContent.visitReportingTimeOutSignOut, + null,Arrays.asList(visits.getPhone().split(",")) + ); + }else{ + SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz, + emayService,smsEmailMapper,smsConfigMapper,visitsMapper,visits.getId(), + SmsConstants.visitContent.visitTimeOutSignOut, + null,Arrays.asList(visits.getPhone().split(",")) + ); + } + visits.setSendTimeOutNotice(Constants.ONE); + visitsMapper.updateById(visits); } - return pcWorkPlatformDataVO; } + + } -- Gitblit v1.9.3