k94314517
2024-10-16 17efddc6a667670dca682bf36b51a43e99615e6d
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;
@@ -63,7 +67,16 @@
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;
@@ -232,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审批申请
@@ -262,8 +295,6 @@
        return visits.getId();
    }
    @Override
@@ -629,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(), "对不起,信息填写不正确!");
            }
        }
@@ -1506,7 +1537,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 +1600,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 +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<>();
@@ -1646,8 +1671,14 @@
                    }
                });
            }
            pcWorkPlatformDataVO.setTimeOutVisitList(result);
            pcWorkPlatformDataVO.setTimeOutVisitNum(result.size());
            if(result.size() > 3 ){
                pcWorkPlatformDataVO.setTimeOutVisitList(result.subList(0,3));
            }else{
                pcWorkPlatformDataVO.setTimeOutVisitList(result);
            }
        }