From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期三, 16 十月 2024 15:59:38 +0800 Subject: [PATCH] 代码初始化 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 146 +++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 131 insertions(+), 15 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 a0d43c7..3098750 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,9 +12,13 @@ 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; @@ -25,6 +29,7 @@ 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; @@ -55,13 +60,23 @@ 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; 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.stream.Collectors; @@ -115,7 +130,8 @@ private ApproveService approveService; @Autowired private NoticesJoinMapper noticesJoinMapper; - + @Autowired + private InoutDayCountMapper inoutDayCountMapper; @Override public Integer create(Visits visits) { @@ -229,6 +245,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瀹℃壒鐢宠 @@ -259,8 +295,6 @@ return visits.getId(); } - - @Override @@ -626,7 +660,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(), "瀵逛笉璧凤紝淇℃伅濉啓涓嶆纭紒"); } } @@ -1486,36 +1520,107 @@ .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(0L); - pcWorkPlatformDataVO.setTodayOutUserNum(0L); + + pcWorkPlatformDataVO.setTodayInUserNum(Constants.ZERO); + pcWorkPlatformDataVO.setTodayOutUserNum(Constants.ZERO); //鍦ㄥ洯闀挎湡鐩稿叧鏂逛汉鏁� 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(0L); - pcWorkPlatformDataVO.setLwUserOutNum(0L); + 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(0L); - pcWorkPlatformDataVO.setSignLevelNum(0L); + pcWorkPlatformDataVO.setVisitUserNum(Constants.ZERO); + pcWorkPlatformDataVO.setSignLevelNum(Constants.ZERO); + //鍦ㄥ洯杞﹁締 pcWorkPlatformDataVO.setTodayInParkCarNum( retentionList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.THREE)).count() ); - pcWorkPlatformDataVO.setTodayInCarNum(0L); - pcWorkPlatformDataVO.setTodayOutCarNum(0L); - + 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<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); @@ -1531,6 +1636,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<>(); @@ -1561,8 +1671,14 @@ } }); } - pcWorkPlatformDataVO.setTimeOutVisitList(result); pcWorkPlatformDataVO.setTimeOutVisitNum(result.size()); + if(result.size() > 3 ){ + pcWorkPlatformDataVO.setTimeOutVisitList(result.subList(0,3)); + }else{ + pcWorkPlatformDataVO.setTimeOutVisitList(result); + } + + } -- Gitblit v1.9.3