瀏覽代碼

优化识别

suntianwu 3 年之前
父節點
當前提交
262713e85b

+ 4 - 1
src/main/java/com/iden/bms/controller/CameraController.java

@@ -13,6 +13,7 @@ import com.iden.common.util.WebPageUtils;
 import com.iden.common.vo.CameraVO;
 import com.iden.common.vo.PageReqVO;
 import com.iden.common.vo.UserLoginedConvertVO;
+import io.micrometer.core.instrument.util.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -111,7 +112,9 @@ public class CameraController {
     public Result<Object> addCamera(HttpServletRequest request,@RequestHeader("token") String token,
                                    @RequestBody CameraVO vo){
         try {
-
+            if(StringUtils.isEmpty(vo.getType())){
+                return Result.error("类型不能为空!");
+            }
             UserLoginedConvertVO loginUser = WebPageUtils.getCurrentLoginedUser(request);
             int flag = this.cameraService.createCamera(vo,loginUser);
             if (flag == 1) {

+ 35 - 19
src/main/java/com/iden/bms/service/WarningService.java

@@ -256,6 +256,18 @@ public class WarningService {
                     strangerType = StrangerTypeEnum.NO_REGISTER.getValue();
                 }
                 if(isWarning) {
+
+                    QueryWrapper<IdenWarningEvent> idenWarningEventQueryWrapper = new QueryWrapper<>();
+                    idenWarningEventQueryWrapper.lambda()
+                            .eq(IdenWarningEvent::getCommunityId,communityId)
+                            .eq(IdenWarningEvent::getUid,idenPersonStranger.getUid())
+                            .eq(IdenWarningEvent::getType,WarningTypeEnum.STRANGER.getValue());
+                    idenWarningEventQueryWrapper.apply("date_format(iden_warning_event.create_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')");
+
+                   if(this.idenWarningEventService.count(idenWarningEventQueryWrapper) > 0) { //今天数据已经处理过了
+                       continue;
+                   }
+
                     //查询是不是已经有预警人员数据了
                     QueryWrapper<IdenWarningPerson> queryWrapper0 = new QueryWrapper<>();
                     queryWrapper0.lambda()
@@ -265,12 +277,6 @@ public class WarningService {
                     IdenWarningPerson idenWarningPerson = this.idenWarningPersonService.getOne(queryWrapper0);
 
                     if (idenWarningPerson != null) {
-                        //判断今天数据是不是处理过了
-                        String today = DateUtils.getCurrYyyyMMddDate();
-                        String modifyTime = DateUtils.formatToDateStr(idenWarningPerson.getModifyTime(),"yyyyMMdd");
-                        if(today.equals(modifyTime)) {
-                            continue;
-                        }
 
                         idenWarningPerson.setAppearFrequency(strangerDayFrequency);
                         idenWarningPerson.setStrangerType(strangerType);
@@ -387,6 +393,18 @@ public class WarningService {
             int continueDisappearDays = DateUtils.getDaysGap(idenFaceImage.getPhotographTime(), new Date()) - 1;
             //超过7天没出现, 满足预警
             if ( continueDisappearDays > continueDisappearDaysRule ) {
+
+                QueryWrapper<IdenWarningEvent> idenWarningEventQueryWrapper = new QueryWrapper<>();
+                idenWarningEventQueryWrapper.lambda()
+                        .eq(IdenWarningEvent::getCommunityId,idenPerson.getCommunityId())
+                        .eq(IdenWarningEvent::getUid,idenPerson.getUid())
+                        .eq(IdenWarningEvent::getType,WarningTypeEnum.RESIDENT.getValue());
+                idenWarningEventQueryWrapper.apply("date_format(iden_warning_event.create_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')");
+
+                if(this.idenWarningEventService.count(idenWarningEventQueryWrapper) > 0) { //今天数据已经处理过了
+                    continue;
+                }
+
                 //查询是不是已经有预警人员数据了
                 QueryWrapper<IdenWarningPerson> queryWrapper0 = new QueryWrapper<>();
                 queryWrapper0.lambda()
@@ -396,13 +414,6 @@ public class WarningService {
                 IdenWarningPerson idenWarningPerson = this.idenWarningPersonService.getOne(queryWrapper0);
 
                 if (idenWarningPerson != null) {
-                    //判断今天数据是不是处理过了
-                    String today = DateUtils.getCurrYyyyMMddDate();
-                    String modifyTime = DateUtils.formatToDateStr(idenWarningPerson.getModifyTime(),"yyyyMMdd");
-                    if(today.equals(modifyTime)) {
-                        continue;
-                    }
-
                     idenWarningPerson.setContinueDisappearDays(continueDisappearDays);
                     idenWarningPerson.setModifyTime(new Date());
                     idenWarningPerson.setHandleStatus(HandleWarningStatusEnum.NO_HANDLE.getValue());
@@ -564,6 +575,17 @@ public class WarningService {
         }
         if (count >= continueDays) { //连续超过7天,满足预警
 
+            QueryWrapper<IdenWarningEvent> idenWarningEventQueryWrapper = new QueryWrapper<>();
+            idenWarningEventQueryWrapper.lambda()
+                    .eq(IdenWarningEvent::getCommunityId,communityId)
+                    .eq(IdenWarningEvent::getUid,uid)
+                    .eq(IdenWarningEvent::getType,WarningTypeEnum.EVENING_COMMING.getValue());
+            idenWarningEventQueryWrapper.apply("date_format(iden_warning_event.create_time,'%Y-%m-%d') = date_format(now(),'%Y-%m-%d')");
+
+            if(this.idenWarningEventService.count(idenWarningEventQueryWrapper) > 0) { //今天数据已经处理过了
+                return;
+            }
+
             //查询是不是已经有预警人员数据了
             QueryWrapper<IdenWarningPerson> queryWrapper0 = new QueryWrapper<>();
             queryWrapper0.lambda()
@@ -572,12 +594,6 @@ public class WarningService {
                     .eq(IdenWarningPerson::getType,WarningTypeEnum.EVENING_COMMING.getValue());
             IdenWarningPerson idenWarningPerson = this.idenWarningPersonService.getOne(queryWrapper0);
             if (idenWarningPerson != null) {
-                //判断今天数据是不是处理过了
-                String today = DateUtils.getCurrYyyyMMddDate();
-                String modifyTime = DateUtils.formatToDateStr(idenWarningPerson.getModifyTime(),"yyyyMMdd");
-                if(today.equals(modifyTime)) {
-                    return;
-                }
 
                 idenWarningPerson.setAppearFrequency(count);
                 idenWarningPerson.setHandleStatus(HandleWarningStatusEnum.NO_HANDLE.getValue());