From 7cdea6d16a8b9f74800792ea412ad8b51c4df7f4 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 22 十月 2024 17:48:38 +0800 Subject: [PATCH] 最新版本541200007 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 121 +++++++++++++++++++++++++++++++++------- 1 files changed, 100 insertions(+), 21 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 355bb0b..6ed3d47 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,18 +12,19 @@ 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; @@ -54,6 +55,7 @@ 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; @@ -63,8 +65,18 @@ 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; /** @@ -119,6 +131,15 @@ 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) { @@ -232,6 +253,26 @@ 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瀹℃壒鐢宠 @@ -262,8 +303,6 @@ return visits.getId(); } - - @Override @@ -629,7 +668,7 @@ 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(), "瀵逛笉璧凤紝淇℃伅濉啓涓嶆纭紒"); } } @@ -1189,6 +1228,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); @@ -1506,7 +1557,7 @@ //鍦ㄥ洯闀挎湡鐩稿叧鏂逛汉鏁� 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); @@ -1569,17 +1620,6 @@ 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) @@ -1616,6 +1656,11 @@ 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<>(); @@ -1646,13 +1691,47 @@ } }); } - 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; } + + } -- Gitblit v1.9.3