xiangpei
2024-08-29 3e9a6da99aae968123ee7bca352fc08becd7f1f2
ycl-server/src/main/java/com/ycl/calculate/FaceDeviceSampleCalculation.java
@@ -7,6 +7,7 @@
import com.ycl.platform.mapper.TMonitorMapper;
import com.ycl.platform.service.ICheckIndexFaceService;
import constant.ApiConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
@@ -27,6 +28,7 @@
 * 更新或新增
 */
@Component
@Slf4j
public class FaceDeviceSampleCalculation extends IndexCalculationServe implements CalculationStrategy<FaceDeviceSamplingResult> {
    @Autowired
    private CheckIndexFaceMapper checkIndexFaceMapper;
@@ -47,6 +49,7 @@
    @Override
    public void calculate(List<FaceDeviceSamplingResult> list) {
        if (CollectionUtils.isEmpty(list)) {
            log.info("数据为空");
            return;
        }
        //返回以国标码为key的设备map
@@ -90,15 +93,19 @@
        //返回对象的引用,如果不存在会放入新的key,value
        AreaStats stats = areaStatsMap.computeIfAbsent(key, k -> new AreaStats());
        FaceDeviceSamplingResult.BigUsefulness bigUseful = result.getBigUseful();
        FaceDeviceSamplingResult.FaceEligibility faceElig = result.getFaceElig();
        FaceDeviceSamplingResult.FaceEligibility faceElig = result.getFaceEligibility();
        stats.totalSites++;
        //90%及以上数据合格则此人脸设备被视为图片合格
        if (faceElig.getFaceEligPercent() >= 0.9) {
            stats.picQualifySites++;
        if (faceElig != null) {
            if (faceElig.getFaceEligPercent() >= 0.9) {
                stats.picQualifySites++;
            }
        }
        //大图可用率大于90%视为合格
        if (bigUseful.getBigUsefulPercent() >= 0.9) {
            stats.picUsabilitySites++;
        if (bigUseful != null) {
            if (bigUseful.getBigUsefulPercent() >= 0.9) {
                stats.picUsabilitySites++;
            }
        }
    }