zhanghua
2023-05-30 f186f661e0ef88ad43c20c272621e8c7506e7b82
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package com.ycl.service.unlawful.impl;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.dto.statistics.CategoryDto;
import com.ycl.dto.statistics.StatusDto;
import com.ycl.dto.statistics.TimeDto;
import com.ycl.dto.statistics.UnlawfulDto;
import com.ycl.mapper.unlawful.UnlawfulMapper;
import com.ycl.service.unlawful.UnlawfulService;
import com.ycl.utils.StringUtils;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.math.RoundingMode;
import java.text.NumberFormat;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
 
@Service
public class UnlawfulServiceImpl implements UnlawfulService {
 
    @Resource
    private UnlawfulMapper unlawfuldao;
 
 
    /**
     * 按类型
     */
    @Override
    public IPage<UnlawfulDto> getUnlawfulByType(Integer currentPage, Integer pageSize, String startTime, String endTime) {
        Page<UnlawfulDto> page = new Page<>(currentPage, pageSize);
 
        Double total = unlawfuldao.getTotal(startTime, endTime, true, false, false).doubleValue();
        IPage<UnlawfulDto> page1 = unlawfuldao.getDataByType(page, startTime, endTime);
        return getUnlawfulDtoIPage(total, page1);
    }
 
    private IPage<UnlawfulDto> getUnlawfulDtoIPage(Double total, IPage<UnlawfulDto> page1) {
        page1.getRecords().forEach(dto -> {
            dto.setRatio(StringUtils.doubleTwo((double) dto.getCount() * 100 / total) + "%");
            dto.setRegisterRatio(StringUtils.doubleTwo((double) dto.getRegister() * 100 / (double) dto.getCount()) + "%");
            dto.setCheckedRatio(StringUtils.doubleTwo((double) dto.getChecked() * 100 / (double) dto.getCount()) + "%");
            dto.setAccuracyRatio(StringUtils.doubleTwo(1.0 - (double) dto.getRelearn() * 100 / (double) dto.getCount()) + "%");
 
        });
        return page1;
    }
 
    /**
     * 按区域
     */
    @Override
    public IPage<UnlawfulDto> getUnlawfulByStreet(Integer currentPage, Integer pageSize, String startTime, String endTime) {
        Page<UnlawfulDto> page = new Page<>(currentPage, pageSize);
 
        Double total = unlawfuldao.getTotal(startTime, endTime, false, true, false).doubleValue();
        IPage<UnlawfulDto> page1 = unlawfuldao.getDataByStreet(page, startTime, endTime);
        return getUnlawfulDtoIPage(total, page1);
    }
 
 
    @Override
    public IPage<UnlawfulDto> getUnlawfulByTime(Integer currentPage, Integer pageSize, String startTime, String endTime) {
        Page<UnlawfulDto> page = new Page<>(currentPage, pageSize);
 
        Double total = unlawfuldao.getTotal(startTime, endTime, false, false, false).doubleValue();
        IPage<UnlawfulDto> page1 = unlawfuldao.getDataByTime(page, startTime, endTime);
        return getUnlawfulDtoIPage(total, page1);
    }
 
 
    @Override
    public IPage<UnlawfulDto> getUnlawfulByPoint(Integer currentPage, Integer pageSize, String startTime, String endTime) {
 
        Page<UnlawfulDto> page = new Page<>(currentPage, pageSize);
 
        Double total = unlawfuldao.getTotal(startTime, endTime, false, false, true).doubleValue();
        IPage<UnlawfulDto> page1 = unlawfuldao.getDataByPoint(page, startTime, endTime);
        return getUnlawfulDtoIPage(total, page1);
 
    }
 
}