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