package com.ruoyi.web.controller.station; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.ruoyi.common.utils.IdUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.station.domain.MjDoor; import com.ruoyi.station.domain.MjFingerprintReadHead; import com.ruoyi.station.domain.MjOpenHnwe; import com.ruoyi.station.service.IMjDoorService; import com.ruoyi.station.service.IMjFingerprintReadHeadService; import com.ruoyi.station.service.IMjOpenHnweService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.station.domain.MjAreaManagement; import com.ruoyi.station.service.IMjAreaManagementService; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; /** * 区域管理Controller * * @author ruoyi * @date 2020-08-06 */ @Controller @RequestMapping("/station/areaManagement") public class MjAreaManagementController extends BaseController { private String prefix = "station/areaManagement"; @Autowired private IMjAreaManagementService mjAreaManagementService; @Autowired private IMjDoorService iMjDoorService; @Autowired private IMjFingerprintReadHeadService iMjFingerprintReadHeadService; @Autowired private IMjOpenHnweService openHnweService; @RequiresPermissions("station:areaManagement:view") @GetMapping() public String areaManagement() { return prefix + "/areaManagement"; } /** * 查询区域管理列表 */ @RequiresPermissions("station:areaManagement:list") @PostMapping("/list") @ResponseBody public List list(MjAreaManagement mjAreaManagement) { // startPage(); List list = mjAreaManagementService.selectMjAreaManagementList(mjAreaManagement); return list; } /** * 导出区域管理列表 */ @RequiresPermissions("station:areaManagement:export") @Log(title = "区域管理", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody public AjaxResult export(MjAreaManagement mjAreaManagement) { List list = mjAreaManagementService.selectMjAreaManagementList(mjAreaManagement); ExcelUtil util = new ExcelUtil(MjAreaManagement.class); return util.exportExcel(list, "areaManagement"); } /** * 新增区域管理 */ @GetMapping("/add") public String add() { return prefix + "/add"; } /** * 新增区域管理2 */ @GetMapping("/add2") public String add2() { return prefix + "/add2"; } /** * 新增保存区域管理 */ @RequiresPermissions("station:areaManagement:add") @Log(title = "区域管理", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(MjAreaManagement mjAreaManagement) { if(!StringUtils.isNotEmpty(mjAreaManagement.getAreaParentId())){ mjAreaManagement.setAreaParentId("0"); } String areaName = mjAreaManagement.getAreaName(); String[] split = areaName.split(","); for(String s:split){ mjAreaManagement.setAreaName(s); mjAreaManagementService.insertMjAreaManagement(mjAreaManagement); } return toAjax(true); } /** * 修改区域管理 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") String id, ModelMap mmap) { MjAreaManagement mjAreaManagement = mjAreaManagementService.selectMjAreaManagementById(id); mmap.put("mjAreaManagement", mjAreaManagement); return prefix + "/edit"; } /** * 修改保存区域管理 */ @RequiresPermissions("station:areaManagement:edit") @Log(title = "区域管理", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(MjAreaManagement mjAreaManagement) { return toAjax(mjAreaManagementService.updateMjAreaManagement(mjAreaManagement)); } /** * 删除区域管理 */ @RequiresPermissions("station:areaManagement:remove") @Log(title = "区域管理", businessType = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody public AjaxResult remove(String ids) { return toAjax(mjAreaManagementService.deleteMjAreaManagementByIds(ids)); } /** * 删除区域管理 */ @RequiresPermissions("station:areaManagement:remove") @Log(title = "区域管理", businessType = BusinessType.DELETE) @PostMapping( "/removeArea") @ResponseBody public AjaxResult removeArea(String id) { return toAjax(mjAreaManagementService.deleteMjAreaManagementById(id)); } @GetMapping("/addDoor") public String addDoor() { return prefix + "/addDoor"; } @GetMapping("/showDoor") public String showDoor() { return prefix + "/showDoor"; } @GetMapping("/editDoor/{id}") public String editDoor(@PathVariable("id") String id, ModelMap mmap) { MjDoor mjDoor = iMjDoorService.selectMjDoorById(id); MjFingerprintReadHead mjFingerprintReadHead = new MjFingerprintReadHead(); mjFingerprintReadHead.setDoorId(mjDoor.getId()); List mjFingerprintReadHeads = iMjFingerprintReadHeadService.selectMjFingerprintReadHeadList(mjFingerprintReadHead); for(MjFingerprintReadHead mjFingerprintReadHead1: mjFingerprintReadHeads){ if(mjFingerprintReadHead1.getDirection()==0){ mjDoor.setIp1(mjFingerprintReadHead1.getIpOrOther()); }else{ mjDoor.setIp2(mjFingerprintReadHead1.getIpOrOther()); } } mmap.put("mjDoor", mjDoor); return prefix + "/editDoor"; } /** * 根据一级区域名称获取二级区域 * @param name * @return */ @PostMapping( "/findByName") @ResponseBody public Object findByName(String name) { MjAreaManagement mjAreaManagement = new MjAreaManagement(); mjAreaManagement.setAreaName(name); mjAreaManagement.setDelFlag(0); mjAreaManagement.setAreaParentId("0"); List mjAreaManagements = mjAreaManagementService.selectMjAreaManagementList(mjAreaManagement); if(mjAreaManagements.size()>0){ MjAreaManagement mjAreaManagement2 = new MjAreaManagement(); mjAreaManagement2.setDelFlag(0); mjAreaManagement2.setAreaParentId(mjAreaManagements.get(0).getId()); List mjAreaManagements2 = mjAreaManagementService.selectMjAreaManagementList(mjAreaManagement2); return mjAreaManagements2; } return null; } @PostMapping("/list2") @ResponseBody public Object list2(MjAreaManagement mjAreaManagement) { List list3 = new ArrayList<>(); mjAreaManagement.setDelFlag(0); List list = mjAreaManagementService.selectMjAreaManagementList(mjAreaManagement); for(MjAreaManagement areaManagement:list){ List mjDoors = iMjDoorService.selectDoorsByAreaId(areaManagement.getId()); list3.addAll(mjDoors); } List mjDoors = iMjDoorService.selectDoorsByAreaId(mjAreaManagement.getAreaParentId()); if(mjDoors.size()>0){ list3.addAll(mjDoors); } return list3; } @PostMapping("/openDoor") @ResponseBody public Object openDoor(String id,Integer type) { MjDoor door = iMjDoorService.selectMjDoorById(id); if(door!=null){ MjOpenHnwe openHnwe = new MjOpenHnwe(); openHnwe.setId(IdUtils.fastSimpleUUID()); openHnwe.setHnweId(door.getHnweId()); openHnwe.setHnweIp(door.getHnweIp()); openHnwe.setDoorControlId(type.toString()); openHnweService.insertMjOpenHnwe(openHnwe); } return toAjax(true); } @PostMapping("/closeDoor") @ResponseBody public Object closeDoor(String id) { MjDoor door = iMjDoorService.selectMjDoorById(id); if(door!=null){ MjOpenHnwe openHnwe = new MjOpenHnwe(); openHnwe.setId(IdUtils.fastSimpleUUID()); openHnwe.setHnweId(door.getHnweId()); openHnwe.setHnweIp(door.getHnweIp()); openHnwe.setDelFlag(1); openHnweService.insertMjOpenHnwe(openHnwe); } return toAjax(true); } @PostMapping("/openDoor2") @ResponseBody public Object openDoor2(String id,Integer type) { List list3 = new ArrayList<>(); MjAreaManagement mjAreaManagement = new MjAreaManagement(); mjAreaManagement.setAreaParentId(id); mjAreaManagement.setDelFlag(0); List mjAreaManagements = mjAreaManagementService.selectMjAreaManagementList(mjAreaManagement); for(MjAreaManagement area:mjAreaManagements){ if(area.getAreaName().equals("发电机层")){ continue; } mjAreaManagement.setAreaParentId(area.getId()); List list = mjAreaManagementService.selectMjAreaManagementList(mjAreaManagement); for(MjAreaManagement areaManagement:list){ List mjDoors = iMjDoorService.selectDoorsByAreaId(areaManagement.getId()); list3.addAll(mjDoors); } List mjDoors = iMjDoorService.selectDoorsByAreaId(mjAreaManagement.getAreaParentId()); if(mjDoors.size()>0){ list3.addAll(mjDoors); } } List mjDoors = iMjDoorService.selectDoorsByAreaId(id); if(mjDoors.size()>0){ list3.addAll(mjDoors); } int i=0; for(MjDoor doors:list3){ MjDoor door = iMjDoorService.selectMjDoorById(doors.getId()); if(door!=null){ if(StringUtils.isEmpty(door.getHnweId())){ continue; } if(i>5){ try { Thread.currentThread().sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } i=0; } MjOpenHnwe openHnwe = new MjOpenHnwe(); openHnwe.setId(IdUtils.fastSimpleUUID()); openHnwe.setHnweId(door.getHnweId()); openHnwe.setHnweIp(door.getHnweIp()); openHnwe.setDoorControlId(type.toString()); openHnweService.insertMjOpenHnwe(openHnwe); i++; } } return toAjax(true); } @PostMapping("/closeDoor2") @ResponseBody public Object closeDoor2(String id) { List list3 = new ArrayList<>(); MjAreaManagement mjAreaManagement = new MjAreaManagement(); mjAreaManagement.setAreaParentId(id); mjAreaManagement.setDelFlag(0); List mjAreaManagements = mjAreaManagementService.selectMjAreaManagementList(mjAreaManagement); for(MjAreaManagement area:mjAreaManagements){ if(area.getAreaName().equals("发电机层")){ continue; } mjAreaManagement.setAreaParentId(area.getId()); List list = mjAreaManagementService.selectMjAreaManagementList(mjAreaManagement); for(MjAreaManagement areaManagement:list){ List mjDoors = iMjDoorService.selectDoorsByAreaId(areaManagement.getId()); list3.addAll(mjDoors); } List mjDoors = iMjDoorService.selectDoorsByAreaId(mjAreaManagement.getAreaParentId()); if(mjDoors.size()>0){ list3.addAll(mjDoors); } } List mjDoors = iMjDoorService.selectDoorsByAreaId(id); if(mjDoors.size()>0){ list3.addAll(mjDoors); } int i=0; for(MjDoor doors:list3){ MjDoor door = iMjDoorService.selectMjDoorById(doors.getId()); if(door!=null){ if(StringUtils.isEmpty(door.getHnweId())){ continue; } if(i>5){ try { Thread.currentThread().sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } i=0; } MjOpenHnwe openHnwe = new MjOpenHnwe(); openHnwe.setId(IdUtils.fastSimpleUUID()); openHnwe.setHnweId(door.getHnweId()); openHnwe.setHnweIp(door.getHnweIp()); openHnwe.setDelFlag(1); openHnweService.insertMjOpenHnwe(openHnwe); i++; } } return toAjax(true); } }