| | |
| | | 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.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.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; |
| | | |
| | | /** |
| | |
| | | private NoticesJoinMapper noticesJoinMapper; |
| | | @Autowired |
| | | private InoutDayCountMapper inoutDayCountMapper; |
| | | |
| | | @Autowired |
| | | private SmsConfigMapper smsConfigMapper; |
| | | |
| | | @Autowired |
| | | private SmsEmailMapper smsEmailMapper; |
| | | |
| | | @Autowired |
| | | private EmayService emayService; |
| | | |
| | | @Override |
| | | public Integer create(Visits visits) { |
| | |
| | | visits.setVisitType(Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MDJ_VISIT_REQUIRED).getCode())); |
| | | //初始化访客信息 |
| | | initVisitInfo(visits,date); |
| | | |
| | | if(StringUtils.isNotBlank(visits.getFaceImg())&&(Constants.equalsInteger(visits.getType(),Constants.ZERO)|| Constants.equalsInteger(visits.getType(),Constants.TWO))){ |
| | | //人脸评分 |
| | | FacePictureCheckRequest param = new FacePictureCheckRequest(); |
| | | String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + |
| | | systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); |
| | | param.setFacePicUrl(prefixUrl + visits.getFaceImg()); |
| | | BaseResponse<FacePictureCheckResponse> response = HKService.facePictureCheck(param); |
| | | if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对不起,人脸评分获取数据失败~"); |
| | | } |
| | | FacePictureCheckResponse facePictureCheckResponse = response.getData(); |
| | | if(Objects.isNull(facePictureCheckResponse) || Objects.isNull(facePictureCheckResponse.getCheckResult())){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对不起,人脸评分获取数据失败~"); |
| | | } |
| | | if(!facePictureCheckResponse.getCheckResult()){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), facePictureCheckResponse.getStatusMessage()); |
| | | } |
| | | } |
| | | |
| | | visitsMapper.insert(visits); |
| | | |
| | | //发起ERP审批申请 |
| | |
| | | |
| | | return visits.getId(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | |
| | | if(Constants.equalsInteger(visits.getType(),Constants.ZERO) |
| | | || Constants.equalsInteger(visits.getType(),Constants.ONE)){ |
| | | if( visits.getIdcardType() == null |
| | | || StringUtils.isBlank( visits.getIdcardNo() ) ){ |
| | | || StringUtils.isBlank( visits.getIdcardNo() ) || StringUtils.isBlank(visits.getFaceImg()) ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,信息填写不正确!"); |
| | | } |
| | | } |
| | |
| | | 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); |
| | |
| | | |
| | | //在园长期相关方人数 |
| | | pcWorkPlatformDataVO.setInParkLwUserNum( |
| | | retentionList.stream().filter(i->Constants.equalsInteger(i.getCompanyType(),Constants.ONE)).count() |
| | | retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO) && Constants.equalsInteger(i.getCompanyType(),Constants.ZERO)).count() |
| | | ); |
| | | pcWorkPlatformDataVO.setLwUserInNum(Constants.ZERO); |
| | | pcWorkPlatformDataVO.setLwUserOutNum(Constants.ZERO); |
| | |
| | | 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) |
| | |
| | | List<Notices> noticesList = noticesJoinMapper.selectList(queryWrapper); |
| | | pcWorkPlatformDataVO.setNoticesList(noticesList); |
| | | pcWorkPlatformDataVO.setNoticesNum(noticesList.size()); |
| | | if(noticesList.size() > 5 ){ |
| | | pcWorkPlatformDataVO.setNoticesList(noticesList.subList(0,5)); |
| | | }else{ |
| | | pcWorkPlatformDataVO.setNoticesList(noticesList); |
| | | } |
| | | }else{ |
| | | String code= systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.TIMEOUT_WARNING).getCode(); |
| | | MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>(); |
| | |
| | | } |
| | | }); |
| | | } |
| | | pcWorkPlatformDataVO.setTimeOutVisitList(result); |
| | | pcWorkPlatformDataVO.setTimeOutVisitNum(result.size()); |
| | | if(result.size() > 3 ){ |
| | | pcWorkPlatformDataVO.setTimeOutVisitList(result.subList(0,3)); |
| | | }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; |
| | | } |
| | | |
| | | |
| | | } |