/* * * * */ 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.*; import org.apache.commons.codec.digest.DigestUtils; 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.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; 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("indexController") @RequestMapping("/asl-admin/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 = "/peopleCounting", method = RequestMethod.GET) public Integer peopleCounting(ModelMap model , RedirectAttributes redirectAttributes) { int number = 0; Admin admin = adminService.getCurrent(); List equipmentList = equipmentService.findByAdminId(admin.getId()); for(Equipment equipment:equipmentList){ //今日人流量 if(equipment.getPeopleCounting()!=null){ number+=equipment.getPeopleCounting(); } } model.addAttribute("peopleCounting", number); return number; } /** *机器启动数量/机器总数量 */ @RequestMapping(value = "/equipmentNumber", method = RequestMethod.GET) public Map equipmentNumber(ModelMap model , RedirectAttributes redirectAttributes) { Map map = new HashMap<>(); Admin admin = adminService.getCurrent(); List equipmentList = equipmentService.findByAdminId(admin.getId()); int on = 0; for(Equipment equipment:equipmentList){ //开启的机器数量 if(equipment.getEqeStatus()!=null&&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) public Map cleanNumber(ModelMap model , RedirectAttributes redirectAttributes) { Map map = new HashMap<>(); Admin admin = adminService.getCurrent(); List fs = new ArrayList<>(); List 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 list1 = cleanHistoryService.findList(99999, 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 list2 = cleanHistoryService.findList(99999, 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); model.addAttribute("cleanNumber", map); return map; } /** *机器的状态,温度,湿度,清洗剂的剩余用量 */ @RequestMapping(value = "/equipmentStatus", method = RequestMethod.GET) public List equipmentStatus(ModelMap model , RedirectAttributes redirectAttributes) { List equipmentList = new ArrayList<>(); Admin admin = adminService.getCurrent(); equipmentList = equipmentService.findByAdminId(admin.getId()); model.addAttribute("equipmentList", equipmentList); return equipmentList; } /** *机器今日的报警记录,故障处理 */ @RequestMapping(value = "/alarmRecordList", method = RequestMethod.GET) public List alarmRecordList(ModelMap model , RedirectAttributes redirectAttributes) { List alarmRecordList = new ArrayList<>(); Admin admin = adminService.getCurrent(); List 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 allCleanNumber(ModelMap model , RedirectAttributes redirectAttributes) { List 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 consumedResources(String time,ModelMap model , RedirectAttributes redirectAttributes) { Map map = new HashMap<>(); Admin admin = adminService.getCurrent(); List fs = new ArrayList<>(); fs.add(Filter.eq("adminId", admin.getId())); int electricity = 0; int water = 0; if(time.equals("All")){ List 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 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 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); model.addAttribute("consumedResources", map); return map; } /** *报警的类型统计,问题占比 */ @RequestMapping(value = "/alarmRecordType", method = RequestMethod.GET) public List alarmRecordType(String time, ModelMap model , RedirectAttributes redirectAttributes) { List list = new ArrayList<>(); Admin admin = adminService.getCurrent(); List 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 alarmRecordLine(String time, ModelMap model , RedirectAttributes redirectAttributes) { List list = new ArrayList<>(); Admin admin = adminService.getCurrent(); List 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 cleanLine(String time, ModelMap model , RedirectAttributes redirectAttributes) { List list = new ArrayList<>(); Admin admin = adminService.getCurrent(); List 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"); 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"); 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; } }