From f63d3a3be83fea258e7920efccd2567b6a511bb3 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 16 一月 2025 16:52:46 +0800 Subject: [PATCH] 最新版本541200007 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 169 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 132 insertions(+), 37 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 09ac819..6e2f02b 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 @@ -13,21 +13,21 @@ import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; 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.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.service.business.third.model.LoginUserInfo; +import com.doumee.service.business.third.model.PageData; +import com.doumee.service.business.third.model.PageWrap; import com.doumee.core.utils.*; +import com.doumee.core.wx.wxPlat.WxPlatConstants; 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.MemberMapper; import com.doumee.dao.business.dao.SmsConfigMapper; import com.doumee.dao.business.dao.SmsEmailMapper; import com.doumee.dao.business.dto.ResetPasswordDTO; @@ -35,6 +35,7 @@ import com.doumee.dao.business.join.VisitsJoinMapper; import com.doumee.dao.business.model.*; +import com.doumee.dao.business.model.Member; import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.dto.ResetSystemUserPwdDTO; import com.doumee.dao.system.join.NoticesJoinMapper; @@ -80,7 +81,7 @@ @Autowired private RetentionMapper retentionMapper; @Autowired - private VisitsMapper visitsMapper; + private VisitsJoinMapper visitsMapper; @Autowired private ApproveMapper approveMapper; @Autowired @@ -131,6 +132,9 @@ private SmsEmailMapper smsEmailMapper; @Autowired + private WxNoticeConfigMapper wxNoticeConfigMapper; + + @Autowired private EmayService emayService; @@ -165,10 +169,9 @@ } if (Constants.equalsInteger(Constants.ZERO, erpVisitDTO.getIdcardType()) && erpVisitDTO.getIdcardNo().length() != 18 //&&!IdcardUtil.isValidCard(visits.getIdcardNo()) - ) { + ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�"); } - Visits visits = new Visits(); //鏍规嵁琚闂汉ERP涓婚敭鏌ヨ绯荤粺鍐呬汉鍛樹富閿俊鎭� Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() @@ -224,6 +227,7 @@ @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public Integer createFk(Visits visits,Boolean isERP,Integer source) { + visits.setId(null); isValidBaseParam(visits); //妫�鏌ユ槸鍚﹀繀椤荤瓟棰橈紝骞朵笖绗﹀悎绛旈瑕佹眰 ProblemLog problemLog = isValidProblemLog(visits,source); @@ -248,25 +252,25 @@ //鍒濆鍖栬瀹俊鎭� 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()); - } - } - +// 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_LOCAL_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()); +// } +// } + visits.setSendTimeOutNotice(Constants.ZERO); visitsMapper.insert(visits); //鍙戣捣ERP瀹℃壒鐢宠 @@ -279,10 +283,6 @@ }else{ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鍙戣捣鎷滆瀹℃壒鐢宠澶辫触锛�"); } - //鍙戦�佸井淇″叕浼楀彿閫氱煡 - wxPlatNotice.sendVisitAuditTemplateNotice(visits, - systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(), - systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode()); }else if(dataSyncConfig.getVisitorDataOrigin().equals(Constants.ZERO)){ visits.setStatus(Constants.VisitStatus.waitCheck); visitsMapper.updateById(visits); @@ -292,6 +292,17 @@ } initWithVisitInfo(visits); updateProblemLog(visits,problemLog,member); + + //鍙戦�佸井淇″叕浼楀彿閫氱煡 - 鐢宠鎻愪氦鎴愬姛寰呭鏍� + if(StringUtils.isNotBlank(visits.getOpenid())){ + WxPlatNotice wxPlatNotice = new WxPlatNotice(); + wxPlatNotice.sendVisitTemplateNotice(systemDictDataBiz, + wxNoticeConfigMapper,visits, + Constants.equalsInteger(visits.getType(),Constants.TWO)?WxPlatConstants.visitReportContent.visitReportUpload:WxPlatConstants.visitContent.visitUpload, + systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), + Arrays.asList(visits.getOpenid().split(",")) + ); + } //鍒涘缓瀹℃壒璁板綍 createApprove(visits,visitMember); @@ -319,6 +330,19 @@ //鍒濆鍖栬瀹俊鎭� // initVisitInfo(visits,date); visitsMapper.insert(visits); + if(Objects.nonNull(visits.getLoginUserInfo())){ + SystemUser systemUser = systemUserMapper.selectById(visits.getLoginUserInfo().getId()); + if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){ + WxPlatNotice wxPlatNotice = new WxPlatNotice(); + wxPlatNotice.sendVisitTemplateNotice(systemDictDataBiz, + wxNoticeConfigMapper,visits, + Constants.equalsInteger(visits.getType(),Constants.TWO)?WxPlatConstants.visitReportContent.visitReportUpload:WxPlatConstants.visitContent.visitUpload, + systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), + Arrays.asList(systemUser.getOpenid().split(",")) + ); + } + } + approveService.createApproveFlow(visits.getType(),visits.getId(),visits.getReceptMemberId()); return visits.getId(); } @@ -1195,6 +1219,22 @@ result.setBusinessStatus(result.getStatus()); } + + Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda() + .eq(Notices::getObjId,id) + .eq(Notices::getType,Constants.equalsInteger(result.getType(),Constants.TWO)?Constants.noticesObjectType.visitReporting:Constants.noticesObjectType.visit) + .eq(Notices::getUserId,memberId) + .eq(Notices::getSendacopy,Constants.ZERO) + .orderByDesc(Notices::getId).last(" limit 1 ")); + if(Objects.nonNull(notices)){ + if(Constants.equalsInteger(notices.getStatus(),Constants.ZERO)){ + result.setInfo("寰呮垜澶勭悊"); + }else{ + result.setInfo(notices.getInfo()); + } + } + + return result; } @@ -1248,6 +1288,23 @@ queryWrapper.isNull(Visits::getParentId); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getMemberId()),Visits::getMemberId,pageWrap.getModel().getMemberId()); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getReceptMemberId()),Visits::getReceptMemberId,pageWrap.getModel().getReceptMemberId()); + + if(Objects.nonNull(pageWrap.getModel().getBusinessStatus())){ + if(Constants.equalsInteger(pageWrap.getModel().getBusinessStatus(),Constants.TWO)){ + queryWrapper.in(Visits::getStatus, + Constants.VisitStatus.xfSuccess, + Constants.VisitStatus.xfFail, + Constants.VisitStatus.signin, + Constants.VisitStatus.signout, + Constants.VisitStatus.invalid, + Constants.VisitStatus.pass + ); + }else{ + queryWrapper.eq(Visits::getStatus,pageWrap.getModel().getBusinessStatus()); + } + + } + queryWrapper.orderByDesc(Visits::getCreateDate); IPage<Visits> result = visitsJoinMapper.selectJoinPage(page, Visits.class,queryWrapper); @@ -1380,6 +1437,21 @@ memberId) ); // } + + Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda() + .eq(Notices::getObjId,id) + .eq(Notices::getType,Constants.equalsInteger(visits.getType(),Constants.TWO)?Constants.noticesObjectType.visitReporting:Constants.noticesObjectType.visit) + .eq(Notices::getUserId,memberId) + .eq(Notices::getSendacopy,Constants.ZERO) + .orderByDesc(Notices::getId).last(" limit 1 ")); + if(Objects.nonNull(notices)){ + if(Constants.equalsInteger(notices.getStatus(),Constants.ZERO)){ + visitDetailVO.setInfo("寰呮垜澶勭悊"); + }else{ + visitDetailVO.setInfo(notices.getInfo()); + } + } + return visitDetailVO; } @@ -1486,11 +1558,6 @@ if(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.xfSuccess)){ //濡傛灉涓嬪彂鎴愬姛锛� visitsMapper.updateById(visits); - if(Objects.isNull(visits.getParentId())){ - wxPlatNotice.sendVisitAuditTemplateNotice(visits, - systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(), - systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode()); - } }else{ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"閲嶆柊涓嬪彂浼氬け璐ワ紒"); } @@ -1515,6 +1582,7 @@ dto.setPassword(resetPasswordDTO.getPassword()); dto.setId(systemUser.getId()); dto.setOperaUserId(systemUser.getId()); + dto.setNeedChangePwd(Constants.ONE); systemUserBiz.resetPwd(dto); } @@ -1551,7 +1619,8 @@ //鍦ㄥ洯闀挎湡鐩稿叧鏂逛汉鏁� pcWorkPlatformDataVO.setInParkLwUserNum( - retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.TWO) && Constants.equalsInteger(i.getCompanyType(),Constants.ZERO)).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); @@ -1648,6 +1717,7 @@ List<Integer> companyIds = companyList.stream().map(i->i.getId()).collect(Collectors.toList()); List<Retention> retentionList = retentionMapper.selectList( new QueryWrapper<Retention>().lambda() + .eq(Retention::getType,Constants.TWO) .in(Retention::getCompanyId,companyIds) ); for (Company company:companyList) { @@ -1731,6 +1801,8 @@ .eq(Visits::getSendTimeOutNotice,Constants.ZERO) .apply(" now() >= DATE_ADD(ENDTIME,INTERVAL -"+times+" MINUTE) ") ); + Integer visitTimeCount = 0; + Integer visitReportTimeCount = 0; for (Visits visits:visitsList) { if(Constants.equalsInteger(visits.getType(),Constants.TWO)){ SmsEmailServiceImpl.sendVisitReportSms(systemDictDataBiz, @@ -1738,17 +1810,40 @@ SmsConstants.visitReportingContent.visitReportingTimeOutSignOut, null,Arrays.asList(visits.getPhone().split(",")) ); + visitReportTimeCount = visitReportTimeCount + 1; }else{ SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz, emayService,smsEmailMapper,smsConfigMapper,visitsMapper,visits.getId(), SmsConstants.visitContent.visitTimeOutSignOut, null,Arrays.asList(visits.getPhone().split(",")) ); + visitTimeCount = visitTimeCount + 1 ; } visits.setSendTimeOutNotice(Constants.ONE); visitsMapper.updateById(visits); } + + if(visitTimeCount > 0 ){ + String mobile = systemDictDataBiz.queryByCode(Constants.VISIT_CONFIG,Constants.VISIT_TIME_OUT_MOBILE).getCode(); + if(StringUtils.isNotBlank(mobile)){ + SmsEmailServiceImpl.sendVisitTimeOutSms(systemDictDataBiz, + emayService,smsEmailMapper,smsConfigMapper, + SmsConstants.visitContent.visitTimeOutSignOutNum, + visitTimeCount.toString(),Arrays.asList(mobile.split(",")) + ); + } + } + if(visitReportTimeCount > 0 ){ + String mobile = systemDictDataBiz.queryByCode(Constants.VISIT_CONFIG,Constants.VISIT_REPORT_TIME_OUT_MOBILE).getCode(); + if(StringUtils.isNotBlank(mobile)){ + SmsEmailServiceImpl.sendVisitReportTimeOutSms(systemDictDataBiz, + emayService,smsEmailMapper,smsConfigMapper, + SmsConstants.visitReportingContent.visitReportingTimeOutSignOutNum, + visitReportTimeCount.toString(),Arrays.asList(mobile.split(",")) + ); + } + } -- Gitblit v1.9.3