spring+date+jpa springboot 按日期模糊查询统计

1.接口传入参数:{"startDate":"2021-11"} 

2.数据库日期:2021-12-02 15:46:00

3.实体类属性:

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "discover_time")
    @Temporal(TemporalType.TIMESTAMP)
    private Date discoverTime; 

4.接口:

    @ResponseBody
    @RequestMapping("/task/question") 
    public JSONObject selectQuestionCount(@RequestBody Map map) throws IOException { 
        JSONObject result = new JSONObject();
        if(login==0){
        result.put("code", 2);
        result.put("message", "登录已过期,请重新登录。");
        result.put("result", null);
        return result;
        }
        String msg = "error";//返回信息
        int code = 1;  
        try {  
        Long groupId=Long.parseLong(map.get("groupId")+"");
        String startDate=map.get("startDate")+"-01 00:00:000";
        String endDate=map.get("endDate")+"";
        Calendar calendar = Calendar.getInstance();  
        calendar.setTime(DateUtils.parseDate(startDate, new String[]{"yyyy-MM-dd HH:mm:ss"})); 
        calendar.add(Calendar.MONTH, 1);
        Map searchParams = new HashMap();   
        searchParams.put("GED_discoverTime",startDate);
        searchParams.put("LTD_discoverTime", DateUtils.formatDate(calendar.getTime(), "yyyy-MM-dd HH:mm:ss")  );
        List filter = PropertyFilters.get(searchParams, true); 
        List list=questionRepository.findAll(filter); 
        int patrolCount=0;
        int faultPatrol=0;
        int nightPatrol=0;  
        int baoElectric=0; 
        int detectionTask=0;     
        for(Question question:list){
            if("".equals(question.getTaskProcess())||question.getTaskProcess()==null){
                detectionTask++;
            }else{
                if(question.getTaskProcess().getTask().getCategory().equals(1)){
                    patrolCount++;
                }else if(question.getTaskProcess().getTask().getCategory().equals(2)){
                    faultPatrol++;
                }else if(question.getTaskProcess().getTask().getCategory().equals(3)){
                    nightPatrol++;
                }else if(question.getTaskProcess().getTask().getCategory().equals(4)){
                    baoElectric++;
                } 
            }
        } 
        map.put("patrolCount", patrolCount);
        map.put("faultPatrol", faultPatrol);
        map.put("nightPatrol", nightPatrol);
        map.put("baoElectric", baoElectric);
        map.put("detectionTask", detectionTask); 
        msg = "success"; 
        code = 0;
        } catch (Exception e) {
        e.printStackTrace();
        }
        result.put("code", code);
        result.put("message", msg);
        result.put("result", map);
        return result;
    }   

你可能感兴趣的:(JAVA,spring,spring,boot,后端,java)