Browse Source

首页接口下半部。

李天标 5 năm trước cách đây
mục cha
commit
a7983ed194

+ 460 - 0
app-api/src/main/java/com/hboxs/control/api/index/IndexController.java

@@ -0,0 +1,460 @@
+/*
+ *
+ *
+ *
+ */
+package com.hboxs.control.api.index;
+
+import com.hboxs.common.Filter;
+import com.hboxs.control.api.BaseController;
+import com.hboxs.dto.AlarmStatisticsDTO;
+import com.hboxs.dto.CleanStatisticsDTO;
+import com.hboxs.entity.Admin;
+import com.hboxs.entity.AlarmRecord;
+import com.hboxs.entity.CleanHistory;
+import com.hboxs.entity.Equipment;
+import com.hboxs.service.*;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * Controller
+ */
+@Controller("appindexIndexController")
+@RequestMapping("/api/app_index/index")
+public class IndexController extends BaseController {
+
+    @Resource(name = "adminServiceImpl")
+    private AdminService adminService;
+    @Resource(name = "roleServiceImpl")
+    private RoleService roleService;
+    @Resource(name = "globalConfigServiceImpl")
+    private GlobalConfigService globalConfigService;
+    @Resource(name = "equipmentServiceImpl")
+    private EquipmentService equipmentService;
+    @Resource(name = "cleanHistoryServiceImpl")
+    private CleanHistoryService cleanHistoryService;
+    @Resource(name = "alarmRecordServiceImpl")
+    private AlarmRecordService alarmRecordService;
+    /**
+     * 检查用户名是否存在
+     */
+    @RequestMapping(value = "/check_username", method = RequestMethod.GET)
+    public
+    @ResponseBody
+    boolean checkUsername(String username) {
+
+        if(adminService.getCurrent().getType()  == Admin.Type.merchant || adminService.getCurrent().getType()  == Admin.Type.personage ){
+            return false;
+        }
+
+
+
+        if (StringUtils.isEmpty(username)) {
+            return false;
+        }
+
+        List<Filter> fs = new ArrayList<>();
+
+        Admin.Type type = adminService.getCurrent().getType();
+        switch (type) {
+            case agency:
+                fs.add(Filter.eq("type", Admin.Type.agency));
+                fs.add(Filter.eq("agencyId", adminService.getCurrent().getAgencyId()));
+                break;
+            case merchant:
+                fs.add(Filter.eq("type", Admin.Type.merchant));
+                fs.add(Filter.eq("agencyId", adminService.getCurrent().getAgencyId()));
+                fs.add(Filter.isNotNull("merchantId"));
+                fs.add(Filter.eq("merchantId", adminService.getCurrent().getMerchantId()));
+                break;
+            case personage:
+                fs.add(Filter.eq("type", Admin.Type.personage));
+                fs.add(Filter.eq("personageId", adminService.getCurrent().getPersonageId()));
+                break;
+            case admin:
+                fs.add(Filter.eq("type", Admin.Type.admin));
+        }
+        fs.add(Filter.eq("username" , username));
+
+
+        List<Admin> as = adminService.findList(1, fs , null);
+        if(as!=null&&as.size()>0){
+            return false;
+        }
+        return true;
+    }
+    /**
+     *今日人流量
+     */
+    @RequestMapping(value = "/peopleCounting", method = RequestMethod.GET)
+    @ResponseBody
+    public Integer peopleCounting(ModelMap model , RedirectAttributes redirectAttributes) {
+        int number = 0;
+//        Admin admin = adminService.getCurrent();
+        Admin admin = adminService.find(2l);
+        List<Equipment> equipmentList = equipmentService.findByAdminId(admin.getId());
+        for(Equipment equipment:equipmentList){
+            //今日人流量
+            if(equipment.getPeopleCounting()!=null){
+                number+=equipment.getPeopleCounting();
+            }
+
+        }
+        model.addAttribute("peopleCounting", number);
+        return Integer.valueOf(number);
+    }
+    /**
+     *机器启动数量/机器总数量
+     */
+    @RequestMapping(value = "/equipmentNumber", method = RequestMethod.GET)
+    @ResponseBody
+    public Map<String,Integer> equipmentNumber(ModelMap model , RedirectAttributes redirectAttributes) {
+        Map<String,Integer> map = new HashMap<>();
+//        Admin admin = adminService.getCurrent();
+        Admin admin = adminService.find(2l);
+        List<Equipment> equipmentList = equipmentService.findByAdminId(admin.getId());
+        int on = 0;
+        for(Equipment equipment:equipmentList){
+            //开启的机器数量
+            if(equipment.getEqeStatus()==1){
+                on++;
+            }
+        }
+        map.put("totalNum",equipmentList.size());
+        map.put("openNum",on);
+        model.addAttribute("equipmentNumber", map);
+        return map;
+    }
+    /**
+     *今日定时清洗次数/随机清洗次数
+     */
+    @RequestMapping(value = "/cleanNumber", method = RequestMethod.GET)
+    @ResponseBody
+    public Map<String,Integer> cleanNumber(ModelMap model , RedirectAttributes redirectAttributes) {
+        Map<String,Integer> map = new HashMap<>();
+//        Admin admin = adminService.getCurrent();
+        Admin admin = adminService.find(2l);
+        List<Filter> fs = new ArrayList<>();
+        List<Filter> fs1 = new ArrayList<>();
+        String beginEndDate = null;
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
+        Date date = new Date();
+        String startToday = simpleDateFormat.format(date);
+        SimpleDateFormat _format = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
+        String endToday = _format.format(date);
+        beginEndDate = startToday + " - " + endToday;
+        Date begin = null;
+        Date end = null;
+        if (!StringUtils.isEmpty(beginEndDate)) {
+            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+            try {
+                begin = simpleDateFormat1.parse(beginEndDate.split(" - ")[0].trim());
+                end = simpleDateFormat1.parse(beginEndDate.split(" - ")[1].trim());
+            } catch (ParseException e) {
+                e.printStackTrace();
+            }
+        }
+        fs.add(Filter.eq("type", 0));
+        fs.add(Filter.eq("adminId", admin.getId()));
+        fs.add(Filter.geDate("createDate", begin));
+        fs.add(Filter.leDate("createDate", end));
+        List<CleanHistory> list1 = cleanHistoryService.findList(10000, fs, null);
+        fs1.add(Filter.eq("type", 1));
+        fs1.add(Filter.eq("adminId", admin.getId()));
+        fs1.add(Filter.geDate("createDate", begin));
+        fs1.add(Filter.leDate("createDate", end));
+        List<CleanHistory> list2 = cleanHistoryService.findList(10000, fs1, null);
+        int random = 0;
+        if(list2!=null){
+            random+=list2.size();
+        }
+        int regular = 0;
+        if(list1!=null){
+            regular+=list1.size();
+        }
+        map.put("random",random);
+        map.put("regular",regular);
+        return map;
+    }
+    /**
+     *机器的状态,温度,湿度,清洗剂的剩余用量
+     */
+    @RequestMapping(value = "/equipmentStatus", method = RequestMethod.GET)
+    @ResponseBody
+    public List<Equipment> equipmentStatus(ModelMap model , RedirectAttributes redirectAttributes) {
+        List<Equipment> equipmentList = new ArrayList<>();
+        Admin admin = adminService.find(2l);
+//        Admin admin = adminService.getCurrent();
+        equipmentList = equipmentService.findByAdminId(admin.getId());
+        model.addAttribute("equipmentList", equipmentList);
+        return equipmentList;
+    }
+    /**
+     *机器今日的报警记录
+     */
+    @RequestMapping(value = "/alarmRecordList", method = RequestMethod.GET)
+    @ResponseBody
+    public List<AlarmRecord> alarmRecordList(ModelMap model , RedirectAttributes redirectAttributes) {
+        List<AlarmRecord> alarmRecordList = new ArrayList<>();
+//        Admin admin = adminService.getCurrent();
+        Admin admin = adminService.find(2l);
+        List<Filter> fs = new ArrayList<>();
+        String beginEndDate = null;
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
+        Date date = new Date();
+        String startToday = simpleDateFormat.format(date);
+        SimpleDateFormat _format = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
+        String endToday = _format.format(date);
+        beginEndDate = startToday + " - " + endToday;
+        Date begin = null;
+        Date end = null;
+        if (!StringUtils.isEmpty(beginEndDate)) {
+            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+            try {
+                begin = simpleDateFormat1.parse(beginEndDate.split(" - ")[0].trim());
+                end = simpleDateFormat1.parse(beginEndDate.split(" - ")[1].trim());
+            } catch (ParseException e) {
+                e.printStackTrace();
+            }
+        }
+        fs.add(Filter.eq("adminId", admin.getId()));
+        fs.add(Filter.geDate("createDate", begin));
+        fs.add(Filter.leDate("createDate", end));
+        alarmRecordList = alarmRecordService.findList(999, fs, null);
+        return alarmRecordList;
+    }
+
+    /**
+     *机器全年的使用统计
+     */
+    @RequestMapping(value = "/allCleanNumber", method = RequestMethod.GET)
+    @ResponseBody
+    public List<CleanStatisticsDTO> allCleanNumber(ModelMap model , RedirectAttributes redirectAttributes) {
+        List<CleanStatisticsDTO> list = new ArrayList<>();
+//        Admin admin = adminService.getCurrent();
+        Admin admin = adminService.find(2l);
+        list = cleanHistoryService.findByTime(admin.getId());
+        return list;
+    }
+
+    /**
+     *机器消耗的资源
+     */
+    @RequestMapping(value = "/consumedResources", method = RequestMethod.GET)
+    @ResponseBody
+    public Map<String,Integer> consumedResources(String time,ModelMap model , RedirectAttributes redirectAttributes) {
+        Map<String,Integer> map = new HashMap<>();
+//        Admin admin = adminService.getCurrent();
+        Admin admin = adminService.find(2l);
+        List<Filter> fs = new ArrayList<>();
+        fs.add(Filter.eq("adminId", admin.getId()));
+        int electricity = 0;
+        int water = 0;
+        if(time.equals("All")){
+            List<CleanHistory> cleanHistoryList =  cleanHistoryService.findList(99999,fs,null);
+            for(CleanHistory cleanHistory:cleanHistoryList){
+                if(cleanHistory.getElectricity()!=null){
+                    electricity+=cleanHistory.getElectricity();
+                }
+                if(cleanHistory.getWater()!=null){
+                    water+=cleanHistory.getWater();
+                }
+            }
+        }else if(time.length()==4){
+            Date begin = null;
+            Date end = null;
+            begin = beginY(time);
+            end = endY(time);
+            fs.add(Filter.geDate("createDate", begin));
+            fs.add(Filter.leDate("createDate", end));
+            List<CleanHistory> list = cleanHistoryService.findList(99999, fs, null);
+            for(CleanHistory cleanHistory:list){
+                if(cleanHistory.getElectricity()!=null){
+                    electricity+=cleanHistory.getElectricity();
+                }
+                if(cleanHistory.getWater()!=null){
+                    water+=cleanHistory.getWater();
+                }
+            }
+        }else {
+            Date begin = null;
+            Date end = null;
+            begin = beginM(time);
+            end = endM(time);
+            fs.add(Filter.geDate("createDate", begin));
+            fs.add(Filter.leDate("createDate", end));
+            List<CleanHistory> list = cleanHistoryService.findList(99999, fs, null);
+            for(CleanHistory cleanHistory:list){
+                if(cleanHistory.getElectricity()!=null){
+                    electricity+=cleanHistory.getElectricity();
+                }
+                if(cleanHistory.getWater()!=null){
+                    water+=cleanHistory.getWater();
+                }
+            }
+        }
+        map.put("electricity",electricity);
+        map.put("water",water);
+        return map;
+    }
+    /**
+     *报警的类型统计
+     */
+    @RequestMapping(value = "/alarmRecordType", method = RequestMethod.GET)
+    @ResponseBody
+    public List<AlarmStatisticsDTO> alarmRecordType(String time, ModelMap model , RedirectAttributes redirectAttributes) {
+        List<AlarmStatisticsDTO> list = new ArrayList<>();
+//        Admin admin = adminService.getCurrent();
+        Admin admin = adminService.find(2l);
+        List<Filter> fs = new ArrayList<>();
+        fs.add(Filter.eq("adminId", admin.getId()));
+        Date begin = null;
+        Date end = null;
+        if(time.equals("All")){
+
+        }else if(time.length()==4){
+            begin = beginY(time);
+            end = endY(time);
+        } else {
+            begin = beginM(time);
+            end = endM(time);
+        }
+        list = alarmRecordService.findByType(admin.getId(),begin,end);
+        return list;
+    }
+    /**
+     *机器故障排行
+     */
+    @RequestMapping(value = "/alarmRecordLine", method = RequestMethod.GET)
+    @ResponseBody
+    public List<AlarmStatisticsDTO> alarmRecordLine(String time, ModelMap model , RedirectAttributes redirectAttributes) {
+        List<AlarmStatisticsDTO> list = new ArrayList<>();
+        Admin admin = adminService.find(2l);
+        List<Filter> fs = new ArrayList<>();
+        Date begin = null;
+        Date end = null;
+        if(time.equals("All")){
+
+        }else if(time.length()==4){
+            begin = beginY(time);
+            end = endY(time);
+        } else {
+            begin = beginM(time);
+            end = endM(time);
+        }
+        list = alarmRecordService.findLine(admin.getId(),begin,end);
+        return list;
+    }
+    /**
+     *机器清洗排行
+     */
+    @RequestMapping(value = "/cleanLine", method = RequestMethod.GET)
+    @ResponseBody
+    public List<AlarmStatisticsDTO> cleanLine(String time, ModelMap model , RedirectAttributes redirectAttributes) {
+        List<AlarmStatisticsDTO> list = new ArrayList<>();
+        Admin admin = adminService.find(2l);
+//        Admin admin = adminService.getCurrent();
+        List<Filter> fs = new ArrayList<>();
+        Date begin = null;
+        Date end = null;
+        if(time.equals("All")){
+
+        }else if(time.length()==4){
+            begin = beginY(time);
+            end = endY(time);
+        } else {
+            begin = beginM(time);
+            end = endM(time);
+        }
+        list = cleanHistoryService.findLine(admin.getId(),begin,end);
+        model.addAttribute("alarmRecordLine", list);
+        return list;
+    }
+    private Date beginY(String time) {
+        Date dater = null;
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy");
+        Date date = null;
+        try {
+            date = simpleDateFormat.parse(time);
+            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String startToday = simpleDateFormat1.format(date);
+            dater = simpleDateFormat1.parse(startToday);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return dater;
+    }
+    private Date endY(String time) {
+        Date dater = null;
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy");
+        Date date = null;
+        try {
+            date = simpleDateFormat.parse(time);
+            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-12-31 23:59:59");
+            String startToday = simpleDateFormat1.format(date);
+            SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            dater = simpleDateFormat2.parse(startToday);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return dater;
+    }
+
+    private Date beginM(String time) {
+        Date dater = null;
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
+        Date date = null;
+        try {
+            date = simpleDateFormat.parse(time);
+            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String startToday = simpleDateFormat1.format(date);
+            dater = simpleDateFormat1.parse(startToday);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return dater;
+    }
+    private Date endM(String time) {
+        String[] split = time.split("-");
+        int year = Integer.parseInt(split[0]);
+        int month = Integer.parseInt(split[1]);
+        Calendar cal = Calendar.getInstance();
+        //设置年份
+        cal.set(Calendar.YEAR,year);
+        //设置月份
+        cal.set(Calendar.MONTH, month-1);
+        //获取某月最大天数
+        int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        //设置日历中月份的最大天数
+        cal.set(Calendar.DAY_OF_MONTH, lastDay);
+        //格式化日期
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String lastDayOfMonth = sdf.format(cal.getTime());
+        Date dater = null;
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        Date date = null;
+        try {
+            date = simpleDateFormat.parse(lastDayOfMonth);
+            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
+            String startToday = simpleDateFormat1.format(date);
+            SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            dater = simpleDateFormat2.parse(startToday);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return dater;
+    }
+}

+ 85 - 2
app-backend-web/src/main/java/com/hboxs/control/admin/IndexController.java

@@ -8,6 +8,8 @@ package com.hboxs.control.admin;
 import com.hboxs.common.Filter;
 import com.hboxs.common.Message;
 import com.hboxs.common.Pageable;
+import com.hboxs.dto.AlarmStatisticsDTO;
+import com.hboxs.dto.CleanStatisticsDTO;
 import com.hboxs.entity.*;
 import com.hboxs.entity.BaseEntity.Save;
 import com.hboxs.service.*;
@@ -227,9 +229,21 @@ public class IndexController extends BaseController {
         alarmRecordList = alarmRecordService.findList(999, fs, null);
         return alarmRecordList;
     }
+    /**
+     *机器全年的使用统计
+     */
+    @RequestMapping(value = "/allCleanNumber", method = RequestMethod.GET)
+    @ResponseBody
+    public List<CleanStatisticsDTO> allCleanNumber(ModelMap model , RedirectAttributes redirectAttributes) {
+        List<CleanStatisticsDTO> list = new ArrayList<>();
+        Admin admin = adminService.getCurrent();
+        list = cleanHistoryService.findByTime(admin.getId());
+        model.addAttribute("allCleanNumber", list);
+        return list;
+    }
 
     /**
-     *机器消耗的资源
+     *机器消耗的资源,水电
      */
     @RequestMapping(value = "/consumedResources", method = RequestMethod.GET)
     public Map<String,Integer> consumedResources(String time,ModelMap model , RedirectAttributes redirectAttributes) {
@@ -240,7 +254,7 @@ public class IndexController extends BaseController {
         int electricity = 0;
         int water = 0;
         if(time.equals("All")){
-            List<CleanHistory> cleanHistoryList = cleanHistoryService.findAll();
+            List<CleanHistory> cleanHistoryList = cleanHistoryService.findList(99999,fs,null);
             for(CleanHistory cleanHistory:cleanHistoryList){
                 if(cleanHistory.getElectricity()!=null){
                     electricity+=cleanHistory.getElectricity();
@@ -284,9 +298,78 @@ public class IndexController extends BaseController {
         }
         map.put("electricity",electricity);
         map.put("water",water);
+        model.addAttribute("consumedResources", map);
         return map;
     }
+    /**
+     *报警的类型统计,问题占比
+     */
+    @RequestMapping(value = "/alarmRecordType", method = RequestMethod.GET)
+    public List<AlarmStatisticsDTO> alarmRecordType(String time, ModelMap model , RedirectAttributes redirectAttributes) {
+        List<AlarmStatisticsDTO> list = new ArrayList<>();
+        Admin admin = adminService.getCurrent();
+        List<Filter> fs = new ArrayList<>();
+        Date begin = null;
+        Date end = null;
+        if(time.equals("All")){
 
+        }else if(time.length()==4){
+            begin = beginY(time);
+            end = endY(time);
+        } else {
+            begin = beginM(time);
+            end = endM(time);
+        }
+        list = alarmRecordService.findByType(admin.getId(),begin,end);
+        model.addAttribute("alarmRecordType", list);
+        return list;
+    }
+    /**
+     *机器故障排行
+     */
+    @RequestMapping(value = "/alarmRecordLine", method = RequestMethod.GET)
+    public List<AlarmStatisticsDTO> alarmRecordLine(String time, ModelMap model , RedirectAttributes redirectAttributes) {
+        List<AlarmStatisticsDTO> list = new ArrayList<>();
+        Admin admin = adminService.getCurrent();
+        List<Filter> fs = new ArrayList<>();
+        Date begin = null;
+        Date end = null;
+        if(time.equals("All")){
+
+        }else if(time.length()==4){
+            begin = beginY(time);
+            end = endY(time);
+        } else {
+            begin = beginM(time);
+            end = endM(time);
+        }
+        list = alarmRecordService.findLine(admin.getId(),begin,end);
+        model.addAttribute("alarmRecordLine", list);
+        return list;
+    }
+    /**
+     *机器清洗排行
+     */
+    @RequestMapping(value = "/cleanLine", method = RequestMethod.GET)
+    public List<AlarmStatisticsDTO> cleanLine(String time, ModelMap model , RedirectAttributes redirectAttributes) {
+        List<AlarmStatisticsDTO> list = new ArrayList<>();
+        Admin admin = adminService.getCurrent();
+        List<Filter> fs = new ArrayList<>();
+        Date begin = null;
+        Date end = null;
+        if(time.equals("All")){
+
+        }else if(time.length()==4){
+            begin = beginY(time);
+            end = endY(time);
+        } else {
+            begin = beginM(time);
+            end = endM(time);
+        }
+        list = cleanHistoryService.findLine(admin.getId(),begin,end);
+        model.addAttribute("cleanLine", list);
+        return list;
+    }
     private Date beginY(String time) {
         Date dater = null;
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy");

+ 7 - 0
app-dao/src/main/java/com/hboxs/dao/AlarmRecordDao.java

@@ -5,13 +5,20 @@
  */
 package com.hboxs.dao;
 
+import com.hboxs.dto.AlarmStatisticsDTO;
 import com.hboxs.entity.AlarmRecord;
 
+import java.util.Date;
+import java.util.List;
+
 /**
 * Dao - 报警记录
 */
 public interface AlarmRecordDao extends BaseDao<AlarmRecord, Long> {
 
+    List<AlarmStatisticsDTO> findByType(Long id, Date begin, Date end);
+
+    List<AlarmStatisticsDTO> findLine(Long id, Date begin, Date end);
 }
 
 

+ 11 - 0
app-dao/src/main/java/com/hboxs/dao/CleanHistoryDao.java

@@ -5,14 +5,25 @@
  */
 package com.hboxs.dao;
 
+import com.hboxs.dto.AlarmStatisticsDTO;
+import com.hboxs.dto.CleanStatisticsDTO;
 import com.hboxs.entity.AlarmRecord;
 import com.hboxs.entity.CleanHistory;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 /**
 * Dao - 报警记录
 */
 public interface CleanHistoryDao extends BaseDao<CleanHistory, Long> {
+    /**
+     *机器全年的使用统计
+     */
+    List<CleanStatisticsDTO> findByTime(Long adminiId);
 
+    List<AlarmStatisticsDTO> findLine(Long id, Date begin, Date end);
 }
 
 

+ 80 - 0
app-dao/src/main/java/com/hboxs/dao/impl/AlarmRecordDaoImpl.java

@@ -6,14 +6,94 @@
 package com.hboxs.dao.impl;
 
 import com.hboxs.dao.AlarmRecordDao;
+import com.hboxs.dto.AlarmStatisticsDTO;
+import com.hboxs.dto.CleanStatisticsDTO;
 import com.hboxs.entity.AlarmRecord;
+import org.hibernate.Query;
+import org.hibernate.transform.Transformers;
 import org.springframework.stereotype.Repository;
 
+import javax.persistence.FlushModeType;
+import javax.persistence.NoResultException;
+import java.util.Date;
+import java.util.List;
+
 /**
  * Dao - 报警记录
  */
 @Repository("alarmRecordDaoImpl")
 public class AlarmRecordDaoImpl extends BaseDaoImpl<AlarmRecord, Long> implements AlarmRecordDao {
 
+    @Override
+    public List<AlarmStatisticsDTO> findByType(Long adminId, Date begin, Date end) {
+        if (adminId == null) {
+            return null;
+        }
+        try {
+            if(begin!=null&&end!=null){
+                String jpql = "select alarmRecord.alarmContent AS title,count(*) AS totalNumber from AlarmRecord alarmRecord where alarmRecord.adminId = :adminId " +
+                        " and alarmRecord.createDate BETWEEN :begin " + " and :end" +
+                        " GROUP BY alarmRecord.alarmContent ";
+                List<AlarmStatisticsDTO> list = entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT)
+                        .setParameter("adminId", adminId)
+                        .setParameter("begin", begin)
+                        .setParameter("end", end)
+                        .unwrap(Query.class)
+                        .setResultTransformer(Transformers.aliasToBean(AlarmStatisticsDTO.class))
+                        .list();
+                return list;
+            }else{
+                String jpql = "select alarmRecord.alarmContent AS title,count(*) AS totalNumber from AlarmRecord alarmRecord where alarmRecord.adminId = :adminId " +
+                        " GROUP BY alarmRecord.alarmContent ";
+                List<AlarmStatisticsDTO> list = entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT)
+                        .setParameter("adminId", adminId)
+                        .unwrap(Query.class)
+                        .setResultTransformer(Transformers.aliasToBean(AlarmStatisticsDTO.class))
+                        .list();
+                return list;
+            }
+
+        } catch (NoResultException e) {
+            return null;
+        }
+    }
+
+    @Override
+    public List<AlarmStatisticsDTO> findLine(Long adminId, Date begin, Date end) {
+        if (adminId == null) {
+            return null;
+        }
+        try {
+            if(begin!=null&&end!=null){
+                String jpql = "select equipment.name as title,count(alarmRecord.id) as totalNumber from  AlarmRecord alarmRecord , " +
+                        " Equipment equipment where alarmRecord.equipmentId = equipment.id" +
+                        " and alarmRecord.adminId = :adminId " +
+                        " and alarmRecord.createDate BETWEEN :begin " + " and :end" +
+                        " GROUP BY equipment.name ORDER BY COUNT(alarmRecord.id) DESC";
+                List<AlarmStatisticsDTO> list = entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT)
+                        .setParameter("adminId", adminId)
+                        .setParameter("begin", begin)
+                        .setParameter("end", end)
+                        .unwrap(Query.class)
+                        .setResultTransformer(Transformers.aliasToBean(AlarmStatisticsDTO.class))
+                        .list();
+                return list;
+            }else{
+                String jpql =  "select equipment.name as title,count(alarmRecord.id) as totalNumber from  AlarmRecord alarmRecord , " +
+                        " Equipment equipment where alarmRecord.equipmentId = equipment.id" +
+                        " and alarmRecord.adminId = :adminId " +
+                        " GROUP BY equipment.name ORDER BY COUNT(alarmRecord.id) DESC";
+                List<AlarmStatisticsDTO> list = entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT)
+                        .setParameter("adminId", adminId)
+                        .unwrap(Query.class)
+                        .setResultTransformer(Transformers.aliasToBean(AlarmStatisticsDTO.class))
+                        .list();
+                return list;
+            }
+
+        } catch (NoResultException e) {
+            return null;
+        }
+    }
 }
 

+ 77 - 3
app-dao/src/main/java/com/hboxs/dao/impl/CleanHistoryDaoImpl.java

@@ -1,5 +1,5 @@
 /*
- * 
+ *
  *  AlarmRecordDaoImpl
  *
  */
@@ -7,15 +7,89 @@ package com.hboxs.dao.impl;
 
 import com.hboxs.dao.AlarmRecordDao;
 import com.hboxs.dao.CleanHistoryDao;
+import com.hboxs.dto.AdminStatisticsDTO;
+import com.hboxs.dto.AlarmStatisticsDTO;
+import com.hboxs.dto.CleanStatisticsDTO;
+import com.hboxs.entity.Admin;
 import com.hboxs.entity.AlarmRecord;
 import com.hboxs.entity.CleanHistory;
+import org.hibernate.Query;
+import org.hibernate.transform.Transformers;
 import org.springframework.stereotype.Repository;
 
+import javax.persistence.FlushModeType;
+import javax.persistence.NoResultException;
+import javax.persistence.TypedQuery;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
- * Dao - 报警记录
+ * Dao -
  */
 @Repository("cleanHistoryDaoImpl")
 public class CleanHistoryDaoImpl extends BaseDaoImpl<CleanHistory, Long> implements CleanHistoryDao {
+    /**
+     *机器全年的使用统计
+     */
+    @Override
+    public List<CleanStatisticsDTO> findByTime(Long adminId) {
+        if (adminId == null) {
+            return null;
+        }
+        try {
+            String jpql = "select DATE_FORMAT(cleanHistory.createDate, '%m月') AS sTime,count(*) AS totalNumber from CleanHistory cleanHistory where cleanHistory.adminId = :adminId " +
+                    "and date_format(cleanHistory.createDate, '%Y') = date_format(now(), '%Y') " +
+                    "GROUP BY DATE_FORMAT(cleanHistory.createDate, '%m月') " +
+                    "ORDER BY DATE_FORMAT(cleanHistory.createDate, '%m月')";
+            List<CleanStatisticsDTO> list = entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT)
+                    .setParameter("adminId", adminId)
+                    .unwrap(Query.class)
+                    .setResultTransformer(Transformers.aliasToBean(CleanStatisticsDTO.class))
+                    .list();
+            return list;
+        } catch (NoResultException e) {
+            return null;
+        }
+
+    }
 
-}
+    @Override
+    public List<AlarmStatisticsDTO> findLine(Long adminId, Date begin, Date end) {
+        if (adminId == null) {
+            return null;
+        }
+        try {
+            if(begin!=null&&end!=null){
+                String jpql = "select equipment.name as title,count(cleanHistory.id) as totalNumber from  CleanHistory cleanHistory , " +
+                        " Equipment equipment where cleanHistory.equipmentId = equipment.id" +
+                        " and cleanHistory.adminId = :adminId " +
+                        " and cleanHistory.createDate BETWEEN :begin " + " and :end" +
+                        " GROUP BY equipment.name ORDER BY count(cleanHistory.id) DESC";
+                List<AlarmStatisticsDTO> list = entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT)
+                        .setParameter("adminId", adminId)
+                        .setParameter("begin", begin)
+                        .setParameter("end", end)
+                        .unwrap(Query.class)
+                        .setResultTransformer(Transformers.aliasToBean(AlarmStatisticsDTO.class))
+                        .list();
+                return list;
+            }else{
+                String jpql =  "select equipment.name as title,count(cleanHistory.id) as totalNumber from  CleanHistory cleanHistory , " +
+                        " Equipment equipment where cleanHistory.equipmentId = equipment.id" +
+                        " and cleanHistory.adminId = :adminId " +
+                        " GROUP BY equipment.name ORDER BY count(cleanHistory.id) DESC";
+                List<AlarmStatisticsDTO> list = entityManager.createQuery(jpql).setFlushMode(FlushModeType.COMMIT)
+                        .setParameter("adminId", adminId)
+                        .unwrap(Query.class)
+                        .setResultTransformer(Transformers.aliasToBean(AlarmStatisticsDTO.class))
+                        .list();
+                return list;
+            }
 
+        } catch (NoResultException e) {
+            return null;
+        }
+    }
+}

+ 31 - 0
app-entity/src/main/java/com/hboxs/dto/AlarmStatisticsDTO.java

@@ -0,0 +1,31 @@
+package com.hboxs.dto;
+
+/**
+ * 用来统计商家增长的数量
+ */
+public class AlarmStatisticsDTO implements Comparable<AlarmStatisticsDTO> {
+
+    private String title;
+    private long totalNumber;
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public long getTotalNumber() {
+        return totalNumber;
+    }
+
+    public void setTotalNumber(long totalNumber) {
+        this.totalNumber = totalNumber;
+    }
+
+    @Override
+    public int compareTo(AlarmStatisticsDTO o) {
+        return this.getTitle().compareTo(o.getTitle());
+    }
+}

+ 33 - 0
app-entity/src/main/java/com/hboxs/dto/CleanStatisticsDTO.java

@@ -0,0 +1,33 @@
+package com.hboxs.dto;
+
+import java.math.BigInteger;
+
+/**
+ * 用来统计商家增长的数量
+ */
+public class CleanStatisticsDTO implements Comparable<CleanStatisticsDTO> {
+
+    private String sTime;
+    private long totalNumber;
+
+    public String getsTime() {
+        return sTime;
+    }
+
+    public void setsTime(String sTime) {
+        this.sTime = sTime;
+    }
+
+    public long getTotalNumber() {
+        return totalNumber;
+    }
+
+    public void setTotalNumber(long totalNumber) {
+        this.totalNumber = totalNumber;
+    }
+
+    @Override
+    public int compareTo(CleanStatisticsDTO o) {
+        return this.getsTime().compareTo(o.getsTime());
+    }
+}

+ 5 - 0
app-service/src/main/java/com/hboxs/service/AlarmRecordService.java

@@ -7,8 +7,10 @@ package com.hboxs.service;
 
 import com.hboxs.common.Filter;
 import com.hboxs.common.Order;
+import com.hboxs.dto.AlarmStatisticsDTO;
 import com.hboxs.entity.AlarmRecord;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -16,5 +18,8 @@ import java.util.List;
  */
 public interface AlarmRecordService extends BaseService<AlarmRecord, Long> {
 
+    List<AlarmStatisticsDTO> findByType(Long id, Date begin, Date end);
+
+    List<AlarmStatisticsDTO> findLine(Long id, Date begin, Date end);
 }
 

+ 11 - 0
app-service/src/main/java/com/hboxs/service/CleanHistoryService.java

@@ -5,13 +5,24 @@
  */
 package com.hboxs.service;
 
+import com.hboxs.dto.AlarmStatisticsDTO;
+import com.hboxs.dto.CleanStatisticsDTO;
 import com.hboxs.entity.AlarmRecord;
 import com.hboxs.entity.CleanHistory;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 /**
  * Service - 报警记录
  */
 public interface CleanHistoryService extends BaseService<CleanHistory, Long> {
+    /**
+     *机器全年的使用统计
+     */
+    List<CleanStatisticsDTO> findByTime(Long adminiId);
 
+    List<AlarmStatisticsDTO> findLine(Long id, Date begin, Date end);
 }
 

+ 11 - 0
app-service/src/main/java/com/hboxs/service/impl/AlarmRecordServiceImpl.java

@@ -8,11 +8,13 @@ package com.hboxs.service.impl;
 import com.hboxs.common.Filter;
 import com.hboxs.common.Order;
 import com.hboxs.dao.AlarmRecordDao;
+import com.hboxs.dto.AlarmStatisticsDTO;
 import com.hboxs.entity.AlarmRecord;
 import com.hboxs.service.AlarmRecordService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -30,5 +32,14 @@ public class AlarmRecordServiceImpl extends BaseServiceImpl<AlarmRecord, Long> i
     }
 
 
+    @Override
+    public List<AlarmStatisticsDTO> findByType(Long id, Date begin, Date end) {
+        return alarmRecordDao.findByType(id,begin,end);
+    }
+
+    @Override
+    public List<AlarmStatisticsDTO> findLine(Long id, Date begin, Date end) {
+        return alarmRecordDao.findLine(id,begin,end);
+    }
 }
 

+ 16 - 0
app-service/src/main/java/com/hboxs/service/impl/CleanHistoryServiceImpl.java

@@ -7,6 +7,8 @@ package com.hboxs.service.impl;
 
 import com.hboxs.dao.AlarmRecordDao;
 import com.hboxs.dao.CleanHistoryDao;
+import com.hboxs.dto.AlarmStatisticsDTO;
+import com.hboxs.dto.CleanStatisticsDTO;
 import com.hboxs.entity.AlarmRecord;
 import com.hboxs.entity.CleanHistory;
 import com.hboxs.service.AlarmRecordService;
@@ -14,6 +16,9 @@ import com.hboxs.service.CleanHistoryService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * Service - 报警记录
@@ -29,6 +34,17 @@ public class CleanHistoryServiceImpl extends BaseServiceImpl<CleanHistory, Long>
         super.setBaseDao(cleanHistoryDao);
     }
 
+    /**
+     *机器全年的使用统计
+     */
+    @Override
+    public List<CleanStatisticsDTO> findByTime(Long adminiId) {
+        return cleanHistoryDao.findByTime(adminiId);
+    }
 
+    @Override
+    public List<AlarmStatisticsDTO> findLine(Long id, Date begin, Date end) {
+        return cleanHistoryDao.findLine(id, begin,end);
+    }
 }